- PVSM.RU - https://www.pvsm.ru -

В одной из предыдущих статей — «Обзор конструкторов контента (Content Construction Kit) для популярных CMS», на которую никто не обратил внимание в песочнице… я уже рассказывал, с каким количеством проблем столкнулся при разработке проекта на Drupal 7.
В попытке разобраться, что же не так я натолкнулся на статью одного из разработчиков Drupal Daniel F. Kudwien [1] "The Drupal Crisis [2]", которая пролила свет на происходящее в кузнице Drupal.
В следующей таблице представлена занимательная хронология событий, которые можно рассматривать как отправные точки начала кризиса Drupal.
| 2008 | февраль | Drupal 7 открыт для разработки. |
| октябрь | 285 неисправленых багов. | |
| 2009 | март | Acquia1 взывает [3] сообщество разработчиков о помощи. |
| июнь | 3120 неисправленных багов из 13763 | |
| сентябрь | Запланированна заморозка кода [4]. При этом 10 новых фич по-прежнему разрабатываются с нуля и их внедрение разрешено в Drupal 7 | |
| 2010 | январь | Выпущена первая альфа-версия Drupal 7 с кучей критических багов в новом API. Но еще больше багов в тех самых новых фичах. |
| июль | Поток ошибок слишком большой (как мы все знаем, один исправленный баг зачастую имеет свойство пораждать несколько новых), разработчики не справляются. Командный дух и ощущение цели утеряно. Чтобы хоть как-то разгрести всю эту «кашу» вводится новый приоритет для багов — «major» (важный). Даже не представляю, какой ад творился у них в багтрекере. |
|
| октябрь | Выпущена первая бета-версия Drupal 7 | |
| 2011 | январь | Drupal 7 выпущен с более чем 300 неисправленных major-багов и нерабочим механизмом обновления. |
| май | Чтобы хоть как то стабилизировать ситуацию нанимается еще один maintainer2 [5] для сопровождения Drupal 7 и Drupal 8, над ядром которого также идет работа. Drupal проводит политику исправления ошибок в стадии разработки Drupal 8 и затем выпуская обратные (backporting) фиксы для Durupal 7 и 6. | |
| июнь | Более 200 crytical и major-багов меняют статус на normal. | |
| июль | Новые цифры [6]: 15 критических и 200 важных ошибок в ветке Drupal 8 затрудняют backporting-политику. | |
| август | 4153 неисправленных бага из общего количества в 22181, которое за два года возросло почти в два раза практически останавливает развитие ветки Drupal 8. Порядок обновления Drupal 6 и Derupal 7 все еще неясен многим пользователям. |
* на 2012 год ситуация с 7кой пока что мало улучшилась. В намеченном релизе 8-ки все относящееся к ядру теперь будет вынесено в папку core.
Как видите события развиваются плачевно. Только в новых проектах: Dashboard, Shortcut, Toolbar и Overlay более 150 неисправленных багов и задач. Именно эти модули разрабатывали с нуля после заморозки кода, затем их переписывали как минимум один раз после внедрения, что очень сильно повлияло на отложенный релиз Drupal 7.
«Считаю, что изначальный призыв сообщества Drupal к помощи демотивировал ключевую группу: разработчиков ядра, способных справиться с самыми тяжелыми задачами…
У нас сейчас примерно 450+ разработчиков ядра, из которых где-то 10 работают над интерфейсом»
© с этим замечанием когда-то выступил один из лидеров команды, ответственной за юзабилити. Иными словами: «разработчики ядра не особо хотели взваливать на себя груз, но взвалить пришлось все равно».
Эти новые фичи не только задерживали релиз Drupal 7, но и отвлекали разработчиков ядра от работы над более важными проблемами API и подсистем ядра Drupal. Многие из этих проблем до сих пор не решены.
Сверху же посчитали, что неплохо было бы реализовать этот функционал. Ну и что, что сырой?! Суйте его в ядро — пусть сообщество поддерживает.
Новые подсистемы Drupal 7 очень сложны и сильно взаимосвязаны с другими не менее сложными подсистемами.
Из-за этого (высокий порог вхождения) новички не могут быть включены в процесс исправления багов.
Это прерогатива прожженных разработчики ядра и модулей, глубоко понимающих последствия изменения этих подсистем.
Не совсем понятно, что думало руководство Acquia [7], взывая о помощи сообщества. Крик души?
В то же время, некоторые из самых активных и опытных разработчиков ядра в последние три года устроились на работу в уже упомянутую коммерческую компанию. И в некоторых случаях их вклад в код ядра внезапно (и к сожалению) снизился практически до нуля. Без всяких сомнений, это есть экономическая истина: бесплатный вклад в разработку и интересы коммерческих предприятий — в целом, несовместимы. И, конечно, каждый должен самостоятельно решать, как использовать свои ресурсы и во что их вкладывать. Тем не менее, 19% всех разработчиков ядра (а также два человека с правами сохранять изменения) — получают деньги и подвержены влиянию одного главного «третьего» лица, в чем, очевидно, заключается конфликт интересов как сегодня, так и в долговременной перспективе.
Без всяких сомнений: бесплатный вклад в разработку и интересы коммерческих предприятий — в целом, несовместимы, что во многих случая сильно тормозит развитие и даже губительно. Drupal тому пример.
К сожалению, вклад в код ядра некоторых из самых активных и опытных разработчиков,
устроившихся за последние 3 года в Acquia [7], внезапно снизился практически до нуля.
Конфликт интересов на лицо. Видимо, не судьба Acquia [7] стать для Drupal тем, чем был Red Hat для Linux.
В дополнение к вышеупомянутым «недоделкам» и новым фичам, ядро Drupal до сих пор тащит за собой кучу очень старого и никому не нужного хлама (сарказм-field: даешь MVC?!), основанного на API и концепциях, допущенных в Drupal 5 лет назад и раньше.
Ядро Друпала блокирует собственную модернизацию и нововведения и в последние годы уже начал сильно отставать от конкурентов и индустрии в целом. Это до монолитный, до дурости старый и больной зверь.
Программного хлама слишком много. И недоделанных, никем в общем-то не поддерживаемых фич — тоже слишком много.
Ядро Drupal больше не поддается поддержке. Вы все еще верите в красивые сказки Acquia [7] о LTS редакциях для нежелающих гнаться за номерами версий?!
Drupal 8 намертво увязнет в своих проблемах, и чтобы вытащить его, Acquia [7] придется еще больше рассчитывать на свои силы, и еще меньше — на сообщество. Многие переосмыслят использование Drupal в своем бизнесе.
Drupal 6 — это пик разввития Drupal. Cтабильный и устоявшийся продукт, одниy из лучших в своем роде. Далее, развитие этой прекрасной CMS переходит в другое русло. Drupal перестает быть продуктом сообщества, и все больше становится продуктом корпорации (в некотором смысле повторяя судьбу Linux).
Возможно даже, что с выходом новых версий Drupal 7 и ветки Drupal 8 продукт придет к своему нелогическому завершению. Почему нелогическому? Многие продукты остаются лучшими на протяжении нескольких лет, отлично работают и радуют тех кто ими пользуется. Но не самих разработчиков, которые достигли предела совершенства, «высосали» все из проекта и бояться его испортить. А топтаться на одном месте — не выход, потому что в этом нет развития, логики, прогресса… как хотите. Иногда такие проекты замораживают, для того чтобы начать работу над чем то новым, более революционным. При этом конечно могут образовываться форки и продукт долгое время еще не потеряет своей актуальности. За примерами далеко ходить не нужно: замечательный CMF CodeIgniter из которого образовалась Kohana.
Что насчет Drupal и будет ли подобного рода хэппиэнд? Посмотрим!
Тем временем Rockettheme3 прощается с Drupal [8] (оригинал [9]).
И напоследок скажу, что автор, ожидавший массу негативных эмоций, несогласий и ругани из-за поста «The Drupal Crisis», к своему удивлению обнаружил, что практически все, кто ответил на пост, в целом согласились с озвученными проблемами.
Daniel F. Kudwien [1] в своей следующей статье "Drupal Crisis Conclusion [2]" предлагает несколько способов взять разработку Drupal под контроль.
Но динамика такова, что за последние 2 года появилось 8000+ новых сообщений о багах.
Каждое из них должно быть:
В среднем это означает, что через данный процесс должны проходить 320 багов в месяц или 10 багов в день. Не трудно подсчитать, что для того чтобы разгрести все это потребуется более 2 лет.
Причем, дальше эти числа будут только расти, т.к. как части ядра изменяются и всплывают различного рода несостыковки подсистем. Стремительные темпы наблюдаются уже сегодня.
Как признаются сами разработчики, мы уже сами не знаем, какие части Drupal на самом деле считается ядром, а Acquia [7] уже тольком не знает что в ядре активно поддерживать.
У разработчиков уже практически нет желания помогать в поддержке этого бедствия из недоделанных модулей. Сейчас куча неважных вещей отвлекает разработчиков от категорически необходимого рефакторинга, направленного на борьбу с настоящими, ужасными проколами в дизайне ядра.
После этих двух статей вывод только один: в Acquia [7] творится полный бардак!
И не понятно, как Drupal еще держится?
В России сформировалось огромное сообщество Drupal-разработчиков, ежегодно собирающихся на таких конференциях, как: DrupalConf, DrupalForum, DrupalCamp и др.
Они будут защищать Drupal и это верно, т.к. лучший инструмент — тот, которым ты лучше всего владеешь. Но и они уже недовольны. Полистайте комментарии например, здесь [10].

Данной статьей, я хотел предостеречь новчиков, которые стоят перед выбором: какую CMS/CMF использовать в качестве основного интрумента и посмотреть в сторону других решений (об этом в следующей статье). Для себя лично я уже сделал выводы… главное во время отказаться от того, что тянет тебя вниз.
Перевод Романа Грачева (http://graker.ru):
http://graker.ru/news/2011/08/25/khvatit_krasit_guby_ogromnoi_svine [12]
Перевод Романа Грачева (http://graker.ru):
http://graker.ru/news/2011/08/26/kak_smyt_makiyazh_so_svini_ili_vykhod_iz_krizisa [13]
Автор: vitalyswipe
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/cms/13151
Ссылки в тексте:
[1] Daniel F. Kudwien: http://www.unleashedmind.com/en/user/sun
[2] The Drupal Crisis: http://www.unleashedmind.com/en/blog/sun/crisis-conclusions
[3] Acquia1 взывает: http://buytaert.net/mark-boulton-to-help-with-drupal-7
[4] заморозка кода: http://buytaert.net/drupal-7-code-freeze-almost-upon-us
[5] нанимается еще один maintainer2: http://buytaert.net/fast-tracking-drupal-7-bug-fixes
[6] Новые цифры: http://buytaert.net/issue-queue-thresholds-for-drupal-core
[7] Acquia: http://www.acquia.com
[8] Rockettheme3 прощается с Drupal: http://www.drupal.ru/node/74942
[9] оригинал: http://www.rockettheme.com/drupal-club-details
[10] здесь: http://www.drupal.ru/node/65464?page=1
[11] http://www.unleashedmind.com/en/blog/sun/the-drupal-crisis: http://www.unleashedmind.com/en/blog/sun/the-drupal-crisis
[12] http://graker.ru/news/2011/08/25/khvatit_krasit_guby_ogromnoi_svine: http://graker.ru/news/2011/08/25/khvatit_krasit_guby_ogromnoi_svine
[13] http://graker.ru/news/2011/08/26/kak_smyt_makiyazh_so_svini_ili_vykhod_iz_krizisa: http://graker.ru/news/2011/08/26/kak_smyt_makiyazh_so_svini_ili_vykhod_iz_krizisa
[14] http://habrahabr.ru/post/44980/: http://habrahabr.ru/post/44980/
[15] RocketTheme: http://www.rockettheme.com/
[16] Gantry Framework: http://www.gantry-framework.org/
Нажмите здесь для печати.