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

Moo — современный минимальный ООП-фреймворк | Содержание | Padre IDE. В шаге от релиза 1.0

Dancer2 — Революция

Ничего не предвещало беды, но 18 февраля 2013 г. Alexis Sukrieh сообщает в своём блоге и в рассылке dancer-users@ о том, что состоится выпуск Dancer2 как самостоятельного проекта и он не будет замещать существующий Dancer. 22 февраля на CPAN появляется дистрибутив Dancer2 с версией 0.01.

Dancer2 изначально создавался с нуля на основе фреймворка Moo для получения консистентной ООП-системы удобной для расширения и поддержки. Основная решаемая в новой версии проблема — избавление от глобальных переменных и изолирования приложений от любых возможных коллизий. При этом также планировалось обеспечить 100% совместимость с Dancer, чтобы была возможна прозрачная миграция старых приложений и плагинов на новую версию фреймворка.

Фактически с осени прошлого года было заморожено развитие Dancer и все силы были брошены на доработку Dancer2. Но затем стало ясно, что прозрачная миграция будет невозможна прежде всего по техническим причинам. Движки (engines) шаблонизаторов, сессий, логов существенно отличаются в Dancer и Dancer2, так как в Dancer — это обычные классы Perl 5 , которые надо расширять, а в Dancer2 — это роли (Moo::Role), которые подключаются. Эта техническая проблема была очевидна с самого начала. На примере адаптации плагина Dancer::Template::Xslate под Dancer2 мне было видно, что отличия настолько кардинальные, что удерживать систему плагинов в состоянии совместимости под разные версии Dancer будет сложнее, чем просто выпустить отдельные плагины под разные версии фреймворка. Более того, настройки движков в config.yml также имеют отличия, что полностью ломает обратную совместимость. Даже при условии, что в Dancer2 будет написана некая обёртка для поддержки обратной совместимости, многие реальные приложения Dancer разбиты по множеству пакетов и область видимости приложений может быть нарушена (нет больше глобальных переменных).

Всё это привело к осознанию того, что эволюционного перехода Dancer в Dancer2 не получится и потребуется сделать волевое решение по разделению экосистем Dancer и Dancer2:

Dancer2 выпускается в своём собственном пространстве имён на CPAN и даёт старт собственной экосистеме

  • разработка Dancer размораживается и направленна на сопровождение существующего набора возможностей;
  • пользователи Dancer счастливы;
  • пользователи Dancer2 счастливы;
  • миграция приложений теперь отдаётся под контроль разработчика, который будет решать надо ему делать переход или оставаться на старой системе;
  • будет выбран новый сопровождающий проекта Dancer (на эту должность было выбрано сразу двое разработчиков: Yanick Champoux и Alberto Simões).

Сейчас на CPAN уже появились первые выпуски плагинов для Dancer2 и можно констатировать, что революция Dancer2 свершилась. Но причин для паники нет, разработчики говорят о том, что для существующих приложений можно продолжать использовать Dancer, поскольку его сопровождение не прекращается. А вот приступая к созданию новых приложений, предпочтительно выбирать Dancer2.

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


Moo — современный минимальный ООП-фреймворк | Содержание | Padre IDE. В шаге от релиза 1.0
Нас уже 1393. Больше подписчиков — лучше выпуски!

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