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 :)