Примерю на себя роль сварливой гадалки и явлю своё предсказание после небольшого анализа ситуации.

Я с MODX знаком с 2013 года. Выбирал CMS для сайта и остановил свой выбор на нём. Он был тогда на слуху и занимал хорошую позицию в тренде по популярности. Мне, человеку без опыта программирования, он зашёл достаточно легко. Но с тех пор я поднабрал вес в сфере разработки (не только программирования, а вообще). И сейчас я могу позволить смотреть на MODX критически. Кстати, MODX позиционирует себя как CMF. Но, если честно, я не понимаю, что под этим подразумевается. Если это возможность использовать API, то у других CMS она тоже есть. Если это просто маркетинг, то вопрос снимается. Так, отвлеклись.

Посмотрите сегодня на список популярных CMS. Ни в одном из них вы не увидите MODX. А всё потому, что с 2013 года многое изменилось. Появились новые технологии, новые подходы, новые вызовы. PHP шагнул далеко вперёд. Всё это нужно учитывать. Но тогда MODX развивался. У его создателей были большие планы. Готовилась 3 версия со всеми плюшками того времени. Ядро планировали перевести на Slim. В общем, хорошая перспектива. Но затем что-то изменилось.

Создатели MODX решили, что всё идет хорошо, бросили его продвижение и занялись коммерциализацией. Но он не набрался той популярности, когда его бы подхватило сообщество и понесло дальше. В итоге тренд стал отрицательным. В сегменте CMS его задавили WP, Joomla, Bitrix, а как фреймворк он ничего интересного предложить не смог. А мейнтейнеры вели себя крайне пассивно. Да и сейчас ведут. А это имеет большое значение в продвижении продукта. Они должны быть активными, отзывчивыми. Посмотрите как обстоят дела у Laravel или Symphony или OctoberCMS. А MODX, к сожалению, в этом плане похвалиться не чем. Он не очень дружелюбен к своим преданным последователям. Помните, даже критические проблемы безопасности необходимо было пробивать с боем. В итоге, самые ценные кадры — опытные разработчики, покидают MODX.

Кроме необходимости дать разработчикам возможность использования современных технологий, нужно ещё уделить большое внимание продвижению продукта. Это различные митапы, реклама, локализованные сайты. Хотя бы ту же реплику modx.com в странах, где есть активные последователи. Или сделать главный сайт многоязычным. Хотя он предлагает коммерческие услуги. В итоге на сегодняшний день мы видим только личные блоги. И со временем их становиться всё меньше и меньше. modx.ru сгинул. modxclub.ru вычёркиваем. Крутейший сайт с уроками modx.ws переключился на другие продукты и технологии, о MODX теперь ни слова. В качестве положительного примера могу отметить Ивана Климчука, который явняется главным представителем RU сообщества MODX. Он собрал сайт ночных сборок и сайт подкастов. Иван являлся MODX амбассадором. Был в своё время такой механизм продвижения MODX. Из тех, что на слуху — канал OpenMODX. Это все новые ресурсы, о которых я слышал. Если вы знаете ещё, пишите в комментариях.

Техническая сторона

Ладно. Давайте теперь заглянем внутрь. Покопаемся в технических деталях. Тут MODX далеко отстал по уровню разработки. Здесь вы не встретите ни PSR стандартов, ни слабой связанности, ни других нужных сегодня вещей. Например, я, начав изучать Laravel, погрузился в огромный мир современной разработки с широчайшим стеком технологий — git, gulp, webpack, паттерны, dependency injection, тестирование и много ещё разного. Кроме того, Laravel каждые полгода выпускает новую версию с новыми фичами и возможностями. А что у MODX? Вторая ветка живёт с 2010 года и развивается минорными версиями, ждать которые иногда приходится по полгода. В 2014 году выпустили версию 2.3.0, в которой сильно поработали с админкой. На этом развитие системы кончилось.

Кстати, большие споры вызывает использование фреймворка ExtJs в админке. Сам по себе фреймворк крутой. Он генерит HTML код. Но нужно потратить время на его изучение. А так как он мало где применяется, то полученные знания больше негде применить. Если ещё модалки и дерево заменить как-то можно, то хороших решений для таблиц я не видел. Тот же DataTables не дотягивает до уровня таблиц в ExtJs. Кроме того, он работает через jQuery. Вопрос субъективный, конечно.

Но не это самое плохое. В MODX применяется очень древняя версия ExtJs 3.4.0, которая сто лет как не поддерживается. На сегодня актуальна 6-я версия. Она современнее, функциональнее, более оптимизирована, дружелюбнее к мобильной разработке. Но она безумна дорогая. Поэтому приходится мириться с тем, что есть. А это засада. Попробуйте какого-нибудь разработчика заставить учить тот же Турбо Паскаль 6.0. Ну в крайнем, HTML 3.2.

Дальше обратим внимание на парсер. MODX предлагает свой парсер с необычной схемой работы. В отличие от других шаблонизаторов, он даёт возможность парсить один и тот же контент много раз. Т.е. любой распарсенный тег может вернуть ещё теги, которые будут распарсены в следующей итерации. Это даёт возможность подсовывать плейсхолдеры позже, чем их теги встретятся парсеру. Т.е. парсер их запомнит и на следующих итерациях проверит, не появились ли для них значения. Реализация собственная, не компилируемая. А это отражается на функциональности — она крайне ограниченная. Современные шаблонизаторы на голову выше.

Ну и самый важный элемент — xPDO. Это ядро системы. Всё построено на нём. Вообще он является отдельным компонентом для собственной разработки. Но как охарактеризовать его, я не знаю. Принято называть его ORM. Но по факту это не так. Ибо он содержит дополнительный функционал, не касающийся работы с БД. Но его судьба также не сильно интересует создателей. Ни новые технологии, ни новые требования, ни предложения других разработчиков не способны повлиять на развитие и совершенствование xPDO. А если сравнить его возможности и другим ORM, использующим паттерн Active Record, той же Eloquent из Laravel, то возникает гнетущее чувство разочарования. Ты понимаешь, что вытянуть xPDO может только чудо и неуёмное желание мейнтейнера.

Из остальных недостатков я бы отметил следующее

  • Хранение элементов в базе данных. Сейчас сложно представить серьёзную разработку без поддержки версионности и тестирования. Да и разработчики, как правило, работают в удобных редакторах и IDE. А данное решение всё это усложняет.
  • Старенький ExtJs. Разработчику приходится учить очень древнюю версию.
  • Несоответствие современным стандартам. Новички не растут профессионально. А опытные разработчики привыкли мыслить паттернами. В MODX они их не найдут. Придётся вникать в логику разработчиков, которые иногда идут против стандартов. В следствие чего очень много легаси кода. И это вызывает негативную реакцию.
  • Вялая обратная связь код-оунеров. Этот фактор также отворачивает от MODX профессиональных разработчиков.
  • Пассивное продвижение. Я бы даже сказал, отсутствие такового.

Но есть и преимущества

  • Быстрый запуск. Установка занимает минуты. И даже голая система позволяет создать простой сайт.
  • Более удобный и простой для верстки в сравнении с другими CMS (по словам других)
  • Удобная структура работы с элементами. Они находятся в админке и управляются в одном месте. Да, да.
  • Несколько репозиториев с дополнениями.
  • Активное сообщество. По крайней мере в RU сегменте.
  • Возможные сценарии

    Как вы знаете, сейчас активно идет работа над третьей версией MODX. Но это больше косметические правки, чем серьёзный рефакторинг. Основные изменения коснулись автозагрузки классов, лексиконов, инсталятора и перевёрсткой админки. Концептуально ничего не меняется. Переход на новую мажорную версию — отличный повод отказаться от обратной совместимости и задать сразу нормальную базу для разработки со всеми современными плюшками. Например, так было с Laravel при переходе на 5-ю версию. Можно оставить вторую версию на поддержке безопасности и все силы вложить в третью версию. чтобы наверстать упущенное отставание, нужно перепрыгнуть огромную пропасть. А главный архитектор выбрал позицию идти маленькими шажками. Это его выбор. Ему видней. Наверно, он лучше понимает, кому и для чего нужен MODX.

    Код-оунеры должны изменить свой подход. Просто сайтики делать — удел молодых. Опытные разработчики уходят в другие области, коих сейчас огромное количество. Посмотрите, сколько «старых» разработчиков осталось в сообществе. Такие разработчики стоят дорого. Им нужно особое внимание. А в MODX этим похвастаться не может. Надо понимать, что MODX уже отстал сильно. Слава Богу, это понимание есть. Но выбрать вектор развития и набрать темп обновлений. Опять приведу пример с Laravel. Там большое обновление раз в полгода. В MODX одни багфиксы и минорные версии раз в 2 года. Этого мало. Надо, чтобы MODX предлагал что-то новое, современное, желательно то, что ещё не успели конкуренты. Ведь сейчас технологии развиваются и упрощаются. Из Composer пакетов можно собрать готовую CMS. Не то что раньше. Плюс столько интересного вокруг — яваскрипт теперь стал серверным. Появилась мобильная разработка, которая будет и дальше набирать обороты. Всякие реакты, вью, goland, микросервисы и т.д. Ну кто будет сидеть с тухлым MODX, когда вокруг такое твориться.

    А чем ещё можно привлечь профессиональных разработчиков? Коммерческой разработкой дополнений. Но главный маркетплейс MODX этого не позволяет. По факту есть один единственный магазин дополнений с такой возможностью. Это modstore.pro. Но посмотрите на его статистику. Всего 77 разработчиков со всего мира!!!

    Ещё можно сделать свой форк. Это сценарий маловероятный. Тут нужно большое сообщество, активные и пассионарные разработчики с горящими глазами. И без финансирования не обойтись. В MODX с этим не очень. И с каждым годом становиться только хуже.

    Вывод

    Удел MODX — фрилансеры, клепающие простые сайты. Но в этом сегменте тяжело конкурировать с WordPress, Bitrix и др. Т.е. светит медленное затухание. Тут нет ничего необычного. Это жизнь. Тысячи стартапов закрываются. Да, идет работа над третьей версией. Очень активную позицию занял Иван Бочкарёв. Его неуёмный оптимизм и энергия не дают покоя забугорным разработчикам. Да и в нашем сообществе теребит всех без конца. Мне очень интересно, насколько хватит его энтузиазма. Искренне хотелось бы, чтобы надолго. Но...

    Вот такой мне видится текущая ситуация. Интересно ваше мнение.

0   257

Комментарии ()

  1. Николай 31 мая 2019, 09:50 # +1
    Хранение элементов в базе данных. Сейчас сложно представить серьёзную разработку без поддержки версионности и тестирования. Да и разработчики, как правило, работают в удобных редакторах и IDE. А данное решение всё это усложняет.
    Да уж, код в БД серьёзно отталкивает меня на данном этапе. Я пробовал выносить всё в файлы, но это похоже на борьбу с MODX. Всё равно в админке многое остаётся, а пытаться системные настройки, плагины и другие вещи хранить в файлах и синхронизировать с базой — это какое-то извращение. Плюнул, и отказался вообще от файлов. Работаю по-старому в админке) Ибо там все нужные галочки, опции, всё под рукой. Компоненты, которых приходится кучу ставить, тоже используют традиционный вариант и имеют свои настройки в админке. А также удобно разбивать по категориям.

    Но с другой стороны MODX может неплохо конкурировать по скорости разработки несложных сайтов с фреймворками. И скорость в данном случае в большем приоритете, чем потекционизм в плане технологий. Т.к. задача этих сайтов оцифровать небольшой бизнес по-быстрому, никто не знает сколько он вообще проживёт. Может через месяц уже загнётся, так и не выстрелив) Остаются движки типа вордпресса, битрикса, джумлы… ну такое себе. Судя по отзывам там полно легаси ещё древнее MODX, так ещё и извращаться нужно коснись дело кастомизации. Так что я думаю MODX поживёт ещё не один год точно. За это время может много чего поменяться. И стандарты, и движки, а может и вообще PHP-таки и умрёт) Лично я буду продолжать пилить сайты на MODX, пока не освою более крутую технологию, которая обойдёт по скорости MODX. Даже если буду Laravel знать, или OctoberCMS, если на них медленнее будет выходить, скорее всего MODX буду пользоваться.

    Вы должны авторизоваться, чтобы оставлять комментарии.

    Выделите опечатку и нажмите Ctrl + Enter, чтобы отправить сообщение об ошибке.