Перейти к основному содержимому

История языка Python

Разработчику Архитектору

Play ITЗагрузка интерактивного демо…


История языка Python

Python часто воспринимается как "новый" язык, особенно в контексте его текущей популярности в Data Science, DevOps и веб-разработке. Однако это заблуждение. Python был создан в конце 1980-х годов и выпущен в начале 1990-х — что делает его старше таких языков, как Java (1995), JavaScript (1995) или PHP (1995).

Для новичка история полезна как карта причин, почему язык выглядит именно так — отступы вместо фигурных скобок, акцент на читаемость, сильная стандартная библиотека и аккуратная эволюция через PEP.

В конце 1980-х Гвидо ван Россум работал в Centrum Wiskunde & Informatica (CWI) в Нидерландах над языком ABC — ориентированным на обучение программированию. Из ABC в Python перешли идеи отступов для группировки операторов и высокоуровневых структур данных; при этом ABC оставался монолитным и плохо расширяемым, тогда как Python с самого начала задумывался с модулями и "батарейками" в стандартной библиотеке.

Сильное влияние оказала Modula-3 — модель модулей, обработка исключений с веткой else, именованные параметры (с версии 1.4). Синтаксические заимствования из C/C++ Гвидо выбирал так, чтобы не отпугнуть программистов C. Функциональные черты (лямбда, map, filter, reduce, list comprehensions) пришли из традиций Lisp, Haskell и SETL.


Amoeba

После завершения работы над ABC Гвидо присоединился к проекту Amoeba — распределённой операционной системе, объединяющей вычислительные ресурсы в единое пространство. Одной из ключевых проблем Amoeba была отсутствие гибкого языка сценариев, способного управлять системой и автоматизировать задачи. Существующие решения (например, Bourne shell или C) не подходили по уровню абстракции и удобству.


Первый прототип

В декабре 1989 года, во время рождественских каникул, Гвидо ван Россум решил создать такой язык самостоятельно. Он взял за основу концепции ABC, но добавил возможность расширения через модули, работу с системными вызовами и поддержку типов данных, близких к тем, что использовались в C. Первый прототип включал:

  • Виртуальную машину, интерпретирующую байт-код;
  • Базовый синтаксис, включающий отступы вместо фигурных скобок;
  • Простые структуры данных — списки, словари, кортежи;
  • Поддержку функций и модулей.

Работа над языком велась в одиночку, но уже через три месяца — к весне 1990 года — был готов рабочий прототип, который был представлен коллегам в CWI. Разработчики быстро оценили его потенциал и начали использовать в своих проектах, параллельно внося предложения по улучшению.

В феврале 1991 года Гвидо опубликовал исходники Python 0.9.0 в группе Usenet alt.sources. Уже в этом релизе были классы с наследованием, обработка исключений, функции и базовые типы (list, dict, str), а модули описывались как "один из главных элементов" языка. В 1994 году сформировалась группа comp.lang.python — основной форум раннего сообщества.

Проект развивался без корпоративного "продукта" — за счёт энтузиазма разработчиков CWI и позже CNRI, BeOpen и Digital Creations. Такой стиль близок к неформальной экспериментальной разработке (skunkworks).

Название языка было выбрано спонтанно — Гвидо, будучи поклонником британского комедийного шоу "Летающий цирк Монти Пайтона", просто использовал слово "Python" как первую пришедшую в голову ассоциацию. Логотип того времени был минималистичным — текстовое написание слова "Python" случайным шрифтом, без графических элементов.

Этот логотип просуществовал до 2006 года. К тому времени пользователи массово ассоциировали язык со змеями — символом, который использовался на обложках книг, в статьях и презентациях. Чтобы устранить несоответствие между визуальным восприятием и официальным брендом, был разработан новый логотип: два переплетённых питона — синий и жёлтый — рядом с текстовым названием. Этот символ стал визуальной идентификацией языка и используется по сей день.


Реализация и дальнейшие релизы

Python был реализован на языке C, что обеспечило ему высокую портируемость и возможность интеграции с существующими системами. Интерпретатор, виртуальная машина и стандартная библиотека были написаны на C, что позволило запускать Python на множестве платформ, включая Unix, MS-DOS и позднее — Windows и macOS.

Python 1.0 (январь 1994) закрепил функциональные примитивы — lambda, map, filter, reduce — по инициативе энтузиаста Lisp. 1.4 добавил именованные аргументы и комплексные числа; 1.6 (2000) принесла лицензию, совместимую с GPL после спора FSF.

В CNRI Гвидо запустил инициативу Computer Programming for Everybody (CPFE) — сделать программирование доступным "компьютерной грамотностью"; Python был её центральным инструментом (финансировалась DARPA).

Python 2.0 (16 октября 2000, единственный релиз BeOpen PythonLabs) ввёл list comprehensions (синтаксис близок к Haskell), полноценный сборщик мусора с учётом циклических ссылок и Unicode. С 2.1 код и спецификация перешли под Python Software Foundation (2001). Python 2.2 объединил встроенные типы и пользовательские классы в одной иерархии — язык стал полностью объектно-ориентированным в смысле модели типов; появились генераторы (идея из Icon).

Python 3.0 (Python 3000, Py3k) — 3 декабря 2008 года. Цель ветки 3.x — убрать дублирующие конструкции и следовать принципу — "должен существовать один — и, желательно, только один — очевидный способ сделать это" (тот же дух, что и Дзен Python). Крупные изменения — str как Unicode, отдельные bytes / bytearray, print() как функция, reduce перенесён в functools, убраны классы "старого стиля" и ряд устаревших API. Обратная совместимость с 2.x на уровне исходников не гарантировалась; для перевода используют 2to3, для двойной поддержки рекомендовали писать на 2.x и прогонять 2to3 к релизу 3.x.

Параллельно выходили 2.6 и 2.7 с переносом части возможностей 3.x и режимом предупреждений; 2.7 (2010) стала последней линией 2.x, поддержка закончилась 1 января 2020 года (последний патч безопасности — 2.7.18 в 2020).

Асинхронность в стандарте появилась позже: asyncio — в 3.4, синтаксис async / await — в 3.5.

Среди заметных этапов после 3.0: f-строки (3.6), dataclasses (3.7), упорядоченные словари по умолчанию (3.7), match/case (3.10), улучшения производительности и типизации в 3.11–3.12. Python 3.12 вышел в октябре 2023 года. Подробнее о конкурентности и GIL — в разделе Асинхронность и многопоточность.

Для координации развития языка и принятия решений была создана система PEP (Python Enhancement Proposals) — документы, описывающие новые функции, процессы или изменения в языке. PEP-ы проходят публичное обсуждение, рецензирование и голосование. Самый известный — PEP 8 — содержит рекомендации по стилю кода.

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

Чтобы избежать зависимости от одного человека, в PSF был создан Совет директоров, избираемый сообществом. Гвидо ван Россум, игравший центральную роль в развитии языка, получил титул Benevolent Dictator For Life (BDFL) — шуточное название, отражающее его авторитет и влияние. В 2018 году он добровольно передал полномочия Совету, чтобы обеспечить устойчивое развитие языка вне зависимости от личности одного человека.


Современный Python

В октябре 2025 года вышел Python 3.14. Важное уточнение: по умолчанию по-прежнему распространяется обычная сборка CPython с GIL (Global Interpreter Lock). В ней только один поток в момент времени выполняет байт-код Python, поэтому threading почти не ускоряет CPU-bound задачи на нескольких ядрах — подробнее в главе про GIL и параллелизм.

Отдельная веха — free-threaded сборка (без GIL): эксперимент с PEP 703 начался в 3.13, в 3.14 режим официально поддерживается как вариант сборки (PEP 779). Это не замена стандартному интерпретатору "для всех": нужно явно установить или собрать free-threaded CPython и учитывать совместимость расширений на C.

В free-threaded интерпретаторе потоки могут параллельно выполнять Python-код на разных ядрах. Вместо одной глобальной блокировки используются более мелкие механизмы синхронизации на уровне объектов. Это не отменяет гонки данных: при совместном доступе к изменяемым объектам по-прежнему нужны threading.Lock, очереди и дисциплина проектирования — просто узкое место GIL для CPU-кода снимается.

Для большинства проектов сегодня по-прежнему актуальны проверенные схемы — asyncio для I/O, multiprocessing для CPU-bound, обычный CPython с GIL — как базовая установка.


Хронология в одном экране

ГодСобытиеПочему это важно сегодня
1989Первый прототип PythonЗаложены принципы читаемости и простоты
1991Публикация Python 0.9.0 (alt.sources)Классы, модули, исключения; задел сообщества
1994comp.lang.python, Python 1.0Стабильная линия и функциональные примитивы
2000Python 2.0, BeOpenList comprehensions, GC, Unicode
2001Основание PSFФормируется институциональная опора экосистемы
2008Python 3.0Большая совместимостьная развилка и очистка языка
2020Конец поддержки Python 2Единый фокус экосистемы на Python 3
2023Python 3.12Усиление производительности и качества типизации
2025Python 3.14Развитие free-threaded направления наряду с классическим CPython

Что история объясняет в текущей практике

Почему в Python так много "человеческого" синтаксиса

Наследие ABC и ранних учебных целей сформировали стиль, где код читается как структурированный текст. Отсюда внимание к отступам, говорящим именам и минимуму синтаксического шума.


Почему решения принимаются через PEP

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


Почему миграции в экосистеме занимают годы

Большая база legacy-кода, разнообразие библиотек и сильная зависимость от C-расширений требуют длинных переходных периодов. История миграции Python 2 -> Python 3 остаётся главным примером этой инерции.


В рунет-дискурсе

В рунете Python часто называют "питон" или "пайтон" — это нормальное разговорное имя, в документации и в коде остаётся Python. В шутках язык связывали со "скриптами на коленке" и учебными задачами; после взлёта data science и DevOps образ сместился к "всё пишут на питоне", иногда с иронией над GIL и скоростью.

Отличайте социальный штамп от инженерии: узкие места решают профилированием, C-расширениями, PyPy или другим runtime. Указатель мемов — Неолурк (Python); лексика площадок — Форумная культура Рунета.


Связи с другими материалами энциклопедии


В подборках

Статья входит в тематические подборки и блок "С чего начать?" на главной. Соседние шаги того же маршрута:

ИсторияИстория языка JavaScript, История языка Java, История развития NoSQL-систем, История платформы .NET, История развития структур данных, История языка PHP.