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

Я с 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. Не то что раньше. Плюс вокруг столько интересного. Javascript теперь стал серверным (NodeJS). Появилась мобильная разработка, которая будет и дальше набирать обороты. React, VueJS, Go, микросервисы и т.д. Ну кто будет сидеть с тухлым MODX, когда вокруг такое твориться.

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

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

    Вывод

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

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

1   4805

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

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

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

      Однако, думаю, что на MODX можно делать сайты различной сложности. Все зависит от уровня разработчика и желания.
      Если не оставаться на уровня создания чанков и сниппетов, а переходить к созданию процессоров и собственных классов и таблиц, то, думаю, возможно реализовать проект любой сложности.

      Что касается использования современных технологий, то опять же никто не мешает расширять MODX и внедрять практически, все что угодно. Тот же GIT, Сomposer, React или что там еще нужно…

      Другое дело, что, например используя React можно реализовать все то, что предлагает MODX, но гораздо проще и быстрее. Но тут вопрос тогда не к MODX, а к PHP как таковому.
      1. Сергей Шлоков 10 июля 2019 # 0
        Все зависит от уровня разработчика и желания.
        И чем ниже уровень разработчика, тем он больше уверен, что
        на MODX можно делать сайты различной сложности.
        Что касается использования современных технологий, то опять же никто не мешает расширять MODX и внедрять практически, все что угодно. Тот же GIT, Сomposer, React или что там еще нужно…
        Данное утверждение выдаёт в Вас абсолютного новичка. А если уж всё так хорошо, то зачем тогда нужен MODX3? Просто дунем-плюнем и расширим.
        1. Александр 10 июля 2019 # 0
          Что и кого во мне выдает я не стану спорить и разводить холивар.

          А вот подобные замечания на мой взгляд могут указывать лишь на то, что вы считаете лишь свое мнение единственным правильным.

          MODX3, безусловно, нужен.

          А что касается Git, Composer и React, то я в при использовании MODX прекрасно могу их применять. Другое дело, что разработчики, очевидно подобные вам (которые критикуют всех, но только не себя) и которым я показывал, как можно легко и просто подключить Git к проекту, все же не стали с ним работать. Как потом выяснилось, они вообще просто используют pdoTools и иже с ним и не особо вникают, что и как там устроено.

          Ну а для тех, кто читает этот коммент не очень понимает, чей это сайт, то советую заглянуть в раздел «Контакты», где написано следующее:

          Май нейм из Сергей Шлоков. Я не профессиональный программист и не зарабатываю программированием на жизнь. Это мое хобби. Я занимаюсь этим в свободное время.
          т.е. любитель
          1. Сергей Шлоков 10 июля 2019 # 0
            Какой холивар?
            Мы в сообществе много лет «жуём» тему возможностей и проблем. И тут приходит человек и рассказывает, что он из MODX соберёт ракету. Вывод: либо троль-холиварщик, либо новичок, недавно влившийся в сообщество. Из уважения выбрал второе. И Ваше мнение уже ничего не изменит, даже если бы я этого захотел.
            Кроме того, мне абсолютно фиолетово кто и кем меня считает. От слова совсем. Как я указал в контактах — я не профи. Но в MODX более-менее разбираюсь. Если считаете, что мои статьи не глубокие, сделайте свой блог. Народ только спасибо скажет.
            Всё, что Вы говорите, я доказывал ещё 4 года назад. И только когда поднабрался опыта, позволил себе засомневаться в этом. У Вас видимо тот же творческий путь. Как впрочем и у всех.
            А если бы Вы немного порылись в истории, то обнаружили бы, что я ещё в 2017 году писал, как подключать Composer к MODX. Файловые элементы в pdoTools, позволяющие использовать Git для элементов, протолкнул я. А React вообще не имеет смысла обсуждать, если только разговор не про админку. Но в админке его я ещё не видел.

            П.С. Вы для информации познакомьтесь с судьбой Николая Ланца и его MODX-клуба. Это тот, который из говна, палок и процессоров ваял мега сервисы и который сделав глоток новых технологий разработки выбросил MODX без сожалений и забыл о нем как о страшном сне.

            П.П.С. Как человек в возрасте абсолютно спокойно отношусь к критике в отличие от неуверенных в себе юных разработчиков. Завсегдатаи сообщества это могут подтвердить.
      2. Александр 10 июля 2019 # 0
        Флаг в руки.

        Главное, чтобы последнее слово за вами осталось. Верно?

        Что касается Николая Ланца, то я всю эту историю прекрасно знаю. Только вот забыл о MODX как о страшном сне только лишь потому, что он человек очень и очень творческий. И его путь — это путь исследователя. Исследовал MODX, стал исследовать другое. Между тем его решения работают и его методы гораздо глубже и практичнее, что ли…

        Дальше комментировать не стану. А то тема вроде о перспективах MODX, но человек хочет лишь самоутвердиться.
        1. Сергей Шлоков 10 июля 2019 # 0
          Между тем его решения работают и его методы гораздо глубже и практичнее, что ли…
          Видимо меня это должно как-то оскорбить? Есть тысячи людей умнее меня. Я должен биться в истерике? Нельзя же смотреть на мир через призму своих комплексов.

          Вы точно знаете значение слова «практичнее»? Я правильно понимаю, что когда я описываю стандартные базовые вещи MODX (последовательность событий, методы логирования ошибок, методы запросов к базе данных и т.п.) — это не практично и не интересно, а решения по обходу базового функционала (в большинстве своём костыльные) — это важная и нужная информация для начинающих разработчиков?

          Кроме того, как Вы заметили выше, я пишу статьи в основном для новичков, а Николай, как правило, результаты препарирования ядра. Как это можно сравнивать? Типа пришёл человек в школу вождения и такой — «Фу, у вас тут не рассказывают как каленвал растачивать. Это не школа, а забегаловка.»

          Оставлю все эти измышления как пример альтернативности человеческого мышления. Возможно человек поумнее меня сможет разобраться в этом потоке сознания. Какой флаг? Какие исследования? Человек деньги вроде как зарабатывает! Или он о другом Николае? Какой человек хочет самоутвердиться? Какое последнее слово в диалоге? Что за бред?

          Мда, видимо, слово «новичок» вызывает бурные эмоции не только у англичан, но и у некоторых наших соотечественников.

          Дальше комментировать не стану.
          Алилуя! Спасибо, просто спас. А то я уже выдыхаться начал:s
        2. Сергей Шлоков 10 июля 2019 # 0
          Вот, кстати, хороший пример с Николаем и его решениями. Не знаю, конечно, что хотел сказать мой визави. Не уверен, что он вообще ковырял все приёмы Николая. Но в большинстве случаев Николай придумывал костыли для решения той или иной задачи, нерешаемой с помощью стандартного функционала. Много велосипедов с xPDO и правами. Это демонстрирует ограниченность системы. И по рассказам людей, которым доставались сайты от MODX-клуба, там таких велосипедов вагон и маленькая тележка. И всё это от нехватки обычных инструментов. Ну и итог закономерен. Прощай MODX! Крутой разраб ушёл искать счастья в другую «семью». И судя по его отзывам, нашёл.
          1. Николай 11 июля 2019 # 0
            Но в большинстве случаев Николай придумывал костыли для решения той или иной задачи, нерешаемой с помощью стандартного функционала.
            А всего-то навсего не надо было использовать MODX там, где от него толку мало, и проблем никаких) Странно, что крутой разработчик Николай Ланец не знал о наличии фреймворков, или не пользовался ими сознательно, а пытался всё сделать на MODX. И вообще его часто «штормит», в данный момент имхо опять придумывает какой-то велосипед. Всё-таки Николай больше изобретатель страдающий перфекционизмом, чем бизнесмен, который считает время-деньги. Убивает кучу времени на какой-то костыль, а потом впоследствии опоминается, и кардинально что-то обрубает. Но одно точно, что вклад в MODX он внёс немалый, и времени не жалел на объяснения новичкам каких-то моментов, и за это ему большое спасибо! В любом случае это его жизнь и его выбор как поступать, к нему претензий никаких, просто мнение «аналитега»:a
            1. Сергей Шлоков 11 июля 2019 # 0
              Это вопрос личных качеств. Кто-то на одной работе сидит десятки лет. А кто-то каждый год меняет её в погоне за профитом (знания/опыт/финансы).
              Как много разработчиков используют разные инструменты для одного и того же? Единицы. Обычно изучают инструмент для нужной задачи и используют дальше именно его. Один какой-то фреймворк для бэк-энда (Laravel, MODX), другой для фронта (Vue, React) и с головой в конвейер разработки.

              А кроме этого ещё нужно следить за новыми тенденциями разработки. А если ты ещё и фулстек разраб. Где набраться времени на всё? Поэтому стать гуру во всех фрейворках физически нереально. Вот и работают на том, что хорошо знают. На изучение другого нет времени.

              Тот же Николай вообще поменял стек. Перешёл на яваскрипт. Видимо какой-то проект попался, где он его прокачал. Вкурил новые возможности и перешёл не него без потерь для себя.
              1. Николай 12 июля 2019 # 0
                Поэтому стать гуру во всех фрейворках физически нереально. Вот и работают на том, что хорошо знают. На изучение другого нет времени.
                Это верно, но каждому инструменту ведь своя область применения, и то, что Николай костылил какие-то сложные сервисы на MODX, минус всё-таки не MODX'у, а Николаю) И мне кажется так было не из-за недостатка времени или знаний, а скорее негативные последствия перфекционизма. Говорят, очень плохое качество у программистов. Мне это знакомо. Одна из граней когда делаешь не то что нужно здесь и сейчас для конкретной задачи, а то что хочется и что интересно. А нужно это или ненужно, или может вредно, эти мысли вторичны. Так и Николай, долгое время горел MODX'ом, а как пошли проекты сложные, то вместо того, чтобы оглянуться по сторонам, решил пилить всё на MODX вплоть до полного разочарования как самим движком, так и PHP в целом) В общем, как по мне, просто перегорел. Тоже самое может произойти и с JS. К примеру, довольно распространённое мнение о ноде:

                Что я думаю про Node.js?
                1. Сергей Шлоков 12 июля 2019 # 0
                  Абсолютно верно:v. Специфика хомо сапиенс.

                  и то, что Николай костылил какие-то сложные сервисы на MODX, минус всё-таки не MODX'у, а Николаю)
                  С одной стороны верно. Но с другой стороны, у Николая, как и комментатора выше, подход — «на MODX можно сделать всё». Он ковырял его около 10 лет. Знает все преимущества и недостатки. И кроме того, у них в студии в стеке другого инструмента нет. Как поддерживать сайты, сделанные на другом фреймворке? А со склонностью к перфекционизму и огромным самомнением, он должен потратить годы на препарирование другого фреймворка.

                  А минус MODX в том, что на рынке CMS он крайне пассивен. Как мы видим, тяжело человека заставить попробовать что-то новое. Нужно чем-то заинтересовать вордпрессников, друпалоидов, джумлаистов и т.п. Быть всегда на слуху. Здесь уместен пример OctoberCMS.
                  А как CMF MODX вообще пустой. Ни грамотного расширения, ни паттернов, ничего из инструментов современной разработки.

                  MODX, конечно, завтра не умрёт. Но будет скатываться в нишу забвения всё быстрее и быстрее. Никому же не хочется ездить на старых жигулях.

                  В общем, как по мне, просто перегорел. Тоже самое может произойти и с JS.
                  Так устроена психология. Нужно постоянно получать новые эмоции. Даже самым вкусным блюдом, самой красивой женщиной, хитовой песней нельзя наслаждаться вечно.:)
                  1. Николай 12 июля 2019 # 0
                    MODX, конечно, завтра не умрёт. Но будет скатываться в нишу забвения всё быстрее и быстрее. Никому же не хочется ездить на старых жигулях.
                    Вот и я уже серьёзно думаю, чтобы слезть с этого «таза») Дело времени. В развитие MODX не верю… Пока же как средство передвижения пойдёт. А так согласен со всеми аргументами

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

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