Выпуск 1. Март 2013

Что нового в Perl 5.17.9 | Содержание | Интервью с Tatsuhiko Miyagawa

Обзор CPAN за февраль 2013 г.

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

Безусловно, понятие «интересный» является очень субъективным, ведь кому-то интересно узнать сколько в этом месяце было выпусков Mojolicious и есть ли новые к нему плагины, а другому интересен только раздел Acme и он смотрит на CPAN, как на источник «лулзов».

Пытаться угодить всем не получится, но можно попытаться выставить критерии отбора и пытаться им следовать. Это может быть новизна и уникальность идеи для новых модулей. И долгожданный выпуск популярного модуля (ключевое слово «долгожданный») с заметными изменениями для обновлённых. Чтобы не перегружать раздел, постараемся отбирать не более 15–20 модулей.

Статистика

Немного статистики от MetaCPAN за февраль:

  • Новых дистрибутивов — 256
  • Новых выпусков — 1895

Новые модули

  • Dancer 2 Alexis Sukrieh внезапно решил выпустить Dancer2 в виде отдельного дистрибутива на CPAN. Таким образом, Dancer2 не станет заменой для Dancer и оба проекта будут теперь развиваться независимо.

  • Fuse-PerlSSH-FS Модуль, позволяющий монтировать файловые системы с удалённых серверов с помощью FUSE и PerlSSH. Основное отличие от, например, sshfs — поддержка расширенных атрибутов (xattr).

  • Geest Perl порт проекта Kage. Модуль реализует теневой прокси-сервер, который можно использовать для тестирования новой версии бэкенда, сверяя отклики разных серверов на запрос клиента. Модуль примечателен тем, что Kage был написан Tatsuhiko Miyagawa на Ruby. Сам Miyagawa достаточно много портировал идей из мира Python и Ruby в Perl, теперь же сам стал источником для заимствования.

  • App::rainbarf Программа позволяет рисовать графики загрузки CPU, RAM и заряда батареи в статусной строке tmux/screen.

  • JSON::Pointer Реализация спецификации JSON Pointer draft-09 для Perl. Нечто очень напоминающее XPath, только для JSON:

    JSON::Pointer->get($obj, "/bar/0/qux") экивалентно $obj->{bar}[0]{qux}
  • Path::Tiny Швейцарский нож для манипуляций с путями и файлами. David Golden собрал в один флакон практически все мыслимые функции.

  • Panda::Date Совместимый с Class::Date модуль для работы с датами и временем, реализованный на C. Утверждается, что работает в 40–70 раз быстрее Class::Date.

  • Mango Клиент MongoDB с неблокируемым I/O. В полку клиентов MongoDB пополнение от небезызвестного Sebastian Riedel. Модуль оптимизирован для использования совместно с Mojolicious.

Обновлённые модули

  • App-cpanminus 1.6001 Выпущена новая мажорная версия лучшей утилиты для установки модулей со CPAN. В новой версии появилась возможность установки определённой версии модулей, выбор версии из диапазона, установки экспериментальных версий для разработчиков. Используется API MetaCPAN для поиска версий на MetaCPAN и BackPAN. Возможность установки модуля непосредственно из git-репозитория (даже если его нет на CPAN!).

  • MCE 1.4004 Модуль предоставляет инструмент для параллельной обработки данных. MCE запускает пул из нескольких рабочих процессов, и распределяет входные данные для обработки между процессами.

  • Promises 0.03 Реализация модели обещаний в асинхронном программировании для Perl. Данная модель пришла из спецификации Promises/A, созданной сообществом Node.JS. Суть модели заключается в том, что результат запуска асинхронного действия — это обещание. Обещание может быть неисполненным, исполненным или быть неудавшимся. Обещание, как объект, имеет метод then, который выполняет соответствующие действия, как только наше обещание исполняется или происходит ошибка. Отличие от обычного подхода, когда мы пишем колбеки для каждого вызова асинхронной функции (и наш исходный код превращается в спагетти, которое уезжает в правую сторону экрана с каждым новым колбеком), в том, что мы можем группировать обещания в цепочку и выполнять действия после того как все наши обещание исполнились. При этом модуль не накладывает никаких ограничений на выбор модуля событийного программирования.

  • Sereal 0.310 Очередной модуль для сериалазации/десериализации данных. Основное достоинство — в бенчмарках он рвёт в клочья все другие модули из этого класса: JSON::XS, Data::MessagePack, Storable и т.д.

  • Perlbrew 0.59 Программа, которая позволяет вам устанавливать и управлять инсталляциями Perl внутри домашнего каталога. В новой версии незначительные исправления.

  • Cv 0.24 Perl интерфейс к библиотеке OpenCV. Всем кто интересуется проблемами компьютерного зрения и системами распознавания образов знакомство будет крайне полезным.

  • Text::Xslate 2.0000 Самый быстрый шаблонизатор для Perl Text::Xslate обновлён до новой мажорной версии 2. Основное изменение — переход с Any::Moose на Mouse, поскольку Any::Moose теперь считается устаревшим.

  • Git::Raw 0.22 Модуль является Perl обвязкой к libgit2. Основное отличие модуля от других реализующих интерфейс к git-репозиториям — он не является обёрткой вокруг команды git, а использует С-библиотеку libgit2. Модуль работает с нестабильным снапшотом библиотеки, поэтому использовать его в боевом окружении достаточно рискованно.

Владимир Леттиев


Что нового в Perl 5.17.9 | Содержание | Интервью с Tatsuhiko Miyagawa
Нас уже 1393. Больше подписчиков — лучше выпуски!

Комментарии к статье