lundi 13 juillet 2009

Drupal or not Drupal

Comme tout blogueur amateur qui se respecte, je m'efforce à laisser plusieurs mois entre chaque post... j'ai failli atteindre 6, ce qui aurait été un record, mais je craque ;)

Plaisanterie à part, j'ai été fort occupé ces derniers temps par de multiples changements tant personnels que professionnels. Et ce sont précisément ces derniers qui m'amènent à rompre le silence...

PHP est la plateforme de prédilection pour coder des CMS depuis longtemps. C'est même probablement sa virtuosité en la matière qui est à l'origine de son succès. En n'oubliant pas naturellement sa légendaire permissivité, à la fois la cause et la solution de tous nos problèmes de développement avec ce langage.

Donc les CMS, systèmes de gestion de contenu, sont la spécialité de PHP (dans le contexte de sites internet j'entends). Une rapide recherche auprès de notre ami Google nous apprends qu'il en existe plusieurs centaines, plus ou moins aboutis, mais ayant tous en commun de se présenter comme le meilleur CMS Open Source/du marché, ça dépend des chapelles.

Je n'ai à titre personnel que peu utilisé ce genre d'outils, car d'une part j'ai beaucoup plus travaillé sur des applications que sur des sites webs, et que d'autre part, à l'époque où j'avais cette problématique, aucun ne m'avait satisfait.

Pour diverses raisons, je me suis récemment intéressé de nouveau à la question. Et là, stupéfaction : les mêmes noms reviennent encore et encore ! Les stars du domaines n'ont guère changé depuis plusieurs années. Et parmi ces stars... Drupal.

Alors certes, je pourrais me répendre en calomnies plus ou moins fondées sur les absurdités rencontrées dans les sources de ce CMS, dont je précise que j'utilise une version 5, histoire de couper court aux trolls sur Drupal c'est bien/Drupal c'est pas bien. Mais ce débat ne m'intéresse pas.

Déjà parce que la question est tranchée : du point de vue de la conception, Drupal, c'est mal. Encore une fois, je parle de la version 5, qui ne comprend pas le moindre objet, qui use et abuse des variables globales, qui prend un plaisir pervers à surcharger la base de données pour un oui pour un non, etc. Petite précision, un rapide coup d'oeil aux sources de la dernière version, 7.x, me laisse à penser qu'il n'y a toujours pas eu de refactorisation orientée objet d'opérée sur le projet.

Bref, poursuivons : la vraie question, à mon sens, n'est pas là, mais est : pourquoi n'y a-t-il pas de relève digne de ce nom ? Une partie de la réponse va me permettre d'édulcorer un peu mes propos. Drupal (comme beaucoup d'autres CMS de la même eau par ailleurs) a atteint une richesse fonctionnelle, il est vrai, remarquable. Mais ça ne fait pas tout.

De nouvelles problématiques apparaissent sans cesse, et les CMS réputés stables aujourd'hui ne proposent soit pas de solution, soit des rustines sur d'autres rustines déjà accumulées...

Si j'avais le temps de rédiger plus d'un message tous les six mois, je crois que je me mettrais immédiatement au travail pour plancher sur une alternative qui répondrait aux besoins simples qui sont les suivants : évolutivité (conception full objet), réponse à la charge, considération concernant le déploiement, la sauvegarde (découplage structure/contenus propres), et la synchronisation d'environnements multiples (dev, test, prod...).

A moins que, et c'est un peu ce que j'espère en écrivant ceci, je ne me trompe lourdement et que cette alternative existe déjà, auquel cas je compte sur vous pour m'en informer en commentaire :)

4 commentaires:

Anonyme a dit…

Connais-tu les CMS suivants ?

- SilverStripe (www.silverstripe.org)
Encore jeune mais basé sur un framework OO, j'ai failli l'utilisé à la place de Drupal.

- xoops (www.xoops.org)
Sans doute intéressant au niveau développement mais il n'est pas trés attractif pour les end-users.

Anonyme a dit…
Ce commentaire a été supprimé par un administrateur du blog.
Anonyme a dit…

Bonjour Gauthier

je suis tombé presque par hasard sur ce blog de très bonne qualité et comme toutes les meilleurs, il est rare :)
Plus sérieusement, je viens de découvrir à ma grande déconvenue que Drupal7 ne gère toujours pas correctement la distinction data/config et continue de tout fourguer en base... c'est d'une imbécilité crasse. Ah, si j'avais pu lire ce post avant. Malheureusement il est trop tard pour changer de fusil d'épaule maintenant, nous avons des sites sous Drupal terminés à livrer en prod, et nous sommes terrifiées à l'idée de galérer sur les v1.x

Des idées de meilleur CMS ? J'ai trouvé concrete5 par exemple, faut voir..

Anonyme a dit…

ya ezpublish qui a été conçu avec une bibliothèque objet un peu comme la bibliothèque pear.
perso j'ai essayé de l'installer sur mon pc il y a quelques années mais ça ramait tellement que j'ai laissé tombé mais je pense qu'au niveau code il doit être plus intéressant que drupal