Concept
Standard Library Philosophy
Standard library philosophy describes how much capability a language project expects to ship with the language instead of leaving to third-party packages, frameworks, or platform libraries.
Related languages
What The Standard Library Signals
A standard library is more than a bundle of APIs. It signals what the language project considers ordinary work: files, networking, text, collections, concurrency, testing, reflection, serialization, dates, command-line parsing, cryptography, HTTP, database access, or platform integration.
Go and Python are often treated as standard-library-heavy languages. Rust keeps a smaller standard library and pushes many ecosystem choices to crates.io. Java and .NET have large platform libraries tied to managed runtimes. JavaScript has a smaller language standard library, while browsers and Node.js provide important host APIs outside the ECMAScript language specification.
Tradeoffs
A broad standard library can reduce dependency decisions, improve baseline documentation, and make examples more portable. It can also age slowly, carry compatibility constraints, and make the language distribution responsible for APIs that third-party ecosystems might evolve faster.
A smaller standard library can keep the core language lighter and let package ecosystems move quickly. The cost is more early dependency choice, more supply-chain review, and less agreement about default libraries for common work.
What To Evaluate
When comparing languages, ask which tasks are covered by the standard library, which require dominant third-party packages, and which depend on platform-specific host APIs. Also ask how the standard library is versioned, documented, tested, and supported.
Related Concepts
Standard library decisions intersect with Package Managers, Build Systems, Testing Cultures, and Documentation Cultures.
Sources
Last verified:
- Go Standard library Go Project
- The Python Standard Library Python Software Foundation
- Rust Standard Library Rust Project
- Java SE API Documentation Oracle
- .NET API browser Microsoft Learn