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

Почему Python медленный с точки зрения скорости?

Прежде чем углубиться в подробности того, почему Python популярен среди мейнстримов, несмотря на то, что он медленный, я кратко объясню, как и почему Python медленный по своей природе с точки зрения производительности и скорости по сравнению с другими популярными языками программирования, такими как C и C ++.

  • Язык программирования высокого уровня: код Python очень похож на то, как думают люди. Для этого он должен отвлечь от вас детали компьютера: управление памятью, указатели,… Следовательно, он медленнее, чем «язык нижнего уровня», такой как C;
  • Python интерпретируется, а не компилируется: Конечно, это утверждение является грубым упрощением, но в чем-то оно правильное. Во время выполнения код Python интерпретируется во время выполнения, а не компилируется в собственный код во время компиляции;
  • Python - это язык с динамической типизацией: в отличие от языков со статической типизацией, таких как C, C ++ или Java, вам не нужно объявлять тип переменной, например String, логическое или int. Чем меньше вы делаете, тем больше должен работать ваш компьютер. Для каждого доступа к атрибуту требуется множество поисковых запросов. Кроме того, из-за того, что он очень динамичен, оптимизировать Python невероятно сложно;
  • Глобальная блокировка интерпретатора (GIL): этот GIL в основном предотвращает многопоточность, предписывая интерпретатору одновременно выполнять только один поток в одном процессе (экземпляр интерпретатора Python).

Почему Python по-прежнему так популярен?

Я бы сказал, что в 9/10 раз более медленная производительность Python не имеет значения. Ниже я расскажу о некоторых основных аспектах и ​​причинах.

В 9/10 раз более медленная производительность Python не имеет значения.

Конечным пользователям все равно

Вы действительно чувствуете разницу между 0,001 секунды или 0,01 секунды? Скорее всего, ответ - «Нет». Обычно для конечных пользователей не имеет большого значения, если выполнение вашей программы занимает немного больше времени. Пока мы не пишем программу, которая выполняется веками и полностью разрушает взаимодействие с конечным пользователем, все в порядке. В случае, если это займет слишком много времени, можно использовать горизонтальное масштабирование для устранения многих узких мест, которые были бы созданы Python, и ускорения выполнения.

Более продуктивный

Первая и главная причина, по которой Python так популярен, потому что он высокопроизводительный по сравнению с другими языками программирования, такими как C ++ и Java. Это гораздо более лаконичный и выразительный язык, требующий меньше времени, усилий и строк кода для выполнения тех же операций.

Такие функции Python, как однострочники и система динамических типов, позволяют разработчикам писать очень меньше строк кода для задач, требующих большего количества строк кода на других языках. Это делает Python очень простым в освоении языком программирования даже для новичков и новичков. Например, программы на Python медленнее, чем на Java, но они также требуют гораздо меньше времени на разработку, поскольку коды Python в 3-5 раз короче, чем коды Java.

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

Скорость выполнения не имеет такого значения, как скорость бизнеса

Были времена, когда время работы компьютера было главной проблемой и самым дорогим ресурсом. Но теперь все изменилось. Компьютеры, серверы и другое оборудование стали намного дешевле, чем когда-либо, а скорость стала менее важным фактором. Сегодня время разработки в большинстве случаев имеет большее значение, чем скорость выполнения с точки зрения затрат, поскольку время сотрудника стало одним из самых или даже самых дорогих ресурсов. Сокращение времени, необходимого для каждого проекта, экономит компаниям кучу денег.

Что касается скорости выполнения или производительности программы, мы можем легко управлять ею с помощью горизонтального масштабирования, что означает увеличение числа работающих серверов для достижения такого уровня скорости или производительности. В современную эпоху, когда у нас очень высокая вычислительная мощность и многоядерные процессоры, которые со временем становятся дешевле, проблемы со скоростью и производительностью могут быть легко решены. Но это не та история с человеческими жертвами. Он будет только увеличиваться и увеличиваться с течением времени.

Короче говоря, количество времени, которое вы можете сэкономить в процессе разработки, возможно, будет более эффективным и рентабельным, чем любая производительность и скорость выполнения в приложении, которое вы получите.

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

Какой вариант вы выберете как генеральный директор? (1) завершите проект за 6 месяцев (2) завершите точно такой же проект за 4 месяца, но вам придется заплатить на 20% больше за сервер. Если вас больше всего беспокоит скорость выполнения, то (1) - ваш выбор. Но если вы ориентируетесь на скорость разработки и более быстрые инновации, (2) должен быть вашим выбором.

Именно здесь Python приобретает свою популярность, поскольку время, необходимое для создания программы с использованием Python, очень короткое по сравнению с другими языками программирования.

Скорость - единственный фактор, который вам следует учитывать?

Выбирая любой язык программирования для разработки любого типа приложения, вы должны учитывать несколько десятков или сотен факторов, и скорость, несомненно, является одним из них. Но есть и другие вещи, которые также важны, например, языковая пригодность.

Python присутствует на рынке очень давно, и его сообщество очень велико. Таким образом, легко найти разработчиков и поддержку Python.

Кроме того, язык имеет богатый набор стандартных библиотек и фреймворков для нескольких целей. Например, Django и Flask для разработки веб-приложений, TensorFlow для глубокого обучения, pandas для анализа данных и т. Д.

Подходит ли Python для приложений с интенсивным быстродействием?

До сих пор мы обсуждали, почему Python медленный с точки зрения скорости и почему Python популярен среди мейнстримов, несмотря на то, что он медленный. Но что, если вам строго требуется высокая производительность и высокая скорость выполнения в определенных приложениях? В этом случае я бы сказал, что Python никуда не годится. Конечно, вы можете оптимизировать его, но в целом следует использовать другие языки программирования. Например, для разработки игр C # будет лучшим вариантом.

Короче говоря, Python широко используется, даже если он несколько медленнее, чем другие языки, потому что:

  • Python более производительный
  • Компании могут оптимизировать свой самый дорогой ресурс: сотрудников.
  • Повышение конкурентоспособности за счет быстрых инноваций
  • Богатый набор библиотек и фреймворков
  • Большое сообщество

Но он также не подходит для приложений, требующих высокой скорости, включая игры, требующие высокой производительности, а также приложения уровня ОС или системы.