Лутц М. - Изучаем Python (1077325), страница 9
Текст из файла (страница 9)
Стандартная библиотека РуФоп обеспечивает возможность связывания в соответствии с требованиями стандартов РОЯ1Х и поддерживает все типичные инструменты операционных систем: переменные окружения, файлы, сокеты, каналы, процессы, многопоточную модель исполнения, поиск по шаблону с использованием регулярных выражений, аргументы командной строки, стандартные интерфейсы доступа к потокам данных, запуск команд оболочки, дополнение имен файлов и многое другое. Кроме того, системные интерфейсы в языке Рут)топ созданы переносимыми, например, сценарий копирования дерева каталогов не требует внесения изменений, в какой бы операционной системе он ни использовался. Графический интерфейс Простота Ру1)топ и высокая скорость разработки делают его отличным средством разработки графического интерфейса.
В состав Рус)топ входит стандартный объектно-ориентированный интерфейс к Т)с 0Ш АР1, который называется ТЬ(нтег, позволяющий программам на языке РуФ)топ реализовать переносимый графический интерфейс с внешним видом, присущим операционной системе. Графические интерфейсы на базе Ру$Ьоп/ТЫпФег без изменений могут использоваться в МЯ МЧпс(очтз, Х т(?1пс(отч (в операционных системах ПЫ1Х и апик) и Мас ОЯ (как в классической версии, так и в ОЯ Х). Свободно распространяемый пакет расширения РМУУ содержит дополнительные визуальные компоненты для набора Т)с(п$ег.
Кроме того, существует прикладной интерфейс шхРутйоп 001 АР1, основанный на библиотеке С++, который предлагает альтернативный набор инструментальных средств построения переносимых графических интерфейсов на языке Ру$)топ. Инструменты высокого уровня, такие как РутйопСагт( и РаЬо, построены на основе таких АР1, как тчхРу$(топ и Т)с(пФег. При выборе соответствующей библиотеки вы также сможете использовать другие инструменты создания графического интерфейса, такие как Яс, 0ТК, МРС и Ятт(па. Для разработки приложений с веб-интерфейсом или не предьявляющих высоких требований к интерфейсу можно использовать аут)топ (реализация Руотси на языке дача, описывается в главе 2) и С01- сценарии, которые обеспечивают дополнительные возможности по созданию пользовательского интерфейса.
44 Глава т. Рутйоп в вопросах и ответах Веб-сценарии Интерпретатор РуВЬоп поставляется вместе со стандартными интернет-модулями, которые позволяют программам выполнять разнообразные сетевые операции как в режиме клиента, так и в режиме сервера. Сценарии могут производить взаимодействия через сокеты, извлекать информацию из форм, отправленных серверным С01-сценариям; передавать файлы по протоколу РТР; обрабатывать файлы ХМ1.; передавать, принимать, создавать и производить разбор писем электронной почты; загружать веб-страницы с указанных адресов УВ1; производить разбор кода НТМВ и ХМ1 полученных веб-страниц; производить взаимодействия по протоколам ХМ1-ВРС, ВОАР и Те!пе1; и многое другое.
Библиотеки, входящие в состав РуФЬоп, делают реализацию подобных задач удивительно простым делом. Кроме того, существует огромная коллекция сторонних инструментов для создания сетевых программ на языке Ру1Ьоп, которые можно найти в Интернете. Например, система НТМ1 бел позволяет создавать НТМ1.- страницы на основе описаний классов РуФЬоп. Пакет тос1 руМоп предназначен для запуска сценариев на языке РуФЬоп под управлением вебсервера АрасЬе и поддерживает шаблоны механизма Ру1Ьоп Яегчег Радев. Система ду$Ьоп обеспечивает бесшовную интеграцию Ру$Ьоп( Ъача и поддерживает серверные апплеты, которые выполняются на стороне клиента. Помимо этого для Ру1Ьоп существуют полноценные пакеты веб-разработки, такие как Щапяо, ТигЬооеагв, Ру1опв, Еоре и тч еЬ%'аге, поддерживающие возможность быстрого создания полнофункциональных высококачественных веб-сайтов на языке РуФЬоп.
Интеграция компонентов Возможность интеграции программных компонентов в единое приложение с помощью РуФЬоп уже обсуждалась выше, когда мы говорили о РуФЬоп как о языке управления, Возможность РуФЬоп расширяться и встраиваться в системы на языке С и С++ делает его удобным и гибким языком для описания поведения других систем и компонентов. Например, интеграция с библиотекой на языке С позволяет РуФЬоп проверять наличие и запускать библиотечные компоненты, а встраивание Ру1Ьоп в программные продукты позволяет производить настройку программных продуктов без необходимости пересобирать эти продукты или поставлять их с исходными текстами. Такие инструменты, как В%'10 и 31Р, автоматически генерирующие программный код, могут автоматизировать действия по связыванию скомпилированных компонентов в РуФЬоп для последующего их использования в сценариях. А такие огромные платформы, как поддержка СОМ в МЯ 'тлГ1пс1отчв, 1уФЬоп — реализация на языке дача, 1гопРуФоп — реализация на базе .
ЫЕТ и разнообразные реализации СОВВА, предоставляют альтернативные возможности организации взаимодействий с компонентами. Например, в операционной системе %Г1пс1отчв Что можно делать с помощью Ру1Ьол? сценарии на языке Ру1Ьоп могут использовать платформы управления такими приложениями, как МЯ 1т"оге) и Ехсе1. Приложения баз данных В языке Ру1Ьоп имеются интерфейсы доступа ко всем основным реляционным базам данных — ЯуЬазе, Огас!е, 1п1огппх, ОРВС, МуЯЧЬ, РозФбгеЯЦЬ, Яь)Ь!$е и многим другим.
В мире РуФоп существует также переносимый прикладной программный интерфейс баз данных, предназначенный для доступа к базам данных ЯьеЬ из сценариев на языке Ру$Ьоп, который унифицирует доступ к различным базам данных. Например, при использовании переносимого АР1 сценарий, предназначенный для работы со свободной базой данных МувьсЬ, практически без изменений сможет работать с другими системами баз данных (такими как Огас!е). Все, что потребуется сделать для этого, — заменить используемый низкоуровневый интерфейс.
Стандартный модуль МсМ1е реализует простую систему хранения объектов, что позволяет программам сохранять и восстанавливать объекты РуФЬоп в файлах или в специализированных объектах. В Сети можно также найти систему сторонних разработчиков, которая называется 2ОВВ. Она представляет собой полностью объектно-ориентированную базу данных для использования в сценариях на языке Ру$Ьоп. Существует еще один инструмент под названием ЯЧЬОЬ)ес1, который отображает реляционные таблицы в модель классов языка Ру1Ьоп, В версии Ру1Ьоп 2.5 стандартной частью Ру1Ьоп стала база данных ЯчЬ1$е.
Быстрое создание прототипов В программах на языке РуФЬоп компоненты, написанные на РуФЬоп и на С, выглядят одинаково. Благодаря этому можно сначала создавать прототипы систем на языке РуФоп, а затем переносить выбранные компоненты на компилирующие языки, такие как С и С++.
В отличие от ряда других инструментов разработки прототипов, РуФЬоп не требует, чтобы система была полностью переписана, как только прототип будет отлажен. Части системы, которые не требуют такой эффективности выполнения, какую обеспечивает С++, можно оставить на языке Ру1',Ьоп, что существенно упростит ее сопровождение и использование. Программирование математических и научных вычислений Расширение ХшпРу для математических вычислений, упоминавшееся выше, включает такие мощные элементы, как объект-массив, интерфейсы к стандартным математическим библиотекам и многое другое. Расширение ЫпшРу — за счет интеграции с математическими библиотеками, написанными на компилирующих языках программирования,— превращает РуФЬоп в сложный, но удобный инструмент программирования математических вычислений, который зачастую может заменить Глава 1.
Рут1топ в вопросах и ответах существующий программный код, написанный на традиционных компилирующих языках, таких как РОКТКА1»1 и С++. Дополнительные инструменты математических вычислений для Район поддерживают возможность создания анимационных эффектов и трехмерных объектов, позволяют организовать параллельные вычисления и т.
д. Игры, изображения, искусственный интеллект, ХМЕ-роботы и многое другое Язык программирования РуФоп можно использовать для решения более широкого круга задач, чем может быть упомянуто здесь. Например, с помощью системы рудате можно создавать игровые программы и анимационные ролики; обрабатывать изображения с помощью пакета Р1Ь и других; управлять роботом с помощью инструмента Руйо; производить разбор ХМ1.-документов с помощью пакета библиотек хв1, модуля хв1трс1тс и расширений сторонних разработчиков; программировать искусственный интеллект с помощью эмулятора нейросетей и оболочек экспертных систем; анализировать фразы на естественном языке с помощью пакета МНТК.
Можно даже разложить пасьянс с помощью программы Рузо1. Поддержку многих других прикладных областей можно найти на веб-сайтах Чаи1$в о1 Рагпаввив и РуР1 (ищите ссылки с помощью Оооя1е или на сайте лнр://шшш.рут1топ.ога). Вообще говоря, многие из этих областей применения Ру1Ьоп — всего лишь разновидности одной и той же роли под названием»интеграция компонентов».
Использование Ру1Ьоп в качестве интерфейса к библиотекам компонентов, написанных на языке С, делает возможным создание сценариев на языке РуФЬоп для решения задач в самых разных прикладных областях. Как универсальный, многоцелевой язык программирования, поддерживающий возможность интеграции, РуФЬоп может применяться очень широко.
В чем сильные стороны РуФоп? Естественно — это вопрос разработчика. Если у вас еще нет опыта программирования, язык следующих нескольких разделов может показаться немного непонятным, но не волнуйтесь, мы будем рассматривать все эти термины позднее, в ходе изложения материала. А для разработчиков ниже приводится краткое введение в некоторые особенности языка Ру$Ьоп. Он объектно-ориентированный РуФЬоп изначально является объектно-ориентированным языком программирования.