Python отпраздновал своё 33-летие в 2024 году. За это время он успел вырасти из пет-проекта в один из самых популярных языков программирования в мире, но не многие знают об истории этого языка. В этой статье мы и обсудим эту тему.

Гвидо ван Россум

Главный создатель – голландский программист Гвидо ван Россум (Guido van Rossum). Родился 31 января 1956 года в Гааге, Нидерланды.

Изначально он занимался разработкой языка ABC. Язык ABC разрабатывался в конце 1970-х и начале 1980-х годов в Центре математики Амстердамского университета совместно с французским исследовательским институтом INRIA. ABC был разработан для обучения программированию и характеризовался простотой и доступностью, но не решал сложные задачи. В связи с этим ABC не получил большой популярности в промышленной разработке, но стал предпосылкой для развития чего-то большего.

В декабре 1989 года Гвидо начал создавать язык, который сочетал бы простоту ABC с более широкими возможностями. Так появился Python.

В 1994 году вышла статья «А если бы Гвидо сбил автобус?. Автобус здесь отсылается к фактору автобуса. В статье автор поделился мнением о том, что крупные компании боятся использовать технологии, которые привязаны к одному человеку. Главной темой стала зависимость Python-сообщества от решений Гвидо ван Россума.

Автор статьи Майкл Маклей был исследователем из Национального института стандартов и технологий США (NIST). Статья поднимала серьёзную проблему — Гвидо фактически в одиночку определял, как будет развиваться язык: тщательно изучал обратную связь, а потом лично отбирал изменения, которые войдут в следующий релиз.

Майкл предложил Гвидо сотрудничество, и так в 1995 году появилась Python Software Foundation — некоммерческая организация, которая до сих пор защищает и развивает Python. В ней было несколько руководителей, а Гвидо получил титул великодушного пожизненного диктатора (Benevolent Dictator For Life).

В 2018 году он объявил о своем уходе с этой должности, чтобы дать сообществу больше возможностей для принятия решений.

Немного про логотип и название

Над названием для языка ABC думали долго и хотели подчеркнуть его главную особенность — простоту изучения. Команда будто бы показывала, что программирование похоже на азбуку: сначала учишь «А», затем «В», «С» и так далее.

Однако Гвидо, не хотел тратить много времени на название и посвятил его своему любимому британскому комедийному шоу - Летающий цирк Монти Пайтона (Monty Python’s Flying Circus).

Пользователи в сети, начали публиковать статьи и книги про Python. На обложках всё чаще стали появляться змеи и команда задумалась о разработке логотипа! Гвидо не стал искать сложного решения, он просто поигрался с шрифтами и написал слово "python". Так и было до 2006 года, пока брат Гвидо -  Юста ван Россум, шрифтовой дизайнер и программист, не предложил известный нам логотип:

Логотип Python используемый с 2006 г.
Логотип Python используемый с 2006 г.

История развития

В феврале 1991 года Гвидо ван Россум опубликовал код Python, помеченный версией 0.9.0, на alt.sources. На этой стадии в нём уже присутствовали классы с наследованием, обработка исключений, функции и основные типы данных: listdictstr и т. д. Также в этом начальном релизе были модули. Ван Россум описывал модуль как «один из главных элементов в программировании на Python».

В 1994 году с ростом числа пользователей сформировалась группа comp.lang.python — основной форум Python. В этом же году были добавлены элементы функционального программирования и ООП. Изначально пайтон был написан на языке программирования "С", что послужило его довольно быстрому выполнению.

Версия Python 2.0 была выпущена 16 октября 2000 года и включала в себя много новых крупных функций — таких как полный сборщик мусора и поддержка Unicode. Однако наиболее важным из всех изменений было изменение самого процесса развития языка и переход на более прозрачный процесс его создания Эта версия сыграла большую роль в популизации Python, поскольку была одобрена и принята множеством разработчиков.

Первая обратно-несовместимая версия Python 3.0 была выпущена 3 декабря 2008 года после длительного периода тестирования. Основной проблемой версии 2.0 и последующих ей стало то, что накопилось множество способов решения одних и тех же задач, что противоречило принципу: "Должен существовать один и, желательно, только один очевидный способ сделать это."

Тем не менее, Python оставался «мультипарадигменным» языком. Программист всё ещё мог выбирать между объектно-ориентированным, структурным, функциональным программированием и другими парадигмами. Но, при таком широком выборе, особенности каждого подхода в Python 3.0 должны были быть более очевидны, чем в Python 2.x.

Краткий обзор версий
Краткий обзор версий

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

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

Ещё больше интересных статей вы можете найти в нашем telegram канале: https://t.me/python_jungle

Комментарии (9)


  1. Z55
    04.07.2024 03:50

    Версии после 3.9 не заслуживают внимания?


    1. Chikkl Автор
      04.07.2024 03:50

      Доброго времени суток! Благодарю вас за комментарий, сегодня дополню таблицу более новыми версиями. Подскажите, что бы вы ещё хотели увидеть в статье или чего вам не хватило?


    1. Dominux
      04.07.2024 03:50
      +2

      Конечно нет. Оптимизации выполнения кода, новые типы энумов, match-case и возможность запуска нескольких интерпретаторов в рамках одного процесса - все это бесполезная хрень


      1. Chikkl Автор
        04.07.2024 03:50

        Доброго времени суток! Я действительно упустил некоторые важные моменты при составлении таблицы. Правда возможность запуска нескольких интерпретаторов в рамках одного процесса, была добавлена ещё в версии 3.8, а не в более поздних. В данный момент информация в статье уже актуализирована. Благодарю вас за внимательность!


        1. Dominux
          04.07.2024 03:50
          +1

          Вроде как только в 3.13: PEP-554 и PEP-734.

          А отдельный GIL для каждого суб-интерпретора вообще в 3.12: PEP-684


  1. Ritoneet
    04.07.2024 03:50
    +1

    Очень интересная статья. Узнал много нового. Гвидо настоящий молодец.


    1. Chikkl Автор
      04.07.2024 03:50

      Благодарю за комментарий! Рад, что статья была полезна для вас!


  1. dimitrii_z
    04.07.2024 03:50
    +1

    Статья небольшая, но как вводно-обзорная любопытная. Есть только по оформлению момент: потенциально полезную инфу всё же надо вставлять не скрином таблицы, а верстать реальной таблицей или списком. На телефоне (а большинство сейчас потребляет веб-контент именно со смартов) сильно неудобно работать с текстовой инфой в виде картинок. Ну и индексация же..


    1. Chikkl Автор
      04.07.2024 03:50

      Добрый день! Спасибо вам за комментарий, я постараюсь исправить эти недочёты!