Perl 6

Perl 6 вышел в свет

Несколько дней назад Perl 6 исполнилось 10 лет. А 29 июля вышел в свет первый релиз компилятора Perl 6 Rakudo Star.

Rakudo Star (Rakudo *) — это отдельный дистрибутив Rakudo, который помимо компилятора включает в себя еще несколько компонент, в частности, набор полезных модулей и инструментов для работы с внешними библиотеками.

Подробности о релизе опубликованы на сайте проекта: rakudo.org/announce/rakudo-star/2010.07, а скачать дистрибутив можно на гитхабе: github.com/rakudo/star/downloads.


Целевая аудитория Rakudo Star — разработчики, желающие попробовать Perl 6 в действии уже сегодня. Компилятор понимает подмножество языка, определенного спецификацией (которая сама по себе довольно обширна). Согласно философии, положенной в основу Perl 6, язык определяется спецификацией, и любой компилятор, проходящий официальный набор тестов, считается компилятором Perl 6.

Разработчики сообщают, что компилятор содержит некоторое число ошибок и не обеспечивает слишком высокую скорость. Но — здесь надо сделать смысловое ударение — назначение нынешнего релиза никак не противоречит упомянутым недостаткам. Напротив, в отличие от регулярных дистрибутивов, выходивших в прошлые месяцы, Rakudo Star — максимально самодостаточен.


В состав Rakudo Star входят

компилятор Rakudo, релиз 31;

виртуальная машина Parrot, версия 2.6.0;

набор модулей и инструментов;

документация;

черновик книги про Perl 6 (на английском языке).

Планируется ежемесячное обновление этого комплекта.

Среди включенного в релиз:

Blizkost — библиотека для использования модулей Perl 5 в программах на Perl 6;

MiniDBI — простой интерфейс к базам данных;

Zavolaj — библиотека для вызова функций из C-библиотек;

SVG and SVG::Plot — модули для создания векторной графики;

HTTP::Daemon — простой HTTP-сервер;

XML::Writer — модуль для генерации XML;

YAML — модуль для печати объектов Perl 6 в виде YAML;

Term::ANSIColor — модуль для работы с терминалом :-);

Test::Mock — модуль, облегчающий тестирование с так называемыми мок-объектами (объектами-заглушками);

Math::Model — модуль для описания и запуска математических моделей;

Config::INI — парсер конфигурационных файлов;

File::Find — модуль для поиска файлов;

LWP::Simple — модуль для загрузки документов по сети.

Важно отметить, что с приходом Perl 6 сразу же встает вопрос о том, что модули, созданные на Perl 5, без существенных изменений их кода работать не смогут. Поэтому в этом списке фигурируют модули, одноименные существующим и доступными на CPAN, но переписанными на Perl 6. Во многих случаях это способствует улучшению кода модулей. Там, где требуется воспользоваться старыми модулями, предлагается обратиться к библиотекам Blizkost и Zavolaj.


На сегодня известно более полусотни проектов — модулей и отдельных приложений, написанных на Perl 6. Их перечень и ссылки на код собраны на сайте modules.perl6.org.

Название Rakudo образовано от японского словосочетания Rakudo-do («путь верблюда»). Будучи сокращенным до Rakudo, оно случайно совпало с японским словом рай.

В разработке Rakudo в разное время принимали участие 76 человек. Отдельные фрагменты были созданы в ходе хакмита на прошедшей этим летом в Киеве совместной конференции Perl Mova + YAPC::Russia.

Через неделю, в начале августа, на конференции YAPC::Europe 2010 в Пизе ожидается несколько докладов как о самом компиляторе, так и о языке Perl 6, а помимо этого запланированы учебные курсы, посвященные освоению языка.

rakudo, release — 29 июля 2010