В чем главная слабость Python, как языка программирования?
Опубликовано 25 January 2016 в Python
Я очень люблю Quora.com. В отличие от StackOverflow, здесь можно найти интересные обсуждения, не связанные с конкретными вопросами, а с общими ощущениями от технологий. Недавно наткнулся, к примеру, на такое обсуждение: What are the main weaknesses of Python as a programming language?
В основном Python ругают за тормознутость, сравнивая с компилируемыми языками. Я уже писал, что считаю это обвинение надуманным. Для меня скорость разработки гораздо важнее. Для CPU bound задач я бы в первую очередь на алгоритмами подумал, а потом использовал Cython. Да и не так уж много таких задач. А если ваш проект весь такой, то какого лешего вы выбрали скриптовый язык для этого?
Несколько удивило, что лямбды ругают достаточно много. Не нравится, что можно сделать лямбду только с одним выражением. По мне так это очень хорошо. Нет соблазна заворачивать в лямбду слишком сложные конструкции. Ругают значимые отступы. По мне - чистой воды вкусовщина.
Первый обоснованный наезд - странное поведение списка в параметрах функции.
>>> def foo(my_list=[]):
... my_list.append(1)
... return my_list
...
>>> foo()
[1]
>>> foo()
[1, 1]
>>> foo()
[1, 1, 1]
>>>
Согласен на все сто. Обосновано.
Второй обоснованный наезд - GIL. Но на самом деле не так уж много задач, где можно вляпаться в GIL. И веб это точно не из их числа.
Третий обоснованный наезд - несовместимость 2 и 3 ветки. Появление третьего питона - это большая боль для сообщества. И хотя он появился уже очень-очень давно, до сих пор актуально написание кода на Python 2 с оглядкой на то, что когда-нибудь в светлом будущем будет переезд проекта на Python 3.
Полу обоснованный наезд - отсутствие IDE. Эмм... А для других скриптовых языков есть IDE, которые делают столько же магии, как IDE для Java? Python слишком гибок для IDE. Часто еще на этапе проектирования проекта видно, в каком месте автокомплит отвалится.
А вообще самое важно в языке программирования не синтаксис, а окружение (библиотеки, коммьюнити, проекты, вакансии и т.п.). И с этим у питона все ОК.
Возник вопрос? Мне всегда можно написать в Twitter: avkorablev