Ask HN: What should be included in a standard library?
After reading HN for years, I have encountered so many opinions regarding standard libraries in various programming languages, e.g., how they should be designed, what they should (and should not) include, etc.
The C standard library is very minimal, focusing mostly on low-level facilities. Everyone is expected to implement their own dynamic arrays or choose one implementation from a zillion available libraries. And, apparently, null-terminated strings are the work of the devil. C++ has a much more extensive standard library, built around generic programming techniques using containers, iterators, and algorithms applied in a composable way. It is rather elegant and powerful, but not very intuitive for beginners. It also has some notable omissions compared to more modern languages. Python comes with "batteries included" in the form of a very rich standard library. However, the PSF tends to "break user space" from time to time by deprecating older modules, such as “boring” technologies like CGI or modules with known security problems. (I am not comfortable enough to say anything about JS, Go, Rust, etc.)
So, what would a great standard library look like? What would make you happy? What have we learned about this after 50+ years of computing? Do you want everything from linked lists to red-black trees (and beyond)? Graphics and sound? (Even if no single API can please everyone.) XML? YAML? SIMD abstractions? Where do you even stop without causing anger? Where do you begin?
(No, I am not creating a new programming language. Enough is enough.)
In practice there's no right answer to this - I mean sad library for plants? Animals? Fungi? The question quickly becomes meaningless because without a lot more context there's no right answer.
In the scope of language - is this for embedded programs? Desktops? Phones? Is it for system components? Is it going to talk to hardware? Or networks? Is it headless or heavy UI? What OS is it running on? Is it for writing CRUD apps? Or games? Will it be used in space?
Every context brings different trade offs. Different boundaries, different resources, different everything.
Thus every answer to your question is both true for some places, and false in others.
Thus variety in context is what leads us to the current situation- lots of options.
HTTP server and related parsers (just a basic one), URL parsing and escaping, JSON, Socket handling, timers, interactive debugger, basic templating library, WebSocket client, SQLite.
I think Ruby got it right in this regard and Bun comes close as a second place.
I think as long as a language offers the basics (like streams, etc) it’s not that bad to build on top of it.