Глава 1 · А вы знали?

История Python

Python появился не случайно и не сразу — короткая, но настоящая история о том, почему язык устроен именно так, как устроен сегодня.

Python

До Python: CWI и язык ABC

Python появился не на пустом месте. В 1980-х годах в нидерландском исследовательском институте CWI (Centrum Wiskunde & Informatica, «Центр математики и информатики») разрабатывался язык ABC — он должен был быть простым и удобным для обучения программированию непрофессионалов. У ABC были хорошие идеи (например, отступы вместо фигурных скобок), но были и серьёзные ограничения — он не был предназначен для больших «настоящих» программ и плохо расширялся.

Рождение Python: 1989–1991

Один из разработчиков ABC, нидерландский программист Гвидо ван Россум (Guido van Rossum), хорошо знал сильные и слабые стороны ABC. В конце декабря 1989 года, во время рождественских каникул, он начал писать новый язык — как хобби-проект, чтобы занять себя на праздниках, и как способ сохранить понравившиеся идеи ABC, избавившись от его ограничений.

Гвидо ван Россум на конференции PyCon US
Гвидо ван Россум, создатель Python, на PyCon US 2024. Фото: Kushal Das, лицензия CC BY-SA 4.0 (изображение обрезано и сжато для сайта).

Первый публичный релиз, Python 0.9.0, вышел в феврале 1991 года. В нём уже были функции, обработка исключений, классы с наследованием и встроенные типы данных вроде списков и словарей — многое из того, что вы будете использовать в этой книге.

Идея
Python начинался как личный проект одного человека для собственного удовольствия. Не обязательно с самого начала «менять индустрию» — иногда достаточно решить свою собственную небольшую задачу.

Откуда взялось название «Python»

Несмотря на логотип со змеями, язык назван вовсе не в честь пресмыкающегося. Гвидо ван Россум — большой поклонник британского комедийного шоу «Летающий цирк Монти Пайтона» (Monty Python's Flying Circus), и ему хотелось короткое, немного необычное и запоминающееся имя. Змеиная тема логотипа появилась уже позже, как визуальная ассоциация со словом «Python».

Python 1.x и Python 2.0

Версия Python 1.0 вышла в январе 1994 года. Язык продолжал расти: появлялись новые модули стандартной библиотеки, росло сообщество разработчиков.

В октябре 2000 года вышел Python 2.0, принёсший важные для языка вещи — например, списковые включения (list comprehensions) и полноценный сборщик мусора, умеющий находить и освобождать память даже у объектов, ссылающихся друг на друга по кругу.

В 2001 году была создана Python Software Foundation (PSF) — некоммерческая организация, которой с тех пор принадлежат права на Python и которая направляет развитие языка. Подробнее о PSF — в следующем разделе этой главы.

Python 3: зачем понадобилась несовместимая версия

К середине 2000-х в языке накопились особенности, которые нельзя было исправить, не сломав часть старого кода, — например, то, как Python 2 обрабатывал текст и байты, было источником постоянной путаницы, особенно при работе с не-английскими языками (в том числе русским). Разработчики Python сознательно пошли на выпуск Python 3.0 (декабрь 2008) — версии, которая местами намеренно несовместима со старым кодом ради того, чтобы исправить эти накопившиеся проблемы: единая модель текста (Unicode по умолчанию), print() стала обычной функцией, а не особым словом языка, целочисленное деление стало более предсказуемым, и многое другое.

Официальный источник
Общий план Python 3000 описан в PEP 3000, а изменения, заметные пользователю, — в официальном разделе «What's New In Python 3.0». PEP 3100 «Miscellaneous Python 3.0 Plans» дополняет их перечнем отдельных запланированных изменений, но не является полным списком причин перехода.

Переход занял намного дольше, чем ожидалось: сообществу требовалось время, чтобы переписать старый код и библиотеки. Официальная поддержка Python 2 закончилась 1 января 2020 года — с этого момента для Python 2 больше не выпускают даже исправления критических уязвимостей.

Путь к современному Python и версия 3.14

После 2008 года Python продолжил развиваться заметными, но уже совместимыми шагами: f-строки для удобного форматирования текста (3.6), оператор «морж» := (3.8), более понятные и точные сообщения об ошибках и структурное сопоставление с образцом (3.10), заметный прирост скорости выполнения в нескольких последних релизах. Именно это непрерывное, но осторожное развитие и определяет то, что сегодня называют «современным Python».

Эта книга целиком написана и проверена на Python 3.14 — актуальном стабильном релизе на момент написания.

CWI, Нидерландыисследовательский институт, где рождается идеяЯзык ABCпредшественник Python — простой, но со своими ограничениямиКонец 1989Гвидо ван Россум начинает Python на рождественских каникулах1991 · Python 0.9.0первый публичный релиз1994 · Python 1.0первая полноценная версия2000 · Python 2.0списковые включения, сборщик мусора с циклами2001 · создана PSFPython Software Foundation — некоммерческая организация2008 · Python 3.0осознанно несовместимые улучшения языка2020 · конец Python 2официальная поддержка Python 2 прекращенаСегодня · Python 3.14актуальный стабильный релиз, база этой книги
Краткая хронология Python