# ICU4X TC Meeting 2024-10-21

Attendees:

- Shane Carr (Google)
- Robert Bastian (Google)
- Manish Goregaokar (Google)
- Elango Cheran (Google)
- Zibi Braniecki (Amazon)

## 2025 Planning

ICU4X-TC OKRs:

1. Compatibility with ICU4C/ICU4J for easier partial migration
    - Data sharing for core data
    - APIs that are similar
    - Conformance testing to instill confidence
    - Reduce duplication of work between ICU-TC and ICU4X-TC
2. Establish stability in our data architecture
    - Make finely sliced data compilation time not hit developer or CI limits
    - Postcard with compiled data constructors?
    - Reporting of metrics
3. ECMA-402 100% coverage, tested
    - Eventually needed for V8 and Spidermonkey
    - Focus on 100% in individual components
4. Super-well polished for 3P adoption
    - Resolve low-hanging fruit in dependency tree (rust-url problem)
    - Outreach: web site, conferences, blog posts
    - Additional tutorials: cover deeper topics, driven by clients
    - Continue to react to direct feedback from clients

LGTM: @sffc @robertbastian @manishearth @zbraniecki

Discussion:

- @zbraniecki Do we need ECMA-402 as a marketing tool, or does a specific client need it?
- @sffc The ECMA-402 clients remain browser engines.
- @zbraniecki In my experience, clients look at the feature they need, like number formatting or collation. They don't necesarily look for full ECMA-402.
- @zbraniecki A situation I've seen is an OS that brings multiple copies of ICU. Being able to use a smaller library, and being able to share data, is a big win.
- @sffc Should we prioritize an ICU4X data provider that reads from ICU4C data files? It seems like something we can add on an as-needed basis.
- @zbraniecki Is the new datetime component done? Stable for a decade?
- @sffc I'm happy overall with the design. It is also a novel approach that hasn't been tested in the wild.
- @zbraniecki Is it a trifecta between speed, size, and compilation time?
- @sffc Hmm. Yes, I think so.
- @robertbastian If you want to have multiple clients sharing data, Postcard is your answer. It is faster compilation
- @zbraniecki Where did we land on untrusted postcard?
- @Manishearth It was a categorization error: we made baked data for them.
- @sffc There's an issue for us to plug baked data into the default constructors. Maybe we should prioritize that.
- @robertbastian Why not just use `_with_buffer_provider` constructors? Also, singletons might make that hard.
- @zbraniecki So are we pretty happy overall with the architecture? It sounds like compilation time is the main issue?
- @robertbastian Even in 2.0, we're making a lot of changes around the edge, but architecturally, I don't see a lot changing.
- @Manishearth Postcard doesn't solve the syn compilation time.
- @sffc Tree compilation time, which impacted rust-url, is a different aspect of the problem than baked data compilation time.
- @zbraniecki It sounds like in this case we're doing something that ICU4C isn't doing. So in order to compare apples to apples, we should compare our postcard numbers, right?
- @sffc I can totally see a slide where we have two bars: compilation time and runtime performance metrics, compared between ICU4C, ICU4X Postcard, and ICU4X Baked.
- @zbraniecki ECMA-402 feature coverage is only important if you've already sold yourself. Partial migration is more important. I don't think lacking 100% coverage blocks adoption. A doc that says "this project intends to have ECMA-402 compatibility" is fine.
- @echeran Do we feel that we are accessible to most developers? Are there developers who try to use ICU4X but are challenged by its complexity? I think focusing on 3P adoption is important to both obtain new clients and retain existing clients. Tutorials are a big part of that.
- @sffc Yeah, Temporal calls these "cookbook" examples.
- @zbraniecki Maybe also seek out clients to write content about this. For example, Boa writing a tutorial would be good for this.

