I believe that in modern day and age, a language’s std should focus on providing the foundation and lego brick from which everything in the ecosystem can stem, for example the last thing I want is for something as fundamental has Allocators to not be part of the std, because then the entire ecosystem is split into those that use allocators, those that don’t, those that use that particular library but not that one etc.
Same with Async honestly having Io as an interface is amazing, I’ve experienced first hand the pain of seeing the perfect dependency for your project, yet you can’t actually use it because you can’t schedule it’s work to fit your constraint, Io opens an entire universe of code reuse that just wasn’t available before.
The next thing I don’t ever want to have to reach for are data structure, at least the basic one, because again Data structure are kind of the linguo and the most basic interfaces, there’s nothing more disgraceful than using 3 libraries and all of them have a different ArrayList.
So I’m personally all for a broad battery included std, and right now I can’t say it’s missing much. One model that I’d love Zig to follow with the std, is the model of OpenCV, where you have the core, and the contrib, where contrib is kind of the 2 class “std”. I think this is a great way to maintain a simpler cohesive ecosystem and avoid people reinventing the wheel too much, and promotes code reuse.
For example it wouldn’t make sense for Zig to have a dedicated 2d or 3d math namespace in the std, it’s a huge burden on maintainers because of the sheer amount of api, and ways one can design them.
At the same time many libraries realistically need good 2d/3d, and developers would most certainly love not to have to deal with 3 different implementation of a vector or matrix, when trying to reuse those libraries. Same with TUI or Yaml parsing..
I think having a 1st class std of curated, high impact, high ROI building blocks is crucial for a healthy ecosystem and an enjoyable experience, But if on top of that ZFS could decide to “promote” one very popular high impact library has part of the std-contrib that would be a nice way to make it easy and safe for people to get the battery included, plus the charging cable, and the nuclear reactor, it promotes code reuse, and reduce the attack surface, focus the collective effort, into an official but not maintained as much or with the same guarantees as the core std.