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 года, пока брат Гвидо - Юста ван Россум, шрифтовой дизайнер и программист, не предложил известный нам логотип:
История развития
В феврале 1991 года Гвидо ван Россум опубликовал код Python, помеченный версией 0.9.0, на alt.sources. На этой стадии в нём уже присутствовали классы с наследованием, обработка исключений, функции и основные типы данных: list
, dict
, str
и т. д. Также в этом начальном релизе были модули. Ван Россум описывал модуль как «один из главных элементов в программировании на 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)
dimitrii_z
04.07.2024 03:50+1Статья небольшая, но как вводно-обзорная любопытная. Есть только по оформлению момент: потенциально полезную инфу всё же надо вставлять не скрином таблицы, а верстать реальной таблицей или списком. На телефоне (а большинство сейчас потребляет веб-контент именно со смартов) сильно неудобно работать с текстовой инфой в виде картинок. Ну и индексация же..
Chikkl Автор
04.07.2024 03:50Добрый день! Спасибо вам за комментарий, я постараюсь исправить эти недочёты!
Z55
Версии после 3.9 не заслуживают внимания?
Chikkl Автор
Доброго времени суток! Благодарю вас за комментарий, сегодня дополню таблицу более новыми версиями. Подскажите, что бы вы ещё хотели увидеть в статье или чего вам не хватило?
Dominux
Конечно нет. Оптимизации выполнения кода, новые типы энумов, match-case и возможность запуска нескольких интерпретаторов в рамках одного процесса - все это бесполезная хрень
Chikkl Автор
Доброго времени суток! Я действительно упустил некоторые важные моменты при составлении таблицы. Правда возможность запуска нескольких интерпретаторов в рамках одного процесса, была добавлена ещё в версии 3.8, а не в более поздних. В данный момент информация в статье уже актуализирована. Благодарю вас за внимательность!
Dominux
Вроде как только в 3.13: PEP-554 и PEP-734.
А отдельный GIL для каждого суб-интерпретора вообще в 3.12: PEP-684