Drupal
24/10/2013

Drupal 8 : Quoi de neuf ? (partie I)

image
La prochaine version de Drupal est prévue pour l'année prochaine. Pour l'instant, on ne peut pas trop s'avancer sur la date de sortie officielle, mais ce sera sans doute pour le second trimestre 2014.

La 8ème mouture sera à marquer d'une pierre blanche dans la liste des différentes mises à jour majeures de notre CMS favori et ce pour plusieurs raisons :

  • L'architecture même du CMS a été profondément revue et se basera désormais sur le framework de développement PHP Symfony.
  • Un nouveau langage pour les templates : TWIG
  • Le passage des modules Views et Entity Reference dans le noyau (Core) de Drupal (enfin!)
  • Un nouveau système de configuration, non plus stocké en base mais dans des fichiers.
  • De grosses avancées dans les domaines du Mobile, de l'édition de contenu, des webservices, du multilinguisme et de la gestion du cache.
  • et j'en oublie...

Drupal 8 intégrera des composants Symfony

C'est sans doute la plus grosse annonce du lot mais aussi la plus controversée.

Today, I want to officially announce that Drupal will adopt some of the Symfony Components for their upcoming version 8. And I'm not talking about some minor components, they are embracing our vision and they will use the major components that will allow them to build a great low-level architecture for Drupal 8: HttpFoundation, HttpKernel, Routing, EventDispatcher, DependencyInjection, and ClassLoader.

By adopting HttpKernel, Drupal and Symfony projects will become more interoperable. It means that you will be able to easily integrate your custom Symfony applications with Drupal... and vice-versa.

source : http://symfony.com/blog/symfony2-meets-drupal-8

Nous parlons ici des composants de base de Drupal qui ont été entièrement ré-écrits à l'aide des outils mis à disposition par Symfony. Le passage de la v7 à la v8 a intégré plus de code PHP externe à Drupal (Symfony et autres) que l'ensemble des mises à jour précédentes !

Devenir le CMS Open-Source de référence

Cela fait 11 ans que Drupal existe et le web a énormément changé depuis (merci Captain Obvious)... On ne demandait alors à un CMS que d'afficher une multitude de pages web dont le contenu avait été extrait d'une base de données. Mais aujourd'hui, on utilise de plus en plus de Webservices, de requêtes HTTP, de services REST, de JSON, etc. Les internautes en chair et en os ne sont plus les seuls à consulter un site, les machines parlent entre elles.

Drupal a su s'adapter, mais cette évolution s'est faite par accumulation de nouvelles fonctionnalités au détriment de la simplicité et de la clarté du code.

PHP a évolué également. Ce "petit" langage de programmation aux ambitions très modestes à ses débuts a été rapidement victime de son succès. Il a su lui aussi s'industrialiser et se structurer, notamment au moyen de frameworks comme Zend et Symfony justement. Programmation orientée objet, ré-utilisation de composants de base (pour la connexion aux BDD, le traitement des requêtes HTTP, etc.) maintenus par la communauté, tests unitaires, intégration continue, versioning, déploiement automatisé, etc. sont autant de termes avec lesquels les développeurs ont appris à travailler au quotidien.

Drupal étant presque un monde en soi, a-t-il réussi à intégrer ces changements ? C'est en partie le cas, mais il traine certains choix technologiques inhérents à sa longue histoire comme un boulet : programmation procédurale, système de hooks, stockage des configurations en base de données, etc. Drupal 8 est donc une volonté radicale de faire peau neuve sur des bases solides.

C'est un signal fort adressé au monde des grosses organisations qui demandent des standards de développement élevés. En s'associant à la racine avec un Symfony, Drupal veut gagner officiellement ses lettres de noblesse et figurer dans la cours des grands, solution libre au milieu de systèmes propriétaires (Sharepoint tu nous entends ?).

C'est aussi un appel du pied à tous les développeurs PHP qui ont maintenant une porte d'entrée dans la communauté Drupal via Symfony. Tous ces talents vont pouvoir travailler avec Drupal, interagir avec lui grâce à un socle commun (HttpKernel, la base des requêtes HTTP qui régissent les applications web, quelles qu'elles soient, tous langages de programmation confondus). Les (bons) développeurs Drupal sont encore une denrée rare et demandée. Et d'un autre côté, il peut sembler hasardeux pour certains d'entre-eux de trop se spécialiser dans l'éco-système Drupal et ses idiosyncrasies. Le passage à Drupal 8 est aussi une stratégie visant à attirer plus de développeurs dans la communauté tout en rassurant les grands groupes sur la pérennité de la solution.

Un choix douloureux pour certains ?

Mais des voix se sont très rapidement élevées contre ces choix. Drupal 8 va t-il laisser une partie de la communauté sur le bord de la route ? Pour faire simple : que vont devenir les autodidactes, les bidouilleurs du dimanche ? Ceux qui ont appris sur le tas, d'abord en tant que site-builders puis en se frottant petit à petit au développement de modules. La programmation orientée objet, l'utilisation d'un framework et de méthodes de programmation plus strictes ne va t'elle pas couper Drupal d'une grande partie de sa communauté ? Que vont devenir, les petites structures face aux grosses agences qui ont les ressources humaines et technologiques pour bien négocier ce tournant ?

Il va y avoir de la casse, c'est évident, mais la communauté en ressortira grandie et renforcée Il ne faut pas non plus trop dramatiser.

  • Pour les site builders, ceux qui construisent un site Drupal en configurant le CMS, en ajoutant des modules, le passage à D8 ne changera rien. Au contraire, il y a beaucoup d'améliorations ergonomiques qui vont leur faciliter la vie.
  • Pour les utilisateurs finaux : les clients ne verront pas non plus les énormes changements qui auront été réalisés dans les fondations.
  • Quant aux développeurs, ils continueront pour la plupart à utiliser l'API de Drupal – qui n'a jamais cessée d'évoluer – sans se soucier de ce qui se passe dans les couches basses du CMS. Il y aura de gros changements, mais uniquement sur certaines parties que l'on a pas systématiquement à toucher lorsqu'on développe un module. Pour faire simple une fois de plus, ce sont les développeurs seniors, ceux qui repoussent les limites du CMS qui verront vraiment la différence. Mais faut-il se faire du soucis pour eux ?

Quant aux nouveaux venus, comme le disait très récemment Larry de Garfieldtech, ne les prenons pas pour plus stupides qu'ils ne sont. Les débutants en programmation ont sans doute aujourd'hui plus d'affinités avec la POO, le modèle MVC et Git qu'avec la programmation par hooks de Drupal et son utilisation abusive des tableaux de paramètres pour tout et n'importe quoi.

Restons optimistes !

Drupal 8 est une grande opportunité et nous allons la saisir. Il facilitera notre vie pour les gros projets et il élargira notre horizon lorsqu'un CMS ne suffit plus (plutôt que de tout vouloir faire rentrer dans Drupal...).

Voilà, c'est tout pour aujourd'hui. La prochaine fois nous rentrerons un peu plus dans le détail de certaines nouveautés.

En attendant, n'hésitez pas à suivre ce que l'équipe d'Ebiz partage sur twitter

Ludovic Coullet, Bluedrop.fr

@lcoullet