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

Python (МФА: [ˈpʌɪθ(ə)n]; в русском языке распространено название пито́н или, более правильно, па́йтон) — высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода. Синтаксис ядра Python минималистичен. В то же время стандартная библиотека включает большой набор полезных функций.

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

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

asda

Язык ABC#

После окончания университета в 1982 году Гвидо ван Россум попал в команду разработчиков института CWI, где до 1986 года занимался проектированием языка ABC — прототипа Python. ABC задумывался как инструмент для пользователей, которые до этого не программировали и не разбирались в устройстве компьютеров.

В 1987 году проект ABC закрылся. Главной причиной оказалось отсутсвие интернета и, в связи с этим, отсутствие оператиного отзыва от пользователей. Из-за этого команда не добавляла улучшения, которые учитывали бы потребности разработчиков, программисты не участвовали в развитии проета.

В 1986 году Гвидо перешёл из ABC в проект Amoeba, где разврабатывао операционную систему операционную систему для крупных организаций. Amoeba объединяла сеть пользовательских компьютеров в единую станцию и оптимизировала их совместную работу над производительными задачами.

Python#

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

20 февраля 1991 года Гвидо ван Россум создал дистрибутив и опубликовал код языка Python через сеть Usenet. Так появилась версия 0.9.0.

Гвидо ван Россум назвал свой язык в честь комедийного сериала «Летающий цирк Монти Пайтона» — это одно из его любимых шоу.

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

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

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

Развитие#

В феврале 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 года после длительного периода тестирования. В Python 3 устранены многие недостатки архитектуры с максимально возможным (но не полным) сохранением совместимости со старыми версиями Python. Основной проблемой версии 2.0 и последующих ей стало то, что накопилось множество способов решения одних и тех же задач, что противоречило принципу: “Должен существовать один и, желательно, только один очевидный способ сделать это.”

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

Факторы популярности Python:#

  • Качество программного обеспечения

  • Высокая скорость разработки

По сравнению с компилирующими или строго типизированными языками, такими как C, C++ и Java, Python во много раз повышает производительность труда разработчика. Объем программного кода на языке Python обычно составляет треть или даже пятую часть эквивалентного программного кода на языке C++ или Java.

  • Переносимость программ.

Большая часть программ на языке Python выполняется без изменений на всех основных платформах. Перенос программного кода из операционной системы Linux в Windows обычно заключается в простом копировании файлов программ с одной машины на другую.

  • Библиотеки поддержки

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

  • Интеграция компонентов

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

Недостатки:#

  • Python компилирует (то есть транслирует) инструкции исходного программного кода в промежуточное представление, известное как байт-код, и затем интерпретирует этот байт-код.

  • Байт-код обеспечивает переносимость программ, поскольку это платформонезависимый формат.

Однако из-за того что Python не создает двоичный машинный код (например, машинные инструкции для микропроцессора Intel), некоторые программы на языке Python могут работать медленнее своих аналогов, написанных на компилирующих языках, таких как C.

Сферы применения Python#

  • Системное программирование

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

  • Графический интерфейс

Простота Python и высокая скорость разработки делают его отличным сред- и высокая скорость разработки делают его отличным сред- и высокая скорость разработки делают его отличным средством разработки графического интерфейса. В состав Python входит стандартный объектно-ориентированный интерфейс к Tk GUI API, который называется tkinter (в Python 2.6 он называется Tkinter), позволяющий программам на языке Python реализовать переносимый графический интерфейс с внешним видом, присущим операционной системе.

  • Веб-сценарии

Интерпретатор Python поставляется вместе со стандартными интернет-модулями, которые позволяют программам выполнять разнообразные сетевые операции как в режиме клиента, так и в режиме сервера. Сценарии могут производить взаимодействия через сокеты, извлекать информацию из форм, отправленных серверным CGI-сценариям; передавать файлы по протоколу FTP; обрабатывать файлы XML; передавать, принимать, создавать и производить разбор писем электронной почты; загружать веб-страницы с указанных адресов URL; производить разбор разметки HTML и XML полученных веб-страниц XML полученных веб-страниц полученных веб-страниц.

  • Интеграция компонентов

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

  • Приложения баз данных

В языке Python имеются интерфейсы доступа ко всем основным реляционным базам данных – Sybase, Oracle, Informix, ODBC, MySQL, PostgreSQL, SQLite и многим другим. В мире Python существует также переносимый прикладной программный интерфейс баз данных, предназначенный для доступа к базам данных SQL из сценариев на языке Python, который унифицирует доступ к различным базам данных. Например, при использовании переносимого API сценарий, предназначенный для работы со свободной базой данных MySQL, практически без изменений сможет работать с другими системами баз данных (такими как Oracle). Все, что потребуется сделать для этого, – заменить используемый низкоуровневый интерфейс.

  • Быстрое создание прототипов

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

  • Программирование математических и научных вычислений

Расширение NumPy для математических вычислений, упоминавшееся выше, включает такие мощные элементы, как объекты массивов, интерфейсы к стандартным математическим библиотекам, и многое другое. Расширение NumPy – за счет интеграции с математическими библиотеками, написанными на компилирующих языках программирования – превращает Python в сложный, но удобный инструмент программирования математических вычислений.

  • Изображения, искусственный интеллект, XML роботы и многое другое

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

Например:

  • Создавать игровые программы и анимационные ролики с помощью системы pygame

  • Обмениваться данными с другими компьютерами через последовательный порт с помощью расширения PySerial

  • Обрабатывать изображения с помощью расширений PIL, PyOpenGL, Blender, Maya и других

  • Управлять роботом с помощью инструмента PyRo

  • Производить разбор XML-документов с помощью пакета xml, модуля xmlrpclib и расширений сторонних разработчиков

  • Программировать искусственный интеллект с помощью эмулятора нейросетей и оболочек экспертных систем

  • Анализировать фразы на естественном языке с помощью пакета NLTK.