Быстрый в изучении - мощный в программировании
>> Telegram ЧАТ для Python Программистов

Свободное общение и помощь советом и решением проблем с кодом! Заходите в наш TELEGRAM ЧАТ!

>> Python Форум Помощи!

Мы создали форум где отвечаем на все вопросы связанные с языком программирования Python. Ждем вас там!

>> Python Канал в Telegram

Обучающие статьи, видео и новости из мира Python. Подпишитесь на наш TELEGRAM КАНАЛ!

Недостатки 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».

Оставьте комментарий!

Используйте нормальные имена.

Имя и сайт используются только при регистрации

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

(обязательно)