Perl и его сообщество

Наибольшее достижение Perl 5 — это огромное количество повторно используемых библиотек, разработанных для него. Там, где для Perl 4 приходилось делать форки, например, для подключения к базам данных, таким как Oracle или Sybase, Perl 5 имеет настоящий механизм расширений. Ларри хотел, чтобы люди создавали и поддерживали свои собственные расширения, не разбивая Perl на тысячи несовместимых диалектов — и это сработало.

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

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

CPAN

Perl 5 — прагматичный язык сам по себе, но ещё более прагматичное Perl-сообщество расширило этот язык и сделало свою работу доступной для всего мира. Если у вас есть требующая решения задача, велики шансы, что кто-то уже написал код на Perl для её решения — и поделился им.

Программирование в Современном Perl подразумевает активное использование CPAN (http://www.cpan.org/). Comprehensive Perl Archive Network (Всеобъемлющая архивная сеть Perl) — система загрузки и зеркалирования свободно распространяемого, повторно используемого кода на Perl. Это один из самых, если не самый большой архив программных библиотек в мире. CPAN предлагает библиотеки для всего, от доступа к базам данных, инструментов профилирования и реализации протоколов для практически всех когда-либо созданных сетевых устройств до звуковых и графических библиотек и обёрток для разделяемых библиотек в вашей системе.

Современный Perl без CPAN — всего лишь очередной язык. Современный Perl с CPAN — изумителен.

CPAN хранит дистрибутивы — коллекции повторно используемого Perl-кода. Один дистрибутив может содержать один или несколько модулей, самодостаточных библиотек Perl-кода. Каждый дистрибутив занимает своё собственное пространство имён в CPAN и предоставляет уникальные метаданные.

В CPAN добавляются сотни зарегистрированных контрибуторов и тысячи индексированных модулей в сотнях дистрибутивов каждый месяц. Эти цифры не учитывают обновления. В конце ноября 2011 года search.cpan.org сообщал о 9 359 аплоадерах, 101 656 модулях и 23 808 дистрибутивах (что означает показатели роста в 11,5%, 19,4% и 14.3% со времени предыдущего издания этой книги соответственно).

Сам по себе CPAN — всего лишь зеркалирующий сервис. Авторы загружают свои дистрибутивы, и CPAN отправляет их на сайты-зеркала, с которых пользователи и CPAN-клиенты скачивают, конфигурируют, собирают, тестируют и устанавливают их. Система успешна из-за своей простоты и вклада тысяч добровольцев, строящих свою работу на этой системе распространения. В частности, развитие стандартов сообщества определило атрибуты и характеристики правильно построенного CPAN-дистрибутива. Они включают:

Дополнительные сервисы CPAN включают всестороннее автоматизированное тестирование и оповещение для улучшения качества сборок и корректности работы на разных платформах и версиях Perl. Каждый дистрибутив CPAN имеет свою собственную очередь тикетов на http://rt.cpan.org/ для сообщения о багах и работы с авторами. Кроме того, сайты CPAN ссылаются на предыдущие версии дистрибутивов, рейтинги модулей, комментарии к документации и т. д. Всё это доступно на http://search.cpan.org/.

Установки Современного Perl включают два клиента для подключения, поиска, скачивания, сборки, тестирования и установки CPAN-дистрибутивов, CPAN.pm и CPANPLUS. По большей части, оба этих клиента равнозначны для базовой установки. Эта книга рекомендует использовать только CPAN.pm ввиду его повсеместного распространения. Со свежими версиями (последний стабильный релиз на момент написания — 1.9800) установка модулей достаточно проста. Запустите клиент следующей командой:

    $ cpan

Так осуществляется установка дистрибутива из клиента:

    $ cpan
    cpan[1]> install Modern::Perl

…а так — напрямую из командной строки:

    $ cpan Modern::Perl

Руководство Эрика Вильгельма (Eric Wilhelm) по конфигурированию CPAN.pm (footnote: http://learnperl.scratchcomputing.com/tutorials/configuration/) включает отличную секцию по разрешению проблем.

Хотя CPAN-клиент — базовый модуль дистрибутивов Perl 5, вам, вероятно, нужно будет установить стандартные инструменты разработки, такие как утилита make и, возможно, компилятор C. Пользователи Windows могут использовать Strawberry Perl (http://strawberryperl.com/) и Strawberry Perl Professional. Пользователи Max OS X должны установить XCode. Для пользователей Unix и Unix-подобных систем эти инструменты зачастую уже доступны (хотя пользователям Debian и Ubuntu придётся установить build-essential).

Инструменты управления CPAN

Если ваша операционная система предоставляет собственную инсталляцию Perl 5, эта версия может быть устаревшей или может зависеть от определённых версий CPAN-дистрибутивов. Серьёзные Perl-разработчики часто возводят виртуальные стены между системным Perl и их собственными установками Perl, предназначенными для разработки. Несколько проектов помогают сделать это возможным.

App::cpanminus — относительно новый CPAN-клиенты, нацеленный на скорость, простоту и отсутствие необходимой настройки. Установите его командой cpan App::cpanminus или следующим образом:

    $ curl -LO http://xrl.us/cpanm
    $ chmod +x cpanm

App::perlbrew — система управления и переключения между вашими собственными инсталляциями нескольких версий и конфигураций Perl. Установить её очень просто:

    $ curl -LO http://xrl.us/perlbrew
    $ chmod +x perlbrew
    $ ./perlbrew install
    $ perldoc App::perlbrew

CPAN-дистрибутив local::lib позволит вам устанавливать и управлять дистрибутивами в вашей пользовательской директории, а не в системе в целом. Это эффективный способ поддерживать CPAN-дистрибутивы, не затрагивая других пользователей. Установка несколько более сложна, чем для предыдущих двух дистрибутивов, хотя App::local::lib::helper может упростить процесс. Смотрите http://search.cpan.org/perldoc?local::lib и http://search.cpan.org/perldoc?App::local::lib::helper для дальнейших подробностей.

Все три проекта имеют тенденцию подразумевать Unix-подобное окружение (такое как GNU/Linux дистрибутив или даже Mac OS X). Пользователи Windows могут воспользоваться загрузкой «всё в одном» Padre (http://padre.perlide.org/download.html).

Сайты сообщества

Домашняя страница Perl на http://www.perl.org/ содержит ссылки на документацию Perl, исходные коды, обучающие материалы, списки рассылок и некоторые важные проекты сообщества. Если вы новичок в Perl, список рассылки для начинающих — дружественное место, в котором новичок может задать вопросы и получить точные и полезные ответы. См. http://learn.perl.org/faq/beginners.html.

Дом разработки Perl — http://dev.perl.org/, содержащий ссылки на важные ресурсы по разработке ядра Perl 5 и Perl 6 (footnote: Хотя так же смотрите http://www.perl6.org/.).

На Perl.com публикуются статьи и обучающие материалы на тему Perl и его культуры. Его архивы простираются назад в 20 век. См. http://www.perl.com/.

Центральное месторасположение CPAN (CPAN) — http://www.cpan.org/, хотя опытные пользователи проводят больше времени на http://search.cpan.org/. Этот центральный хаб распространения повторно используемого, свободно распространяемого Perl-кода — важнейшая часть Perl-сообщества. MetaCPAN (https://metacpan.org/) — новый альтернативный фронтенд к CPAN.

PerlMonks, на http://perlmonks.org/, это сайт сообщества, посвящённый дискуссиям о программировании на Perl. Его одиннадцатилетняя история делает его одним из самых почтенных сайтов вопросов и ответов по языкам программирования.

Несколько сайтов сообщества предлагают новости и комментарии. http://blogs.perl.org/ — бесплатная блог-платформа, открытая для любого участника Perl-сообщества.

Другие сайты объединяют размышления Perl-хакеров, включая http://perlsphere.net/, http://planet.perl.org/, и http://ironman.enlightenedperl.org/. Последний — часть инициативы Enlightened Perl Organization (Организация Просвещённый Perl) (http://enlightenedperl.org/) по увеличению количества и качества публикаций о Perl в вебе.

Perl Buzz (http://perlbuzz.com/) на регулярной основе собирает и публикует некоторые из наиболее интересных и полезных новостей о Perl. Perl Weekly (http://perlweekly.com/) предлагает еженедельную подборку новостей из мира Perl.

Сайты разрабоки

Best Practical Solutions (http://bestpractical.com/) поддерживает инсталляцию своей популярной системы отслеживания запросов, RT, как для CPAN-авторов, так и для разработки Perl 5 и Perl 6. Каждый CPAN-дистрибутив имеет собственную очередь в RT, доступную на http://rt.cpan.org/, на которую ведёт ссылка с search.cpan.org. Perl 5 и Perl 6 имеют отдельные очереди в RT, доступные на http://rt.perl.org/.

Список рассылки «Perl 5 Porters» (или p5p) — центральная точка разработки самого Perl 5. См. http://lists.cpan.org/showlist.cgi?name=perl5-porters.

На сайте Perl Foundation (http://www.perlfoundation.org/) размещена вики на тему всего, что касается Perl 5. См. http://www.perlfoundation.org/perl5.

Многие Perl-хакеры используют Github (http://github.com/) для размещения своих проектов (footnote: …включая исходники этой книги по адресу http://github.com/chromatic/modern_perl_book/.). Обратите особенное внимание на GitPAN (http://github.com/gitpan/), где размещены репозитории, отражающие полную историю каждого дистрибутива в CPAN.

GitPAN обновляется нечасто. Как альтернативу, рассмотрите использование замечательного модуля Яника Шампу (Yanick Champoux) Git::CPAN::Patch.

События

Perl-сообщество проводит бесчисленное количество конференций, воркшопов, семинаров и встреч. В особенности, проводимые сообществом YAPC —Yet Another Perl Conference (Ещё одна Perl-конференция) — успешная локальная низкобюджетная модель конференций, проводимых на разных континентах. См. http://yapc.org/.

Вики Perl Foundation содержит список других событий по адресу http://www.perlfoundation.org/perl5/index.cgi?perl_events.

Сотни локальных групп Perl-монгеров (Perl Mongers) часто собираются вместе для бесед на технические темы и социального взаимодействия. См. http://www.pm.org/.

IRC

Когда Perl-монгеры не могут встретиться лично, многие сотрудничают и общаются онлайн с помощью текстовой чат-системы, известной как IRC. Многие из наиболее популярных и полезных Perl-проектов имеют свои собственные IRC-каналы, такие как #moose и #catalyst.

Главный сервер Perl-сообщества — irc://irc.perl.org/. Заслуживающие внимания каналы включают #perl-help, для общей помощи по Perl-программированию, и #perl-qa, посвящённый тестированию и другим темам контроля качества. Имейте ввиду, что канал #perl — канал общего назначения для обсуждения всего, что его участники захотят обсудить (footnote: …и по этой причине в основном не служба поддержки.).