Без названия и без подзаголовка

История Python. Принципы проектирования

Дальнейшие записи в этом блоге опустятся в окровавленные пучины истории Python. Однако, прежде чем это сделать, я хотел бы остановиться на философских принципах которые помогали мне проектировать и реализовывать Python.

Прежде всего, Python изначально задумывался как персональный проект «опытной мастерской» — без официального бюджета. Плюс я хотел получить результаты быстро, в частности для того, чтобы убедить руководство поддержать проект (в чем я преуспел). Это привело меня к нескольким, экономящим время правилам:

Остальные принципы применялись не ради экономии времени. Причем зачастую они приводят к прямо противоположному эффекту.

Наконец, у меня были разнообразные идеи, касающиеся хорошего проектирования языка программирования. Во многом, они были приобретены мною в «ABC group», где я получил первый настоящий опыт проектирования и реализации языков программирования. Сложнее всего выразить эти идеи словами, так как во многом они зависят от таких субъективных понятий как элегантность, простота и удобочитаемость.

Несмотря на то, что о влиянии «ABC» на Python я собираюсь рассказать немного позже, хотелось бы особо отметить одно правило удобочитаемости: символы пунктуации следует использовать консервативно, подобно тому как они используются в письменном английском или в школьной алгебре. Исключения были сделаны для тех случаев, когда определенная форма записи является давней традицией в языках программирования, как, например, «x*y» для умножения, или «a[i]» для указания индекса в массиве, или «x[foo]» для выборки атрибутов. При этом в Python не используется «$» для обозначения переменных и «!» для обозначения операций с побочным эффектом.

Тим Питерс (Tim Peters), давно использующий Python, и который в стал самым упорным и продуктивным разработчиком ядра, попробовал изложить мои несформулированные принципы проектирования в том, что он назвал «Дзен Python». Я процитирую его здесь полностью:

Несмотря на то что мой опыт работы в ABC оказал сильное влияние на Python, «ABC group» имела несколько принципов проектирования, радикально отличавшихся от используемых мной в Python. Разными способами, но в Python совершён сознательный уход от следующих идей:

Принципы проектирования, использованные мной при создании Python, вероятно, стали одной из причин его конечного успеха. Вместо борьбы за совершенство, люди, впервые использовавшие Python, сочли его «достаточно подходящим» для реализации их целей. Поскольку число пользователей росло, то предложения по улучшению постепенно вносились в язык. Как вы увидите из дальнейших записей, многие из этих улучшений повлекли существенные изменения и исправления в ядре языка. И даже сегодня Python продолжает развиваться.

Оригинал: The History of Python – Python’s Design Philosophy