python

Прошлое, настоящее и будущее языка Python

6 февраля, 2022
2 минут(ы) чтения
Спонсор

Популярность языка

Python достаточно старый язык, но сейчас мода на него как никогда высока. Расскажи что тебе нравится в нем, а что нет?

Eugene Bright: На мой взгляд JS сейчас популярнее, чем Python. Сила их обоих в наличии REPL (интерфейс командной строки (примечание редактора) окружения, которое позволяет ненавязчиво начать использовать интерпретатор в качестве продвинутого калькулятора с низким порогом вхождения.

На мой взгляд проблем у Python три:

  1. Самая главная в том, что у него нет спецификации, а только референсная имплементации; 
  2. Отсутствие JIT оптимизаций в CPython; 
  3. Неотделяемая стандартная библиотека (те самые хвалёные батарейки, которые в комплекте), приходится изобретать всякие MicroPython’ы, если целевая платформа — MCU. 

Будущее языка

Переход с Python 2 на Python 3 был очень тяжёлым. Застал ли ты это и как справился? Каким может стать Python 4?

Eugene Bright: Вся тяжесть перехода на третью версию со второй связана с необходимостью одновременной поддержки обоих версий в библиотеках. Если проект не библиотека, то переход не болезненный. Не думаю, что Python4 успеет выйти до начала Апокалипсиса. Но если бы успел, то он бы был в основном связан с выносом большей части стандартной библиотеки в отдельные модули и изменением формата байт-кода, но это бы не повлияло на совместимость. 

Python многие полюбили за то, что он вшит в операционную систему Linux. Можно легко набросать скрипт и быть уверенным что он запуститься на другом компьютере. А как обстоят дела для разработки на Windows?

Eugene Bright: Не знаю как там с Windows, уже десяток лет им не пользуюсь, даже не уверен, как сейчас называется последняя версия, но слышал, что Linux приложения запускаются там нативно через WSL. 

Скорость разработки

Python это не быстрый язык и его постоянно пытаются ускорить. Есть множество реализаций: CPython, JPython, IronPython. Есть ли смысл их учить?

Eugene Bright: На самом деле если пытаешься ускорить приложение, написанное на python, то нужно использовать расширения, написанные на C, и компиляторы Numba и Nuitka. Ironpython и JPython — это не про ускорение, а про interoperability с другими языками. PyPy может дать ускорение для существующих проектов без необходимости (только теоретически) доработки кода. Pyston мог бы стать новым стандартом и может быть станет донором будущих улучшений для CPython. Я рекомендую без нужды не отходить от референсного интерпретатора. 

Python используют в веб-сервисах, Machine Learning, скриптинге. Это серебряная пуля или у него есть недостатки?

Eugene Bright: Python действительно хорош (и даже быстр) в Machine Learning, потому что для него полно библиотек (numpy, pandas), написанных на C. Сам python становится просто обёрткой для них. Новые языки вроде Julia грозятся вытеснить python из этой ниши, но не ясно, какую проблему они решают (производительность и так в порядке). В web-программировании лучше всего показывает себя Go. Для каждой сферы есть свои оптимальные решения, и python не самое оптимальное, но приемлемое. В каком-то роде python стал серебряной пулей, если твоя цель — гибкость и универсальность. 

Процесс обучения

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

Eugene Bright: Я считаю python C-подобным. Когда я только познакомился с ним, очень обрадовался идее отступов. Разве нормальные программисты пишут свои программы на C в одну строчку? А если код корректно отформатирован, то границы блоков и так очевидны. 

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

Что нужно знать чтобы хорошо писать на Python?

Eugene Bright: Чтобы ХОРОШО писать на любом языке нужно знать алгоритмы и паттерны проектирования. Чтобы писать на python, в добавок ко всему нужно следить за новостями об изменении интерпретатора. Python живой язык, все время появляется что-то новое: walrus оператор, switch выражения и т.д. 

Денис Сергеевич Басковский

Философ, изобретатель и поэт.

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
Чем занимается SEO специалист
Следующая статья

Секреты SEO-оптимизации в этом году. Интервью с СЕО специалистом