На Quora обсуждают «Почему Python такой популярный, хотя такой медленный». Тема, конечно, холиварная. Но порассуждать на неё интересно. Ведь Python действительно медленный.
Медленный, если сравнивать его с C/C++, Java или C#. Это факт. Python — достаточно медленный скриптовый динамический язык программирования. Любая метрика покажет, что программа на C++ будет работать быстрее. Но есть у языков и другая, не менее важная метрика — скорость разработки.
Вот тут динамические языки начинают выигрывать. Разрабатывать на Python, Ruby, JS быстрее, чем на Java. А скорость разработки — это прямая экономия для компании. Сегодня разработка продукта заканчивается, только если проект закрывают. В остальных случаях купить ещё один инстанс у Amazon дешевле, чем увеличить срок разработки какой‑либо фичи на пару недель.
Вдобавок высокая производительность — не самоцель. Программа должна решать задачу с приемлемой производительностью. Задач, где производительность критична, не так много. И даже тогда правильный алгоритм влияет на скорость больше, чем выбор языка реализации.
Не стоит забывать, что процессор в последнее время далеко не всегда является узким местом. Скорее всего, производительность упрётся в жёсткий диск или сеть, чем в процессор.
Ещё один плюс Python (теперь уже по сравнению с «одноклассниками») — его простой и читаемый синтаксис. Я слышал много историй, когда учёные, далёкие от программирования, предпочитали делать наброски вычислений на Python. Не из‑за наличия SciPy/NumPy, а именно из‑за того, что такую программу проще написать и объяснить коллегам. Программистам, работающим в командах, простой синтаксис тоже в плюс.
Конечно, «батарейки» важны. За это, пожалуй, любят Python ребята из Data Science. Наверняка для статистических расчётов и анализа есть более интересные инструменты. Но данные для таких расчётов нужно ещё извлечь и подготовить. А потом оказывается, что считать на Python так же удобно.