Я очень люблю Quora.com. В отличие от Stack Overflow, здесь можно найти интересные обсуждения, не связанные с конкретными вопросами, а с общими ощущениями от технологий. Недавно наткнулся, к примеру, на такое обсуждение: «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 3 — это большая боль для сообщества. И хотя он появился уже очень‑очень давно, до сих пор актуально написание кода на Python 2 с оглядкой на то, что когда‑нибудь в светлом будущем будет переезд проекта на Python 3.
Полуобоснованный наезд — отсутствие IDE. Эмм… А для других скриптовых языков есть IDE, которые делают столько же «магии», как IDE для Java? Python слишком гибок для IDE. Часто ещё на этапе проектирования проекта видно, в каком месте автокомплит отвалится.
А вообще самое важное в языке программирования — не синтаксис, а окружение (библиотеки, коммьюнити, проекты, вакансии и т. п.). И с этим у Python всё ОК.