Насколько большим должен быть язык программирования? Перевод

OleStep OleStep 24 Марта 2023 (ред)

Чтение наводящего на размышления поста «Шаблоны и абстракции» напомнило мне о давнем мнении о дизайне языков программирования: у нас есть тенденция продолжать добавлять функции в язык до тех пор, пока он не станет настолько большим, что его размер сделает трудно использовать надежно.

Поскольку большинство из нас проводят большую часть времени за программированием на одном языке, может быть трудно увидеть общую тенденцию среди языков в целом.

Размер языка с течением времени

Позвольте мне начать с конкретного примера. Я начал использовать Python примерно с версии 1.3, хотя первая версия, которую я действительно помню, была 1.4. Python 1.5 стал настоящим улучшением, добавив assert оператор, вложенные пакеты («иерархические модули» в примечаниях к выпуску) и reмодуль регулярных выражений — вещи, которые, я подозреваю, почти каждый современный программист Python находит полезными. В то время Python все еще был относительно небольшим языком, и вы могли разумно ожидать, что сможете хранить почти все подробности о нем (и его реализации!) в своей голове.

В Python 1.6 добавлена ​​поддержка unicode — поддержка, которая была явно полезной, но оказалась достаточно неудобной, так что (несколько) исправление этой неловкости оказалось основной причиной, лежащей в основе раскола между Python 2 и 3. Когда Python 1.6 превратился в 2.0 и более того, этот ранее небольшой язык продолжал добавлять функции, многие из которых я нахожу полезными (например, понимание списков), но каждая из которых неизбежно делала язык больше.

Оглядываясь назад, можно сказать, что Python 1.5 был, вероятно, последней версией Python, которую человек с моими ограниченными умственными способностями мог разумно ожидать для полного понимания. Ко времени Python 2.7 Python определенно был большим языком, и с тех пор он только увеличился в размерах. Я сомневаюсь, что найдется много людей, которые могли бы утверждать, что они понимают каждую деталь Python 2.7, и, вероятно, нет никого, кто заявлял бы, что понимает последние версии Python 3.

https://tratt.net/laurie/blog/2023/how_big_should_a_programming_language_be.html

1 Ответ

  1. German German 24 Марта 2023

    Большинство программистов реорганизуют свой код по мере его роста, чтобы устранить случайную сложность. Разработчики языков должны делать то же самое, рефакторинг своего языка по мере его развития, но обычно они этого не делают, потому что большинство пользователей отдают предпочтение обратной совместимости, а не простоте.