Не видел ничего более простого и мощного как Drupal. Это - любовь с первого взгляда.
Перед знакомством с Drupal я не очень охотно использовал всякие "надстройки над апи" т.е. фреймворки и библиотеки, в частности потому что не позволяли писать меньше кода (а, следовательно, делать отладку более быстрой), а лишь структурировали его, делали его более декларативным. Да и вообще, я не хотел иметь что-то общее с PHP)))
Но то, что позволяет Drupal - невообразимо. Единственное ограничения, которое накладываться на программиста - это структура БД и это при том, что можно полностью, весьма гибко, использовать существующую структуру, так и создавать свои таблицы/вюхи, свьязивая их с уже существующими сущностями и получая тоже самое если бы свои структуры не использовались, т.е. возможность использовать скачанные модули для "совсем собственного" функционалу.
Не знаю можно ли назвать недостатком процедурный стиль. Т.е. пока я вижу преимущество простоты, которое, к тому же, не накладывает ограничений на использование ООП. Но с появлением Drupal 8 мне видеться раскол такой же, который был когда появился Python 3. Т.е. сейчас существует два независимы, хоть и совместимы языка - Python 2.* и Python 3.*
Есть и существенные недостатки - мизерное количество документации. Но вообщем то разобраться что делает функция можно и по ее исходному коду, что совсем не является проблемой, потому что он делался в лучших традициях UNIX) Есть отсюда и жесткое следствия - Drupal не для дибилов. Да и настройки администратора весьма не просты, поэтому для конечного пользователя лучше создавать "страницу со всем необходимым")