Рубріки: Мнение

Его падение не за горами: почему Python — не язык программирования будущего (и что с этим делать)

Оленка Пилипчак

Сообществу программистов понадобилось несколько десятилетий, чтобы оценить Python. Но с начала 2010-х он стремительно развивался и в конце концов стал популярнее C, C#, Java и JavaScript.

Так считает доктор наук по физике элементарных частиц Эри Джури. Также она разрабатывает алгоритмы искусственного интеллекта, чтобы лучше исследовать эти частицы.

Передаем ей слово.


Но сколько это еще будет продолжаться? Когда Python наконец-то заменят другие языки и почему это произойдет?

Я не буду указывать точную дату, потому что этого никто не может предугадать. Но можно оценить преимущества этого языка и его недостатки, которые, как мне кажется, приведут к упадку. 

Почему Python популярен

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

Статистика тегов на Stack Overflow

Почти 14% всех вопросов Stack Overflow имеют тег «python», и эта тенденция растет. Вот почему.

Этот язык создали давно

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

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

Она удобна для начинающих

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

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

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

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

Он универсален

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

Хотите обрабатывать числа, векторы и матрицы? Используйте NumPy.

Хотите производить технические и инженерные расчеты? Вот вам SciPy.

Хотите добиться успеха в обработке и анализе данных? Держите Pandas.

Хотите работать с искусственным интеллектом? К вашим услугам Scikit-Learn.

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

Станут ли фатальными для Python его недостатки

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

Скорость

Python медленный. Очень медленный.

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

На это есть разные причины. Одна из них — этот язык динамически типизированный. Помните, вам не нужно указывать типы данных, как в других языках? А это значит, что нужно много памяти, потому что программа должна зарезервировать достаточно места для каждой переменной, чтобы она в любом случае работала. И это увеличивает время, необходимое для вычисления. 

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

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

Но, в конце концов, проблема со скоростью не так уж страшна. Компьютеры и серверы настолько подешевели, что мы говорим о долях секунд. И конечному пользователю безразлично, загружается его программа за 0,001 или за 0,01 секунды.

Область видения

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

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

Lambdas

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

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

Эта разница между выражениями и операторами достаточно условна и не встречается в других языках.

Пробелы

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

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

Более новые языки, такие как Haskell, решают эту проблему: они используют пробелы, но предлагают альтернативный синтаксис для тех, кто предпочел бы обходиться без них.

Мобильная разработка

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

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

Но Python создавался не для мобильных устройств. Поэтому даже если он подходит для базовых задач, лучше использовать язык, созданный именно для разработки мобильных приложений. Вот некоторые широко используемые фреймворки программирования для мобильных устройств: React Native, Flutter, Iconic и Cordova.

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

Ошибки выполнения

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

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

Что может заменить Python в будущем

На рынке языков программирования появилось несколько новых конкурентов:

  • Rust предлагает такую ​​же безопасность, как и Python — ни одна переменная не может быть случайно перезаписана. Также решает проблему продуктивности с помощью концепции собственности и заимствований. По данным Stack Overflow Insights, это один из самых популярных языков программирования за последние несколько лет.
  • Go отлично подходит для начинающих, как и Python. Он настолько прост, что поддерживать код стало еще проще. Интересный факт: разработчики Go — одни из самых высокооплачиваемых программистов на рынке.
  • Julia — новинка, прямой конкурент Python. Она восполняет пробел масштабных технических вычислений: обычно для этого используют Python или Matlab в сочетании с библиотеками C++. Теперь можно просто использовать Julia вместо того, чтобы жонглировать на двух языках.

Хотя на рынке есть другие языки, Rust, Go и Julia помогают избегать недостатков Python.

Их доля рынка все еще невелика (что отражается в количестве тегов Stack Overflow), но тенденция к росту очевидна.

Учитывая всеобщую популярность Python, несомненно, может пройти несколько лет, или даже больше, до момента, когда какой-нибудь из новых языков заменит его. Будет ли это Rust, Go, Julia или какой-то совершенно новый язык, пока трудно предсказать. Но я уверена, что падение Python уже не за горами.

Автор: Эри Джури

Текст адаптировала Евгения Козловская

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023