Drupal 8 n'est pas parfait

une fleur en éclosion sous la rosée
Thème

Dix mois après la sortie d'une première version stable de Drupal 8, quel bilan peut-on en tirer ? Drupal 8 est-il prêt pour propulser votre projet ? Est-il temps de migrer votre site sur Drupal 8 ? Même si bien souvent une réponse, argumentée, à ces interrogations nécessitera une analyse plus approfondie de votre projet ou de votre site existant, nous vous proposons ici d'apporter quelques éclairages spécifiques à ces questions légitimes.

Des défauts de jeunesse

Drupal 8 a été le fruit d'un long processus de refonte générale de son architecture visant à adopter les pratiques modernes en matière de développement web, processus qui s'est accompagné d'un travail gigantesque pour réduire la dette technique, inhérente à tout système complexe, accumulée depuis ses versions antérieures. 

Malgré une existence depuis 2001, on pourrait presque considérer Drupal 8 comme un projet nouveau tant le travail de refonte a été gigantesque. Excepté bien sûr que ce projet est porté par une des plus importantes et actives communautés au monde, communauté qui en fait sa force et son ciment. Et si le slogan Venez pour le code, restez pour la communauté a trouvé une résonance dans le coeur de nombres d'entre nous, le slogan Venez pour la communauté, restez pour le code pourrait tout aussi bien lui faire écho maintenant.

Drupal 8 n'est pas exempt de bugs. Comme tout nouveau projet. Des petits bugs, ou des plus gros. Mais toujours, quand vous avez un bug avec Drupal, vous avez une issue pour cela, et dans une très grande majorité des cas une solution, avec un patch. La plus grande difficulté étant de savoir trouver ces solutions, une bonne connaissance de la communauté Drupal est alors un atout certain et permet de rectifier ces quelques imperfections rapidement. 

La sortie prochaine de Drupal 8.2 en octobre 2016 est considérée par la communauté comme une entrée dans une phase de maturité certaine, gommant la très grande majorité de ces défauts de jeunesse.

Une ergonomie à affiner

Le travail conduit pour mener Drupal 8 à son terme a consisté essentiellement en une refonte de son API pour se conformer aux standards et aux meilleurs pratiques, sortir de son île comme on a pu le lire. On peut avoir l'impression que la réalisation de ces travaux a forcément eu des impacts sur une prise en compte moins prioritaire des aspects ergonomiques, ceux orientés expérience utilisateur.

La première priorité a été de construire des fondations solides. Demandez à un ingénieur ! On ne s'occupe pas de la décoration, elle peut attendre. Pourtant c'est la décoration que le visiteur découvre en premier et qui lui donne cette première impression si importante. Nous ne pouvons pas nous y tromper, la conception de façades en carton pâte majestueuses n'a pas du tout été une priorité pour la première version stable. API first plutôt. Fondations solides, murs sains, second oeuvre de qualité. Si le backoffice de Drupal a reçu un léger lifting en terme de design, et notamment une interface de gestion nativement responsive, Drupal 8 reste très similaire à son prédécesseur Drupal 7. Cela peut être vécu comme un avantage, avec une prise en main facilitée et des automatismes retrouvés, mais aussi perçu comme un inconvénient, avec une interface plutôt austère qui tranche avec ce que peuvent proposer d'autres CMS aujourd'hui. 

Le temps est venu d'exploiter ces fondations, d'installer la robinetterie, de poser le marbre, de sculpter les moulures, de fixer les tableaux et choisir ses meubles. Et ce sont bien ces priorités qui ont été identifiées lors de la dernière DrupalCon de mai 2016, et qui vont être mises en oeuvre par les initiatives proposées dans les prochaines versions mineures de Drupal 8

Un écosystème moins riche ?

Drupal 8 dispose aujourd'hui environ de 1 900 modules contribués, tandis que son prédécesseur Drupal 7 en dispose d'un peu plus de 12 000. Nous pourrions nous dire ici à la lecture simple de ces chiffres que l'écosystème de Drupal 8 est moins riche que celui de son prédécesseur. 

L'important n'est pas ici la quantité (qui va installer 500 ou 1 000 modules sur un site ?) mais bien la richesse du choix qui est offert pour couvrir une fonctionnalité. Cette richesse peut aussi avoir son propre revers de la médaille avec des choix difficiles entre plusieurs modules à couverture fonctionnelle sensiblement équivalente. Quel module est le plus stable, le mieux maintenu, qui s'intégrera le mieux dans mon projet et ses autres modules sans générer d'incompatibilité ou pire de voie sans issue ?

La migration de l'écosystème des modules vers Drupal 8 est un travail colossal. Tous ne seront pas migrés. Mais devant ce travail, justement, les forces se regroupent, des synergies se créent, des modules similaires rejoignent leur forces pour migrer ensemble vers un seul module, avec une couverture plus complète.

Pour ne donner que quelques exemple illustrant ce propos, Global Redirect et Redirect sont désormais un seul et même module qui permet d'adresser toutes les problématiques de redirection. Les 30 modules nécessaires à l"internationalisation de Drupal 7 se comptent désormais au nombre de 4 et sont intégrés dans le coeur de Drupal 8. CSS injector et JS injector ne font plus qu'un : Asset injector. Panels et Display Suite s'appuient désormais sur les mêmes fondations, le module Layout Plugin, regroupant ainsi leurs forces. Exit le module Views responsive Grid, Views intègre désormais nativement les problématiques responsives.

Mais certains modules phares, utiles à l'implémentation de certaines logiques métier, tels que Rules, Search API, Organic Group, Message, Commerce (pour n'en citer que quelque uns) ne sont pas encore totalement portés, ou totalement exempts de bugs (ce qui est somme toute logique en phase alpha). Bien que certains soient très proches d'une prochaine release candidate, si votre projet Drupal est contraint par un délai de réalisation court, son périmètre devra être analysé plus finement pour déceler si oui ou non l'absence de ces modules majeurs ne vont pas empêcher la réalisation du projet dans les temps ou le budget imparti.

Et l'absence de ces modules ne signifie pas pour autant une explosion du temps nécessaire : Rules s'appuie sur le système des événements de Drupal 8 (ou Symfony2 devrais-je dire), et implémenter les quelques logiques spécifiques de votre projet sans la puissance de Rules à portée de clic ne relève pas d'un travail de Titan. De même, grâce au puissant système de droits d'accès natifs à Drupal 8, il n'est pas inimaginable de reproduire le système de groupes proposé par Organic Group sur une approche plus spécifique, moins générique, et complètement maîtrisée.

A l'inverse, des modules majeurs tels que Pathauto, Token, Metatag, modules permettant de maîtriser aisément le référencement naturel de Drupal, ont été migrés dans des temps records, quelques mois à peine après la sortie de Drupal 8. Ainsi la première version bêta de Metatag 8.x a été publié le jour de la sortie de Drupal 8.0, alors qu'il avait fallu presque deux ans pour voir une première version bêta de Metatag 7.x pour Drupal 7.

Ce que nous perdons en quantité, pour l'instant, nous le gagnons en qualité.

Une évolution fonctionnelle agile

Drupal 8 se distingue aussi par son nouveau modèle d'évolution fonctionnelle. L'ajout de fonctionnalités dans le coeur de Drupal 8 est désormais possible, et planifié, lors de chaque mise à jour mineure prévue tous les 6 mois. Ainsi nous devrions par exemple disposer prochainement d'une richesse équivalente aux noeuds pour la gestion des permissions des blocks, le module contact devrait s'enrichir pour proposer un fonctionnel couvrant 80% des cas d'utilisation des formulaires (désactivation/ activation d'un formulaire, l'envoi des mails en html, des permissions d'accès par formulaire, un nombre maximum de soumissions de formulaire par utilisateur ou globalement, cf. la feuille de route du module), tandis que Drupal 8 devrait bientôt disposer dans sa version 8.2 d'un processus de publication natif avec la Workflow Initiative, et notamment avec le module expérimental Content Moderation intégré dans le coeur, d'une gestion des blocks et des menus directement depuis le front-office, avec le module Outside-in.

Alors certes, toutes ces évolutions ne sont pas prévues pour demain. Mais ces perspectives nous incitent à privilégier dès maintenant tout nouveau projet sur Drupal 8, d'autant que les efforts de la communauté Drupal se concentrent désormais sur cette nouvelle version, promettant une évolution rapide de son écosystème contribué qui fait la force et la richesse de Drupal.

Il y a un module pour cela n'est pas encore une maxime que l'on peut appliquer à Drupal 8. Ce serait plutôt, pour l'instant, il y a une issue pour cela. Mais 10 mois après sa sortie, Drupal 8 dispose déjà d'un panel considérable de solutions prêtes à l'emploi, qui peuvent nécessiter certes quelques compétences pour être pleinement opérationnelles. Mais c'est aussi le principe de l'écosystème contribué, où chacun, par ses apports différents et ses propres besoins lors de la réalisation de projets Drupal 8, participe à son développement et à sa maturité.

Drupal 8 est juste génial

Comme le dit si bien Léon.

Non, Drupal 8 n'est pas parfait. Drupal 8 est juste génial.

S'il dispose de quelques défauts de jeunesse (mais la perfection existe-t-elle ?), d'un espace contribué moins large, Drupal 8 propose des avancées considérables en matière de performance ou de multilinguisme pour ne citer que ces deux éléments. La mise en place du multilinguisme sur un projet Drupal peut se suffire à lui-même pour guider notre choix de version, tant les avancées en cette matière sont considérables. Ces améliorations peuvent nous permettre de dégager du temps pour combler les besoins métier, qui ne seraient pas encore couverts par un module, par quelques développements spécifiques. La refonte complète du coeur de Drupal 8, qui s'est appuyée sur certains composants de Symfony2, nous permet d'interagir avec le coeur de Drupal 8 de façon beaucoup plus aisée et robuste.

Choisir Drupal 8 peut s'avérer aujourd'hui encore comme un pari sur l'avenir. Pari de moins en moins risqué, et de plus en plus gagnant. N'hésitez pas à consulter un expert Drupal 8 qui, de par sa connaissance de l'écosystème et de la communauté, pourra utilement souligner les points durs de votre projet Drupal 8 et les stratégies de contournement possibles.

 

Ajouter un commentaire