Better Batteries: правильный вопрос о стандартной библиотеке — не размер, а социальная архитектура

В эссе о стандартных библиотеках утверждается, что вечный спор между минимализмом и полнотой — ложная дилемма. Ключевой фактор — социальная архитектура, обеспечивающая качество. Python страдает от неравномерного качества stdlib, но его ранняя доступность функциональности привела к революции в науке о данных. Go демонстрирует институциональную способность проектировать качественные API, а Rust, несмотря на блестящие API 1.0, испытывает трудности с реализацией новых дизайн-решений, например, до сих пор нет API для получения случайных байтов от ОС.

Проблема стандартной библиотеки Python — это не размер, а её, хм, неравномерное качество.
  1. nicoburns

    Сейчас у нас, как правило, есть компромисс между:

    - Стандартной библиотекой, которая одновременно и доверенная/благословенная, и постоянно стабильная

    - Экосистемой пакетов, которая не является ни тем, ни другим

    Я бы очень хотел увидеть больше исследований промежуточного пространства:

    - Расширенная стандартная библиотека, которая поставляет версионированные библиотеки, использующие semver, а не постоянную стабильность.

    - Лучшая поддержка управления проверкой и гарантиями экосистем пакетов.

  2. exceptione

    «Включенные батарейки» и типобезопасность — не единственные, но, по моему мнению, самые важные критерии для программных проектов (я исключаю одноразовый код и скрипты). Статья поднимает важный вопрос, но не знакомит читателя с экосистемами JVM и .NET Core. Стандартные библиотеки этих двух зоопарков языков программирования значительно затмевают то, что предлагают обсуждаемые языки (Go, Python и Rust).

    Например, вот ASP.NET Core: <https://learn.microsoft.com/en-us/aspnet/core/?view=aspnetco...>. Это стандартная библиотека: <https://learn.microsoft.com/en-us/dotnet/api/?view=net-10.0>. Это EF Core: <https://learn.microsoft.com/en-us/ef/core/>.

    Есть еще много (опциональных) технологий, встроенных в систему. Ваш код обычно на 98% зависит от официального, проверенного и одобренного кода. Это может звучать как преувеличение, но разумно утверждать, что у JVM и .NET Core нет конкурентов, если выбирать по этим критериям.

    Я знаю, языки программирования и религия... Так что делайте с этой информацией что хотите.

  3. karlsefni

    Я полностью ожидал сравнения последних химических составов батарей и забыл, что фраза «batteries included» используется в программировании.

    Как человек, который не часто использует упомянутые языки, удивительно слышать, что стандартная библиотека Python непоследовательна, учитывая, насколько она старая и сколько работы, вероятно, в нее вложено.

Ещё за этот день

2026-08-21