Найти в Дзене
Всё обо всём

Почему Python стал самым популярным языком программирования на сегодняшний день?

Язык Python существует уже очень давно. Этот язык старше Java и C#, но в последние 10 лет наблюдается значительный рост популярности языка. Давайте разберемся, почему так происходит.
Философия Python и немного истории
Изначально Python разрабатывался как скриптовый язык, но с возможностью объектно-ориентированного и функционального программирования. Ядро интерпретатора не большое, и оно спроектировано таким образом, чтобы была возможность без изменения самого ядра расширять функционал языка. Таким был Python на момент появления в 1991 году. В 2000 году вышла вторая версия Python 2, которая объединила классы с типами, что улучшило объектно-ориентированную составляющую языка. Также был добавлен автоматический сборщик мусора и много приятных мелочей, таких как поддержка Unicode. В 2006 году вышел Python 3. И он уже не всем пришелся по вкусу, т.к. философию этой версии языка можно описать словами: "должен быть один - и желательно только один - способ сделать это". Другими словами, весь п
Оглавление

Язык Python существует уже очень давно. Этот язык старше Java и C#, но в последние 10 лет наблюдается значительный рост популярности языка. Давайте разберемся, почему так происходит.

Философия Python и немного истории


Изначально Python разрабатывался как скриптовый язык, но с возможностью объектно-ориентированного и функционального программирования. Ядро интерпретатора не большое, и оно спроектировано таким образом, чтобы была возможность без изменения самого ядра расширять функционал языка. Таким был Python на момент появления в 1991 году. В 2000 году вышла вторая версия Python 2, которая объединила классы с типами, что улучшило объектно-ориентированную составляющую языка. Также был добавлен автоматический сборщик мусора и много приятных мелочей, таких как поддержка Unicode. В 2006 году вышел Python 3. И он уже не всем пришелся по вкусу, т.к. философию этой версии языка можно описать словами: "должен быть один - и желательно только один - способ сделать это". Другими словами, весь повторяющийся код был вырезан, и старые программы, которые использовали этот код, перестали работать. В 2020 году поддержка Python 2 прекратилась.

Сильные стороны


1. К несомненным плюсам языка можно отнести низкий порог вхождения. И это очень важно, особенно для тех, кто не является профессиональным программистом с большим стажем. Например, если вы ученый, и вам нужно произвести какие-то расчеты, вам не нужно вникать в тонкости языка, вы просто пишете свою математическую модель на Python.
2. Также к плюсам Python можно отнести удобный и читаемый синтаксис. Вместо того чтобы устраивать войны, каким образом должен выглядеть код, в Python у вас просто нет выбора. Вы будете вынуждены использовать отступы там, где это нужно, т.к. в синтаксисе этого языка нет скобок, как в Си, или других зарезервированных слов, обозначающих границы блоков кода.
3. Динамическая типизация и сборщик мусора позволяют программисту полностью сконцентрироваться на задаче. В то время как на С++ вы будете тратить много времени на поиск утечек памяти. Другими словами - Python дает быструю разработку. И это большой плюс. Вы можете использовать Python для эскизных проектов, а потом перенести код на компилируемые языки или вовсе оставить проект на Пайтоне, а критически важный код переписать на Си и встроить в проект, ведь в Пайтоне есть такая возможность.
4. Как и в других языках, в Пайтоне есть стандартная библиотека, кроме того есть и сторонние библиотеки, а также фреймворки. При этом можно использовать библиотеки, написанные на Си. Экосистема очень обширна, за счет того, что сообщество существует более 30 лет. Python можно использовать в таких областях, как:
- веб разработка;
- обработка данных;
- машинное обучение и искусственный интеллект;
- научные вычисления;
- математическое моделирование;
- front-end разработка, например, с использованием PyQt.


Слабые стороны


1. К сожалению в Пайтоне нет компилятора, отсюда вытекает сразу 2 недостатка:
- медленное время выполнения программ (примерно в 100 раз медленнее, чем скомпилированный код);
- нельзя создать бинарник, необходимо самостоятельно в ручную устанавливать все зависимости для заказчика либо использовать веб-интерфейс.
2. Нет инструмента для создания пакетов по умолчанию и медленное разрешение зависимостей, что еще больше тормозит ваши программы. Сложно подключить новых разработчиков к проекту, т.к. существует много менеджеров пакетов, версий самого Пайтона, а также других нюансов, без обсуждения которых невозможно будет влиться в проект.
3. Нет эффективных параллельных вычислений. Метод GIL не обеспечивает достаточную параллельность вычислений, т.к. по сути потоки переключаются между собой последовательно, и управление этим процессом идет из главного потока. Иными словами GIL работает по принципу мьютекса, а не семафоров. И это тоже весьма существенно тормозит вашу программу.


Так почему Python так популярен?

Чтобы ответить на этот вопрос, ответьте сначала на другой: в каких проектах важна скорость выполнения программ? И какова доля таких проектов на рынке? Не проще ли закупить более дорогое железо, поднять пару лишних серверов, и не вкладываться в разработку на Си? По деньгам получится так же, зато по срокам на Пайтоне выйдет быстрее. А уж про маленькие задачи, расчеты, сервисы и т.д., и говорить не приходится. Нужен Телеграм-бот - Пайтон. Нужен бэк-энд для интернет магазина - Пайтон. Обработка данных с использованием СУБД - Пайтон. Нужно произвести какие-то вычисления для дипломной работы или диссертации - Пайтон. Этот язык слишком прост и удобен, чтобы от него отказываться. Поэтому все больше людей начинают именно с него. Поэтому найти хорошего программиста на С++ гораздо сложнее, чем это было 10 лет назад. И поэтому Python так популярен сегодня.