The Dilemma of Standard Libraries
In programming, a recurring question is whether a standard library should be minimal or all-encompassing. This question, though common, is misplaced. The real question is which social architecture allows for the creation of a high-quality standard library?
Python: Leaky Batteries
Take Python, for example. Often described as a collection of "leaky batteries," Python's standard library is criticized not for its size but for the uneven quality of its modules. Some don't even follow the language's naming conventions! However, this approach has allowed Python to play a central role in the data science revolution. By quickly providing functionalities, Python has managed to thrive despite its imperfections.
Go: A Well-Designed Library
In contrast, Go's standard library is highly regarded. The Go team has the institutional capacity to design well-thought-out APIs. For example, the website [pkg.go.dev](https://pkg.go.dev/golang.org/x) shows how Go captures excess capacity to create a rich and reliable library.
Rust: The Art of Collection
Rust is an interesting case. The 1.0 standard library APIs are admirable, with collections and iterators considered true works of art. However, it seems that the capacity to make design decisions is limited. While golang.org/x captures surplus talent, rust-lang-nursery has become a graveyard of unfinished projects.
Organizational Challenges
Rust's problem of obtaining an API capable of generating a stream of random bytes from the operating system by 2026 is not so much technical as it is structural. Creating a quality standard library requires efficient organization and adequate financial resources, especially in the context of a global programming language.
Conclusion: The Importance of Social Architecture
The quality of a standard library depends not only on technology but also on social organization and talent management. For tech decision-makers, understanding these dynamics is crucial to choosing the technologies that will best support their projects.
Let's discuss your project in 15 minutes.