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

Все статьи / История программирования / История языка Python

Что такое Python

Логотип языка Python

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

Python часто изучается и рекомендуется как первый язык программирования. Простота синтаксиса Python обеспечивает высокую производительность при написании кода. Использование интерпретатора упрощает тестирование и отладку программ. Python также помогает понять основные концепции объектно-ориентированного программирования.

Python не предлагает революционных новых функций. Скорее, он сочетает в себе многие из лучших принципов проектирования и идей из разных языков программирования. Программирование на Python кажется правильным. В отличие от девиза Perl «есть несколько способов сделать это», Python придерживается философии «должен существовать один - и, желательно, только один - очевидный способ сделать это».

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

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

История Python

В конце 1980-х годов сотрудником голландского национального института математики и информатики GWI Гвидо ван Россумом (Guido van Rossum) была предложена идея создания нового языка программирования...

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

Из интервью Гвидо ван Россума:

«Я не знаю, насколько хорошо люди знают влияние ABC на Python. Я стараюсь упомянуть влияние ABC, потому что я обязан всему, чему я научился во время этого проекта, и людям, которые над ним работали. Дизайн ABC был очень легким и чётким. ABC задумывался как язык программирования, которому можно было обучить продвинутых пользователей компьютеров, которые не были программистами или разработчиками программного обеспечения.

Авторы ABC начали разрабатывать язык в конце 70-х - начале 80-х годов. Я присоединился к команде в 1983 году. Думаю, мы работали до 1986 или 1987 года. По разным причинам проект ABC не имел большого успеха. В 1986 году я перешел в другой проект в CWI, проект Amoeba.

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

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

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

С самого начала язык проектировался как объектно-ориентированный. Гвидо ван Россум назвал язык в честь популярного британского комедийного телешоу 1970-х «Monty Python’s Flying Circus», поскольку автор был поклонником этого телешоу, как и многие другие разработчики того времени, а в самом шоу прослеживалась некая параллель с миром компьютерной техники.

В феврале 1991 года Гвидо опубликовал в группе новостей исходный текст Python версии 0.9.0. В этом начальном релизе были модули, заимствованные из Modula-3. Ван Россум описывал модуль как «один из главных элементов в программировании на Python».

Python 1.0 появился в январе 1994 года. Последней версией, выпущенной Ван Россумом во время работы в центре математики и информатики (CWI), был Python 1.2.

С 1995 года Гвидо Ван Россум продолжил работу над Python-ом в корпорации национальных исследовательских инициатив (CNRI) в городе Рестон, штат Вирджиния, где было выпущено несколько версий языка. С тех пор Python стал очень популярен среди разработчиков, которых привлекает его чистый синтаксис и репутация продуктивности.

Автор Python

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

Создателем языка Python является Гвидо ван Россум (Guido van Rossum). Гвидо учился в Амстердамском университете (Universiteit van Amsterdam), который окончил со степенью магистра математики и компьютерных наук. Его первая работа после колледжа была программистом в CWI.

Затем он переехал в США, чтобы устроиться на работу в некоммерческую исследовательскую лабораторию в Вирджинии, работал в нескольких других стартапах и переехал в Калифорнию.

В 2005 году он присоединился к Google, где получил звание старшего штатного инженера, а в 2013 году начал работать в Dropbox в качестве главного инженера. В октябре 2019 года он ушел на пенсию. На пенсии работает над личными проектами.

В ноябре 2020 года присоединился к подразделению разработки компании Microsoft для дальнейшего совершенствования Python.

Среди разработчиков Python Гвидо известен как «великодушный пожизненный диктатор» проекта, что означает, что он продолжает наблюдать за процессом разработки Python, принимая окончательные решения, когда это необходимо. С июля 2018 года Гвидо ушел в постоянный отпуск от диктаторства, оставив за собой право быть обычным разработчиком.

В настоящее время Гвидо ван Россум также является Президентом общества Python Software Foundation.

Реализациии Python

CPython - каноническая реализация языка программирования Python, распространяемая на python.org. Термин «CPython» используется, когда необходимо отличить эту реализацию от других. CPython - интерпретатор, написанный на языке программирования C. Это наиболее часто используемая языковая реализация и рассматривается как фактическая эталонная реализация. Исходный код Python компилируется в байт-код интерпретатором CPython . Байт-код кэшируется в файлах, поэтому второй раз выполнение того же файла происходит значительно быстрее. Он распространяется под свободной лицензией Python Software Foundation License, позволяющей использовать его без ограничений в любых приложениях, включая проприетарные (правообладатель проприетарного ПО сохраняет полностью за собой монополию на его использование, копирование и модификацию).

Jython - Java-реализация, который позволяет коду Python выполняться на платформах Java. Jython находится в свободном доступе как для коммерческого, так и для некоммерческого использования. Код Python в Jython обычно в 2-10 раз короче, чем эквивалентные программы на Java. Это напрямую влияет на производительность программистов. Jython предоставляет интерактивный интерпретатор, который можно использовать для взаимодействия с пакетами Java или с запущенными приложениями Java.

Python.NET - пакет, который предоставляет программистам Python почти полную интеграцию со средой выполнения .NET 4.0+ Common Language Runtime (CLR) в Windows и средой выполнения Mono в Linux и OSX. Используя этот пакет, можно создавать сценарии для .NET-приложений или целые приложения на Python, используя .NET-сервисы и компоненты, написанные на любом языке, ориентированном на CLR (C#, VB.NET, F#).

MS Visual Studio в настоящее время поддерживает программирование на классическом Python. Python поддерживает все способы разработки, включая веб-приложения, веб-сервисы, настольные приложения, сценарии и научные вычисления, и используется многими университетами, учеными, профессиональными разработчиками. Предоставляются шаблоны веб-приложений на фреймворке Django. Visual Studio обеспечивает поддержку языка Python с открытым исходным кодом.

PyPy – это замена CPython. Он построен с использованием языка RPython, который был разработан совместно с ним. Основная причина использовать его вместо CPython – скорость выполнения программ. Таким образом, лучше всего работает PyPy при выполнении длительно выполняющихся программ, когда значительная часть времени тратится на выполнение кода Python. Необходимо отметить, что PyPy не сможет ускорить код в случаях кратковременных процессов или если все время тратится на библиотеки времени выполнения, но не на выполнение кода Python.

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

Синтаксис и семантика

Python - очень компактный язык программирования, краткий синтаксис прост, но при этом очень продуктивен. Программы на Python намного короче написанного кода на других современных языках программирования. Меньше кода - меньше ошибок.

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

Поскольку нет скобок начала и конца, не может быть разногласий между группировкой, воспринимаемой синтаксическим анализатором и человеком, читающим. Иногда программисты на C могут встретить такой фрагмент кода:
if (x <= y)
       x++;
       y--;
z++;
Если условие истинно выполняется только оператор x++, но отступ заставляет многих думать иначе. Даже опытные программисты на C иногда долго смотрят на него, задаваясь вопросом, почему y уменьшается даже для x > y. Из-за отсутствия скобок начала и конца Python гораздо менее подвержен конфликтам в стиле кодирования. Язык обладает чётким и последовательным синтаксисом, продуманной модульностью, благодаря чему исходный код написанных на Python программ легко читаем.

Примеры программного кода на языке Python.

Сложение двух чисел:
num1 = 20.5
num2 = 16.3

# sum – сумма двух чисел
sum = num1 + num2

# Вывод данных на дисплей
print('The sum of {0} and {1} is {2}'.format(num1, num2, sum))
Цикл for:
# массив строк
colors = ["красный", "зеленый", "синий"]

for color in colors:
    print(color)

Стандартная библиотека Python

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

Установщики Python для платформы Windows включают в себя всю стандартную библиотеку, а также часто включают множество дополнительных компонентов. Для Unix-подобных операционных систем Python обычно предоставляется в виде набора пакетов, поэтому для получения некоторых или всех дополнительных компонентов может потребоваться использование инструментов упаковки, поставляемых с операционной системой.

Сторонние библиотеки

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

NumPy - проект с открытым исходным кодом, фундаментальный пакет для научных вычислений на Python. Это библиотека Python, которая предоставляет объект многомерного массива, различные производные объекты и набор процедур для быстрых операций с массивами, включая математические, логические, манипуляции с формами, сортировку, выбор, ввод-вывод, дискретные преобразования Фурье, базовая линейная алгебра, основные статистические операции, случайное моделирование и многое другое.

TensorFlow - дружественная к Python библиотека с открытым исходным кодом для численных вычислений, ускоряет и упрощает машинное обучение. TensorFlow — это мощная библиотека для создания нейронных сетей. Если раньше надо было создавать свои классы, чтобы хранить информацию о весах нейрона, объединять их в слои и еще добавлять туда алгоритмы обучения, то теперь все это есть в TensorFlow. Для новичков и экспертов TensorFlow позволяет легко создавать модели машинного обучения для настольных компьютеров, мобильных устройств, Интернета и облака. Эта библиотека была разработана Google в сотрудничестве с Brain Team.

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

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

Frameworks

Язык программирования Python отлично подходит и для выполнения задач во всемирной паутине. Фреймворки и серверы приложений позволяют с небольшими усилиями внедрять новые услуги и бизнес-модели в Интернет.

Flask - облегченная структура веб-приложений WSGI (спецификация интерфейса взаимодействия сервера и приложения). Он разработан, чтобы сделать начало работы быстрым и легким, с возможностью масштабирования до сложных приложений. Flask имеет полную поддержку Unicode, дополнительную интегрированную изолированную среду выполнения, широко используемую и лицензированную BSD. Flask стал одним из самых популярных фреймворков для веб-приложений Python.

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

FastAPI - современный, быстрый веб-фреймворк для организации REST API сервисов на Python. Фреймворк может работать на различных операционках, снабжен подробной документацией. FastAPI имеет встроенную асинхронность и валидацию параметров запросов и увеличивает скорость разработки функций более чем вдвое. Интуитивно понятный, с отличной поддержкой редактора уменьшает время на отладку. Является одним из самых быстрых доступных фреймворков Python. Устраняет дублирование кода. Основан на открытых стандартах API: OpenAPI и JSON Schema.

Scrapy - фреймворк для извлечения необходимых данных с веб-сайтов, для создания и запуска электронных веб-пауков. Scrapy - платформа приложений для сканирования веб-сайтов и извлечения структурированных данных. Несмотря на то, что Scrapy изначально был разработан для парсинга веб-страниц , его также можно использовать для извлечения данных с помощью API-интерфейсов или в качестве поискового робота общего назначения.

Графическая визуализация

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

PyQt - набор расширений графического фреймворка Qt (модульные библиотечные классы C++ для разработки приложений) для языка программирования Python. PyQt работает на всех платформах, поддерживаемых Qt: Linux и другие UNIX-подобные ОС, Mac OS X и Windows. PyQt распространяется под лицензиями бесплатной и коммерческой. Это набор виджетов графического интерфейса, доступ к базам данных с помощью SQL (ODBC, MySQL, PostgreSQL, Oracle), поддержку интернационализации, парсер XML, поддержку SVG, интеграцию с WebKit - движком рендеринга HTML, поддержку воспроизведения видео и аудио. PyQt также включает в себя Qt Designer (Qt Creator) — дизайнер графического интерфейса пользователя.

Pygame - «игровая библиотека», набор инструментов, помогающих программистам создавать видеоигры и мультимедийные программы на языке Python. Включает графику и анимация, звук, управление (мышь, клавиатура, геймпад и другое). Pygame добавляет функциональность поверх библиотеки низкоуровневой SDL. SDL (Simple DirectMedia Layer) — это кроссплатформенная библиотека разработки, предназначенная для обеспечения низкоуровневого доступа к оборудованию через OpenGL и Direct3D. SDL официально поддерживает Windows, Mac OS X, Linux, iOS и Android. Дети и взрослые делают шутеры с помощью Pygame.

Pillow - библиотека языка Python, предназначенная для работы с растровой графикой. Библиотека обработки изображений Pillow добавляет в интерпретатор Python возможности обработки изображений. Эта библиотека обеспечивает обширную поддержку форматов файлов, эффективное внутреннее представление и довольно мощные возможности обработки изображений. Базовая библиотека изображений предназначена для быстрого доступа к данным, хранящимся в нескольких основных форматах пикселей. Поддерживает Windows, Linux, MacOS.

Python Software Foundation

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

12 октября 2009 г. правление Python Software Foundation приняло следующее Заявление о разнообразии: «Фонд программного обеспечения Python и глобальное сообщество Python приветствуют и поощряют участие всех желающих. Наше сообщество основано на взаимном уважении, терпимости и поощрении, и мы работаем, чтобы помочь друг другу жить в соответствии с этими принципами. Мы хотим, чтобы наше сообщество было более разнообразным: кем бы вы ни были и чем бы ни занимались, мы приветствуем вас.»

PSF поддерживает и сохраняет python.org, документацию и многие другие службы, на которые полагается сообщество Python. Проводит и спонсирует PyCon US Conference, крупнейшее ежегодное собрание сообщества Python. В 2019 году PSF выделила 326000 долларов США на более чем 200 грантов получателям в 60 разных странах.

Президентом организации является Гвидо ван Россум. Домашняя страница PSF находится по адресу https://www.python.org/psf/

Python в настоящее время

Python, который начинался как простой язык сценариев как альтернатива Perl, стал зрелым. За это время Python сделал большой шаг вперед. Простота обучения, огромное количество библиотек и широкое использование во всех областях сделали его самым популярным языком программирования в мире.

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

Python нашел свою нишу в высокопроизводительном оборудовании, но в меньшей степени на мобильных устройствах и в Интернете - проблема, которую создатель Python Гвидо ван Россум надеется решить с помощью повышения производительности, над которой он работает в Microsoft.

Tiobe, голландская компания по обеспечению качества программного обеспечения, отслеживает популярность языков программирования в течение последних 20 лет. TIOBE ежедневно в режиме реального времени проверяет более 1056 миллионов строк программного кода для своих клиентов по всему миру. Его рейтинг основан на поисковых запросах, связанных с программированием, и является одним из показателей языков, которые разработчики должны рассмотреть для изучения.

Данные TIOBE по языкам программирования на настоящее время: Индекс TIOBE языка Python

Заключение

В 1998 году небольшая компания из Калифорнии с помощью языка программирования Python изменила способ поиска актуальной информации в Интернете. Компания имела необычно звучащее имя: Google. Двенадцать лет спустя это имя оценивается в 111 миллиардов долларов США, что делает его одним из самых ценных брендов в мире. Благодаря своим инновационным продуктам Google быстро поднялся на позицию ведущего поставщика онлайн-информации.

Безусловно, технический прогресс набирает обороты, и языки программирования стремительно развиваются. Появляются новые развивающиеся языки, которые потенциально могут составить серьезную конкуренцию Python. Но в настоящее время Python пользуется всеобщей популярностью благодаря тому, что:
  • Python - отличный стартовый язык для начинающих, не владеющих языком программирования.
  • Python - лучший способ начать работу любому, особенно тому, кто планирует пойти дальше в области науки о данных, искусственного интеллекта и машинного обучения.
  • Разработчикам на Python не нужно тратить слишком много времени на понимание синтаксиса дружелюбного языка программирования.
  • Python распространяется под лицензией с открытым исходным кодом. Это делает его бесплатным для использования и распространения.

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

Просмотры101 24 ноября 2021 г.