Лутц М. - Изучаем Python (1077325), страница 8
Текст из файла (страница 8)
Скорее он упрощает решение задач, благодаря своей простоте и гибкости. Язык Ру$Ьоп имеет небольшой набор возможностей, но он позволяет создавать программы неограниченной сложности. По этой причине РуФЬоп обычно используется как для быстрого решения тактических, так и для решения долговременных, стратегических задач. Итак, является ли Ру$Ьоп языком сценариев? Ответ зависит от того, к кому обращен вопрос. Вообще термин «создание сценариев», вероят- 40 Глава 1 РутЬоп е вопросах и ответах но, лучше использовать для описания быстрого и гибкого способа разработки, который поддерживается языком Ру1Ьоп, а не для описания прикладной области программирования.
Все хорошо, но есть ли у него недостатки? После 15 лет работы с языком РуФЬоп и 10 лет преподавания единственный недостаток, который мне удалось обнаружить, — это скорость выполнения программ, которая не всегда может быть такой же высокой, как у программ, написанных на компилирующих языках программирования, таких как С или С++. Подробнее о концепциях реализации мы поговорим ниже в этой книге. Б двух словах замечу, что в современной реализации Ру$Ьоп компилирует (то есть транслирует) инструкции исходного программного кода в промежуточное представление, известное как байт-код, и затем интерпретирует этот байт-код.
Байт-код обеспечивает переносимость программ, поскольку это платформонезависимый формат. Однако, нзза того что РуФЬоп не создает двоичный машинный код (например, машинные инструкции для микропроцессора 1п$е1), некоторые программы на языке Ру1Ьоп могут работать медленнее своих аналогов, написанных на компилирующих языках, таких как С. Будет ли вас когда-нибудь волновать разница в скорости выполнения программ, зависит от того, какого рода программы вы пишете.
Ру(Ьоп многократно подвергался оптимизации, и в отдельных прикладных областях программный код на этом языке отличается достаточно высокой скоростью выполнения. Кроме того, когда в сценарии Ру$Ьоп делается что-нибудь «значительное», например обрабатывается файл или конструируется графический интерфейс, ваша программа фактически выполняется со скоростью, которую способен дать язык С, потому что такого рода задачи решаются компилированным с языка С программным кодом, лежащим в недрах интерпретатора РуФЬоп.
Гораздо важнее, что преимущество в скорости разработки порой важнее потери скорости выполнения, особенно если учесть быстродействие современных компьютеров. Тем не менее, даже при высоком быстродействии современных процессоров остаются такие области, где требуется максимальная скорость выполнения. Реализация математических вычислений и анимационных эффектов, например, часто требуют наличия базовых вычислительных компонентов, которые решают свои задачи со скоростью языка С (или еще быстрее). Если вы работаете как раз в такой области, вы все равно сможете использовать Ру1Ьоп, достаточно лишь выделить нз приложения компоненты, требующие максимальной скорости работы, в виде компилированных расширений и связать их системой сценариев на языке РуФЬоп.
Б этой книге мы не будем обсуждать расширения слишком подробно, но это один из примеров, когда РуФЬоп может играть упоминавшуюся Кто в наше время использует РутЬоп? выше роль языка управления. Типичным примером такой двуязычной стратегии может служить расширение И и тРу, содержащее реализацию математических вычислений для РуФЬоп; благодаря комбинированию компилированных и оптимизированных библиотек расширения с языком Ру!Ьоп, ХитРу превращает Ру!Ьоп в мощный, эффективный и удобный инструмент математических вычислений. Возможно, вам никогда не придется создавать подобные расширения, но вы должны знать, что в случае необходимости они могут предоставить в ваше распоряжение мощный механизм оптимизации.
Кто в наше время использует РуФоп? К моменту, когда я пишу эти строки (2007 год), наиболее правдоподобной оценкой числа пользователей Ру$Ьоп является число, близкое к 1 миллиону человек во всем мире (с небольшой погрешностью). Эта оценка основана на различных статистических показателях, таких как количество загрузок и результаты опросов разработчиков. Дать более точную оценку достаточно сложно, потому что Ру!Ьоп является открытым программным обеспечением — для его использования не требуется проходить лицензирование. Более того, РуФЬоп по умолчанию включается в состав дистрибутивов 1 !пих, поставляется вместе с компьютерами Мас)п!овЬ и некоторыми другими программными и аппаратными продуктами, что существенно искажает оценку числа пользователей.
Вообще же количество пользователей РуФЬоп значительно больше и вокруг него сплотилось очень активное сообщество разработчиков. Благодаря тому что Ру!Ьоп появился более 15 лет тому назад и получил широкое распространение, он отличается высокой стабильностью н надежностью. РуФЬоп используется не только отдельными пользователями, он также применяется настоящими компаниями для создания продуктов, приносящих настоящую прибыль. Например: ° Компания Сооя1е широко использует Ру!Ьоп в своей поисковой системе и оплачивает труд создателя Ру!Ьоп.
° Служба коллективного использования видеоматериалов УоиТиЪе в значительной степени реализована на языке РуФЬоп. ° Популярная программа В!!Тоггеп! для обмена файлами в пиринговых сетях (реег-!о-реег) написана на языке РуФЬоп. ° Такие компании, как 1п!е1, С!всо, Нете!е!1-Рас)сагт), Яеааа!е, Яиа!- соппп и 1ВМ используют РуФЬоп для тестирования аппаратного обеспечения. ° Такие компании, как 1пдивФг!а! 1 !яЬ! ет Мая!с, Р!хаг и другие используют РуФЬоп в производстве анимационных фильмов. ° Компании ЛРМогдап СЬаве, 1)ВЗ, Се!со и С!!ас)е! применяют Ру!Ьоп для прогнозирования финансового рынка. ° ХАБА, Бов А!атпов, Регпй1аЬ, )Р).
и другие используют Ру!Ьоп для научных вычислений. 4г Глава 1. РутЬоп в вопросах и ответах ° 1ВоЬо1 использует Ру1Ьоп в разработке коммерческих роботизированных пылесосов. ° ЕЯВ1 использует Ру1Ьоп в качестве инструмента настройки своих популярных геоинформационных программных продуктов под нужды конечного пользователя. ° МЯА использует Ру1Ьоп для шифрования и анализа разведданных. ° В реализации почтового сервера1гопРго$ используется более 1 миллиона строк программного кода на языке Ру1Ьоп. ° Проект «ноутбук каждому ребенку» (Опе Еар1ор Рег СЬИд, 01РС) строит свой пользовательский интерфейс и модель функционирования на языке Ру1Ьоп. И так далее. Пожалуй, единственное, что объединяет все эти компании, — зто то, что для решения широкого спектра задач прикладного программирования используется язык программирования Ру1Ьоп.
Универсальная природа языка обеспечивает возможность его применения в самых разных областях. Фактически, с определенной долей уверенности можно утверждать, что Ру1Ьоп так или иначе используется практически каждой достаточно крупной организацией, занимающейся разработкой программного обеспечения, — как для решения краткосрочных тактических задач, так и для разработки долгосрочных стратегических проектов.
Как оказалось, Ру1Ьоп прекрасно зарекомендовал себя в обоих случаях. За дополнительными сведениями о компаниях, использующих Ру1Ьоп, обращайтесь на веб-вайт Ьттр://шшш.рутутоп.огц. Что можно делать с помощью Рутпоп? Кроме того, будучи удачно спроектированным языком программирования, Ру$Ьоп прекрасно подходит для решения реальных задач из разряда тех, которые разработчикам приходится решать ежедневно. Он используется в самом широком спектре применений — и как инструмент управления другими программными компонентами, и для реализации самостоятельных программ. Фактически, круг ролей, которые может играть Ру1Ьоп как многоцелевой язык программирования, практически не ограничен: он может использоваться для реализации всего, что угодно, — от веб-сайтов и игровых программ до управления роботами и космическими кораблями.
Однако сферу использования Ру$Ьоп в настоящее время можно разбить на несколько широких категорий. Следующие несколько разделов описывают наиболее типичные области применения Ру$Ьоп в наши дни, а также инструментальные средства, используемые в каждой из областей. У нас не будет возможности заняться исследованием инструментов, упоминаемых здесь. Если какие-то из них заинтересуют вас, обращайтесь на веб-вайт проекта Ру1Ьоп за более подробной информацией.
Что можно делать с помощью Руйоп? Системное программирование Встроенные в РуФоп интерфейсы доступа к службам операционных систем делают его идеальным инструментом для создания переносимых программ и утилит системного администрирования (иногда они называются инструментами командной оболочки). Программы на языке РуФ)топ могут отыскивать файлы и каталоги, запускать другие программы, производить параллельные вычисления с использованием нескольких процессов и потоков и делать многое другое.