Характерные черты Perl

Perl представляет собой интерпретируемый язык, предназначенный для обработки текстовых файлов — выделения из них информации и генерирования отчетов на основе этой информации, а также просто хороший язык для выполнения многих задач системного администрирования не только в UNIX, но и в Windows (в настоящее время он уже используется для решения задач администрирования и в операционных системах этого семейства). Он обладает рядом преимуществ по сравнению с другими языками программирования, применяемыми для решения аналогичных задач.
Первым в цепочке достоинств языка Perl мы назовем его интерпретируемость. Некоторые программисты, особенно те, которые создают большие информационные системы с помощью компилируемых языков программирования (С, Delphi), скептически отнесутся к такому заявлению, резонно заметив: «Ну вот, нашли достоинство. Посмотрим, как быстро будет выполняться программа Perl длиной, скажем, в тысячу операторов»
ПРИМЕЧАНИЕ. В литературе по языку Perl принято, ссылаясь на сам язык, писать его с прописной буквы (Perl), а строчными буквами (per!) обозначать интерпретатор языка. По образному высказыванию самого Ларри Уолла: «perl — это всего лишь интерпретатор Perl и ничего более».
Что ж, замечание существенное, если рассматривать Perl как язык создания больших информационных систем. Но оно совершенно не выдерживает критики, если вспомнить, что Perl предназначен для решения задач администрирования и обработки текстовых файлов — небольших по размерам сценариев. Такие сценарии решают нетрадиционные задачи, для программирования которых могло бы потребоваться взаимодействие нескольких специализированных языков. Разработка подобных решений с помощью компилируемых языков программирования потребовала бы намного больше времени, чем использование одного интерпретируемого: ведь цикл разработки программ на таком языке короче и проще, чем на компилируемом. Мы постепенно создаем программу, добавляя необходимые операторы, и сразу же получаем результаты, когда она завершена. Интерпретатор perl постепенно компилирует все операторы во внутренний байт-код, и программа готова к выполнению, как только в ней поставлена последняя точка (точнее точка с запятой, завершающая последний оператор). Для небольших по объему программ это достаточное преимущество, так как не надо проходить цикл компиляция/сборка, который занимает значительный промежуток времени. Да, интерпретируемая программа, естественно, будет выполняться медленнее программы, представленной в формате двоичного файла и выполняющейся бел обработки интерпретатором, но если в этом возникнет необходимость, то можно решение на языке Perl использовать в качестве прототипа для компилируемого языка, например С. Суммируя все сказанное, можно заключить, что Perl позволяет легко и быстро получить требуемое решение задачи, сочетая в себе элементы компилируемых и интерпретируемых языков программирования.
ПРИМЕЧАНИЕ. Интерпретатор perl отличается от традиционных интерпретаторов тем, программа транслируется в промежуточный байт-код и только после этого выполняется. В традиционных интерпретаторах каждый вводимый оператор интерпретируется и сразу же выполняется, что может приводить к синтаксическим ошибкам во время выполнения. Perl-программа свободна от этого «недостатка», так как все синтаксические ошибки обнаруживаются во время трансляций в байт-код.
Второе преимущество использования Perl для решения определенного класса задач, собственно говоря, вытекает ил его первого достоинства. Это относительно низкая стоимость создания, тестирования и использования программы. Решение может быть разработано, закодировано, оттестировано, изменено и использовано с минимальными затратами времени и сил программиста. «И это объясняется тем, что в них [интерпретируемых языках] минимизировано общее время и объем усилий, требуемых программисту на решение на компьютере какой-либо задачи, даже если время выполнения программы может быть больше, чем для других языков».
Третьим преимуществом использования Perl для решения задач сетевого взаимодействия, учитывая возможности его набора стандартных модулей для этой области, стоит назвать доступность языка для большинства серверных платформ:
Для всех перечисленных платформ разработаны и свободно распространяются интерпретаторы perl вместе с документацией по их установке и работе, что приятно отличает его от других программных средств, так как Perl принадлежит к программным продуктам сообщества Open Source. И здесь уместно сказать несколько слов об условиях использования и распространения самого Perl и разработанных на нем программ.
Одним из способов тиражирования свободно распространяемого программного обеспечения, а именно таков интерпретатор perl, является использование «Общей открытой лицензии GNU». По условиям этой лицензии файлы исходного текста программного продукта распространяются совершенно свободно и могут быть использованы любым лицом. Однако любые версии программы, созданные путем модификации этого кода, должны реализоваться также на условиях «Общей открытой лицензии GNU», то есть следует предоставлять файлы исходных текстов нового продукта любому, кто их хочет получить. Этого зачастую вполне достаточно, чтобы защитить интересы автора первоначального программного продукта. В то же время это может привести к большому количеству производных версий исходного продукта, что оказывается причиной «отчуждения» автора исходного продукта от процесса модификации его детища. Более того, в связи с большим количеством разнообразных версий пользователям становится трудно определить, какая версия пакета является на текущий момент окончательной, будут ли написанные им сценарии, если речь идет о perl, правильно работать с имеющейся у него версией и т. п.
Из-за изложенных недостатков лицензии GNU интерпретаторы языка Perl выпускаются на условиях лицензии Artistic License, которая является вариацией лицензии GNU. Лицензия Artistic License гласит: любой, кто выпускает пакет, созданный на основе Per, должен ясно осознавать, что его пакет не является истинным пакетом Perl, Поэтому все изменения должны быть тщательно документированы и отмечены, измененные выполнимые модули должны быть переименованы, а исходные модули должны распространяться вместе с модифицированной версией. При выполнении подобных условий автор первоначального продукта всегда определяется как его владелец. При использовании Artistic License все условия «Общей открытой лицензии GNU» остаются в силе, она продолжает применяться.
Четвертым преимуществом языка Perl можно назвать его практическую направленность. Он создавался из практических соображений решения задач администрирования и разработки приложений для UNIX, а это означает, что он обладает следующими важными свойствами:
Под полнотой Perl понимается его способность решать все возникающие в системе UNIX в связи с ее администрированием задачи. И это действительно так! Ведь язык Perl, как отмечалось выше, вобрал в себя все лучшие возможности стандартных средств администрирования UNIX.
Эти средства продолжают использоваться, так как каждое из них является прекрасным инструментом выполнения тех задач, для которых оно предназначено. Однако вес то, что можно выполнить, комбинируя эти средства, можно реализовать в одной Perl-программе, изучив только один язык.
Но возможности Perl не ограничиваются только задачами администрирования. Подключаемые пакеты и модули, в добавление к стандартным, включенным в исходную поставку интерпретатора, позволяют легко и быстро решать и другие задачи, для которых, возможно, пришлось бы использовать более сложный язык программирования С. Начиная с версии 5.0 язык Perl поддерживает технологию объектно-ориентированного программирования, причем пакеты и модули можно оформить в виде объектов и использовать без знания содержащегося в них кода (хотя придется изучить большое количество объектных моделей со своими свойствами и методами).
Perl — это язык, на котором программист может делать свою работу, причем для выполнения одной и той же задачи Perl предлагает несколько средств ее реализации. Одни из них более сложны, другие — менее. Разработчик может выбрать то, которое ему более понятно и которое ему проще применить, не тратя времени на изучение более сложных возможностей. В этом заключается простота использования Perl, которая позволяет применять его как для реализации одноразовых утилит, так и для создания сложных, часто используемых приложений.
Perl является прямолинейным языком, а это означает, что простые программы не надо оформлять в виде головных процедур main, как это принято в большинстве процедурных языков программирования, или в форме класса, как принято в объектно-ориентированных языках программирования. Таким образом, не надо тратить время на дополнительное форматирование исходного текста программы, а следует просто начинать писать операторы Perl, которые будут немедленно обрабатываться интерпретатором. Именно в этом заключена эффективность языка программирования Perl.
Пятое преимущество использования Perl связано с его дополнительными возможностями, позволяющими выполнять не только традиционные задачи администрирования UNIX и обработки текстовых файлов.
В первую очередь, следует обратить внимание на простое включение в Perl-программу вызовов библиотечных процедур языка С, что позволяет использовать код, написанный на этом популярном языке программирования. В поставку Perl входят утилиты, конвертирующие заголовочные файлы библиотек С в соответствующие эквиваленты языка Perl. Конвертирование осуществляется с помощью специально разработанного XS-интерфейса, который представляет собой простой программный интерфейс, преобразующий среду вызова функций С в среду вызова подпрограмм Perl. Последующий вызов функций С ничем не отличается от вызова подпрограмм самого Perl. Более того, Perl-программы, написанные на языке версии 5.0 и выше, легко интегрируются в приложения С и C++ через интерфейс, реализованный в наборе функций perl_call_*.
Для работы с базами данных можно написать соответствующее приложение на языке С, а можно воспользоваться свободно распространяемыми модулями дополнительных расширений возможностей Perl, включающих работу с многочисленными популярными системами управления базами данных: Oracle, Ingres, Informix, InterBase, PostgreSQL, Sybase 4 и т. д.
Способность Perl работать с сокетами TCP/IP сделала его популярным при реализации информационных систем взаимодействия с сетевыми серверами любых типов, использующих сокеты в качестве механизма обмена информацией. Именно эта возможность в сочетании с использованием Perl для создания CGI-сценариев стала причиной широкого распространения языка на различных платформах.
И в завершение перечисления достоинств Perl обратим внимание читателя на шестое преимущество его использования. Изначально этот язык являлся свободно распространяемым, поэтому вся наработанная документация также доступна совершенно бесплатно, а так как Perl очень популярен как язык сценариев, то в Интернете можно найти море документации по его применению для решения разнообразных задач.

Следующая страница Содержание главы





Нет комментариев.



Оставить комментарий:
Ваше Имя:
Email:
Антибот: *  
Ваш комментарий: