Выпуск 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 →