Поиск

Так что же такое это сообщество Perl?

Чтобы получить представление о культуре Perl, о том, как функционирует сообщество Perl и какие ресурсы имеются в наличии, необходимо понять, чем живет сообщество Perl.

Краткая история Perl

В 1988 году Internet была совершенно другой. Во-первых, она была намного меньше, а во-вторых, "выглядела" совсем не так, как сегодня. В то время к Internet было подключено приблизительно 60 000 компьютеров. Сегодня это число превышает 10 миллионов и растет с каждым днем.

В то время Всемирная информационная сеть (WWW) не существовала. Мысль о ней зародилась только в 1991 году в Европейской лаборатории физики заряженных частиц (CERN), а первый графический броузер, Mosaic, был создан лишь в 1993 году.

Большая часть передаваемой по Internet информации была текстовой. Сеть новостей Usenet обеспечивала такую систему передачи сообщений, при которой члены групп по интересам могли связываться между собой и быть в курсе последних новостей в той или иной области. Электронная почта существовала практически в том же виде, в каком она есть сегодня, т.е. главным образом — в текстовом. Передача информации в Internet ограничивалась пересылкой файлов и подключением к удаленным компьютерам с помощью telnet.

В январе 1988 года Лэрри Уолл объявил, что он только что написал программу, заменяющую утилиты awk и sed системы UNIX и назвал ее "Perl". В первом руководстве ПО Perl дается его описание.

Perlэто интерпретируемый язык, оптимизированный для обработки произвольных текстовых файлов, извлечения информации из этих текстовых файлов и печати отчетов на основе этой информации. Это также хороший язык для выполнения многих системных задач. Perl написан не для красоты, а для дела. Это означает, что во главу угла ставились такие качества, как простота в использовании, эффективность, полнота, а не изящность и требования компактности кода. Perl объединяет в себе (во всяком случае, по мнению автора) некоторые из лучших черт языков С, sed, awk и sh, поэтому у людей, знакомых с этими языками, не должно быть с ним особых трудностей. (Историки языков программирования найдут также некоторые черты csh, Pascal и даже BASIC-PL US.) Синтаксис выражений Perl очень близок синтаксису выражений языка С. Если у вас есть задача, для решения которой обычно используются средства sed, awk или sh, но их возможностей в данном случае оказывается недостаточно, или выполнение должно идти намного быстрее, и вам кажется, что глупо писать эту программу на С, то, возможно, вам нужен именно Perl. Кроме того, существуют трансляторы, позволяющие преобразовать sed- и awk-сценарии в Perl-сценарии.

Вторая версия Perl была выпущена в июне 1988 года. Она уже была очень похожа на современный Perl: большинство функций Perl 2 можно найти в сегодняшней версии. Это был и есть полностью функциональный язык программирования, обладающий богатыми возможностями. Как сказано в описании, разработка функций Perl в то время была направлена на решение задач обработки текста и системного программирования.

Для Perl 1991 год стал рекордным. В январе было опубликовано первое издание книги Programming Perl, авторы Лэрри Уолл и Рендал Шварц (Randal Schwartz). Эта книга была (и остается, судя по последним изданиям) полным справочником по языку Perl. На розовой обложке был изображен верблюд — официальный талисман языка Perl. (Это животное не слишком красивое, но верное, надежное и очень полезное.)

Данная публикация совпала по времени с выходом Perl 4. Эта версия была первой широко распространяемой версией Perl, и ее следы еще можно найти сегодня в разных уголках необъятной Сети, несмотря на то что последние исправления вносились в нее в 1992 году. Если она вам случайно попадется, не стоит ею пользоваться.

В октябре 1994 года была выпущена пятая версия Perl. В нее были включены такие возможности, как приватные переменные, ссылки, модули и объекты (с которыми вы еще не знакомы). В октябре 1996 года вышло второе издание книги Programming Perl ("The Blue Camel" — "Голубой верблюд". — Прим. перев.) с описанием этих новых возможностей.

Открытый код

Одна из причин успеха Perl кроется в принципах его разработки и распространения. Интерпретатор Perl — это часть программного обеспечения, построенного по принципу открытого кода (open source). Открытый код — это новый термин, присвоенный программистами старому понятию, а именно бесплатно распространяемому программному обеспечению. Такую программу можно получить бесплатно, причем любой, кто хочет внести в нее какие-то изменения, может просмотреть, исправить и переделать ее исходный текст. Другими примерами пакетов программного обеспечения, следующих данной модели, являются операционные системы Linux и FreeBSD, Web-сервер Apache и броузер Mozilla.

Использование модели открытого кода — на самом деле очень эффективный способ разработки программного обеспечения. Поскольку код пишется добровольцами, ненужные программы обычно в пакет не включаются, а функции, которые кажутся полезными, предлагаются для включения и включаются в пакет (если они действительно нужны). Качество такого профаммного обеспечения получается довольно высоким, так как каждый, кто интересуется пакетом, имеет право и обязанность внимательно следить за его разработкой и участвовать в поиске ошибок. Чем больше людей будут просматривать исходный код, тем меньше у ошибок шансов выжить.

Эрик С. Реймонд (Eric S. Raymond) написал ряд великолепных очерков о модели разработки программного обеспечения с открытым кодом. Он объяснил, как пришли к этой модели и почему она столь эффективна и экономически выгодна. В первом очерке, "The Cathedral and the Bazaar" ("Храм и Торговля" Прим. перев.), предоставлена хорошая вводная информация о том, как работает модель разработки программ с открытым кодом. URL этих статей вы найдете в разделе "Резюме" в конце данной главы.

Авторское право на интерпретатор Perl принадлежит Лэрри Уоллу; он его владелец и может делать с ним все, что захочет. Но, как и для большинства профамм, для Perl может быть выдано разрешение (лицензия) на его использование. В лицензии на профаммное обеспечение описывается, как его можно использовать и распространять; это та самая информация, набранная мелким шрифтом, которая появляется первой, когда вы начинаете устанавливать купленный в магазине профаммный продукт. Лэрри Уолл предлагает вам на выбор два различных варианта лицензии: GNU General Public License и Perl Artistic License. Прочитав оба варианта, вы можете выбрать один из них и следовать этим условиям соглашения при последующем распространении Perl.

Тексты обеих лицензий довольно объемны, поэтому я вкратце приведу их основные положения.

  • Вы можете распространять исходный текст интерпретатора Perl, но должны продублировать соглашение об авторском праве.
  • Вы можете модифицировать оригинал исходного кода, но должны четко пометить внесенные изменения как свои собственные и либо отказаться от изменений, либо ясно указать, что это не стандартная версия Perl. Вы обязаны также предоставить стандартную версию Perl.
  • Вы можете брать разумную плату за распространение Perl. Вы можете также брать плату за осуществление технической поддержки, но сам Perl продавать нельзя. Можно включать Perl в другие продукты, которые вы продаете.
  • Профаммы, написанные на Perl, не подпадают под действие этой лицензии.
  • Гарантийных обязательств для Perl нет.

При решении юридических вопросов не следует полагаться только на это резюме; я привел его здесь только с целью дать вам почувствовать, что представляют собой сами лицензии.

Прежде чем пытаться включить Perl в другой программный пакет, очень важно самостоятельно прочитать тексты лицензий и определить, соответствуют ли ваши действия условиям, изложенным в них. Лицензия Perl Artistic License включается в каждую поставку Perl в виде файла с именем Artistic. А лицензию GNU General Public License можно просмотреть на Web-сервере по адресу http://www.gnu.org.

Данные лицензии позволяют разрабатывать и совершенствовать Perl при открытом обсуждении. Таким образом, весь исходный текст Perl доступен для каждого, кто хочет ознакомиться с ним и предложить внести какие-либо изменения. Подобный подход поощряет качественное программирование и не дает увязнуть в трясине собственнических настроений, скрытно разрабатывая код так, чтобы это было непонятно всем остальным.

Разработка Perl

Разработка интерпретатора, языка и модулей, входящих в стандартную поставку Perl, проходит через список рассылки, где разработчики Perl предлагают изменения, изучают сообщения об ошибках и обсуждают, какие изменения следует внести в исходный текст Perl.

Каждый может участвовать в этом процессе — именно в этом и состоит принцип модели открытого кода. Но, чтобы не допустить хаоса, предлагаемые изменения тщательно изучаются и "фильтруются" группой ведущих разработчиков, которые одобряют или отвергают эти изменения и поддерживают основную линию разработки Perl. Изменения оцениваются исходя из того, что хорошо для Perl, а что — нет, насколько полезны эти изменения, и может ли любой человек нормально их воспринять. Лэрри Уолл, осуществляющий надзор над этим процессом, играет роль доброжелательного диктатора, разрешая вносить полезные изменения и налагая запрет на изменения, которые он считает пагубными.

Выпускаемые версии Perl нумеруются двумя различными способами. До августа 1999 года они нумеровались в формате major.minor_patchlevel. Так, 4.036_18 — это четвертая версия Perl, выпуск 36 с "заплатами" уровня 18. Иногда в номерах версий уровень "заплат" не указывается. Текущей версией Perl на момент подготовки к изданию данной книги летом 2000 года была 5.6.

Схема нумерации новых версий более традиционна и имеет формат major.minor. Предположительно, следующая за этой версия Perl будет называться 5.7 и т.д.