О плюсах и минусах Python 🐍 Рассказывает Егор Овчаренко из Яндекс.Такси:
— Если кратко, в чём преимущество Python? На нём можно быстро писать код. Это, конечно, очень субъективно — люди, которые круто пишут на C++ или Go, могут с этим поспорить. Но в среднем писать на Python быстрее.
В чём минусы? Первый и, наверное, основной минус — Python медленнее. Он может быть медленнее других языков в 30 раз, вот исследование на эту тему:
https://ya.cc/t/b1LV9UT-Anui5. Но его скорость зависит от задачи. Есть два класса задач:
— CPU bound, задачи, зависящие от процессора, ограниченные по CPU.
— I/O bound, задачи, ограниченные вводом-выводом: или по сети, или в базах данных.
Если вы решаете задачу CPU bound, то да, Python окажется медленнее. Если I/O bound (а это большой класс задач), то для понимания скорости выполнения вам надо запускать бенчмарки и, возможно, сравнивая Python с другими языками, вы даже не заметите разницы в производительности.
Кроме того, Python обладает динамической типизацией: интерпретатор в момент компиляции не проверяет типы. В версии 3.5 появились type hints (позволяют статически указывать типы), но они не очень строгие. То есть некоторые ошибки вы будете отлавливать уже в продакшене, а не на этапе компиляции. У других популярных языков для бэкенда (Java, C#, C++, Go) типизация статическая: если вы в коде передаёте не тот объект, который нужно, компилятор вам об этом сообщит.