Недостатки Python и их описание
Общие вопросы python 3, как работает python, минусы python, скорость выполнения программ
После 17 лет работы с языком Python и 12 лет преподавания единственный недостаток, который мне удалось обнаружить, - это скорость выполнения программ, которая не всегда может быть такой же высокой, как у программ, написанных на компилирующих языках программирования, таких как С или C++.
Подробнее о концепциях реализации мы поговорим в следующих статьях. В двух словах замечу, что в современной реализации Python компилирует (то есть транслирует) инструкции исходного программного кода в промежуточное представление, известное как байт-код, и затем интерпретирует этот байт-код.
Байт-код обеспечивает переносимость программ, поскольку это платформоне-зависимый формат. Однако из-за того что Python не создает двоичный машинный код (например, машинные инструкции для микропроцессора Intel), некоторые программы на языке Python могут работать медленнее своих аналогов, написанных на компилирующих языках, таких как С.
Будет ли вас когда-нибудь волновать разница в скорости выполнения программ, зависит от того, какого рода программы вы пишете. Python многократно подвергался оптимизации и в отдельных прикладных областях программный код на этом языке отличается достаточно высокой скоростью выполнения.
Кроме того, когда в сценарии Python делается что-нибудь «значительное»,
например обрабатывается файл или конструируется графический интерфейс,
ваша программа фактически выполняется со скоростью, которую способен
дать язык С, потому что такого рода задачи решаются компилированным
с языка С программным кодом, лежащим в недрах интерпретатора Python.
Гораздо важнее, что преимущество в скорости разработки порой важнее потери
скорости выполнения, особенно если учесть быстродействие современных
компьютеров.
Тем не менее даже при высоком быстродействии современных процессоров
остаются такие области, где требуется максимальная скорость выполнения.
Реализация математических вычислений и анимационных эффектов,
например, часто требует наличия базовых вычислительных компонентов, которые
решают свои задачи со скоростью языка С (или еще быстрее). Если вы
работаете как раз в такой области, вы все равно сможете использовать Python,
достаточно лишь выделить из приложения компоненты, требующие максимальной
скорости работы, в виде компилированных расширений и связать их системой
сценариев на языке Python.
В этой книге мы не будем обсуждать расширения слишком подробно, но это
один из примеров, когда Python может играть упоминавшуюся выше роль
языка управления. Типичным примером такой двуязычной стратегии может
служить расширение NumPy, содержащее реализацию математических
вычислений для Python; благодаря комбинированию компилированных и
оптимизированных библиотек расширения с языком Python NumPy превращает Python
в мощный, эффективный и удобный инструмент математических вычислений.
Возможно, вам никогда не придется создавать подобные расширения, но вы
должны знать, что в случае необходимости они могут предоставить в ваше
распоряжение мощный механизм оптимизации.
«Learning Python, Fourth Edition, by
Mark Lutz. Copyright 2009 O'Reilly Media, Inc., 978-0-596-15806-4».
- Казино Вулкан ждет гостей
- Бесплатное обучение программированию на Python для любителей ИТ
- Игровой автомат Viking Gods Thor and Loki - в мобильное казино Вулкан 24 поймай удачу
- Словари в Python
- Remote debugging: PyCharm, pydev, rsync, django, postgis
- Вложение декораторов в Python
- Joxi - как делать скриншоты?