Damien Tournoud est directeur technique de Commerce Guys, qui propose des solutions pour l'e-commerce basées sur Drupal. Fondateur de la communauté Drupal France et président pour la saison 2009-2010, il participera du 23 au 27 août prochains à la conférence DrupalCon de Copenhague. Cette conférence se tient deux fois par ans, alternativement en Europe et en Amérique, et réunit des membres de la communauté. Damien Tournoud revient pour nous sur les nouveautés de Drupal 7, qui sera présenté en version beta à Copenhague, et dont il a été l'un des architectes.
Bonjour Damien Tournoud. Nouvelle version de Drupal à la DrupalCon de Copenhague dans un mois... Quelles sont les principales nouveautés ?
Nous sommes encore en version alpha, donc certains grands changements peuvent encore être implémentés, et la version qui sera présentée à Copenhague sera une beta. Mais on peut déjà dire que c'est l'une des versions les plus significatives de Drupal. Elle a demandé près de trois ans de développement, sachant que celui-ci a débuté au début de l'année 2008, et que la version 1.0 est attendue pour le dernier trimestre 2010. Je pense que c'est la plus grosse release jamais faite. Il y a beaucoup de changements, dont l'un des plus gros... Ou en tous cas l'un des plus visible, qui concerne le ciblage des nouveaux utilisateurs avec une ergonomie repensée, une facilité d'administration plus grande, et une capacité de gestion assez unique, qui permet par exemple d'avoir des actions d'administration directement depuis le front-end, avec un système d'overlay qui s'ouvre au-dessus d'un module.
Drupal 7 est la première version qui ait réellement la volonté de miser sur la facilité d'administration. C'est vrai qu'il a une image parfois de CMS difficile à utiliser, et ce n'était jamais dans les objectifs d'améliorer l'ergonomie et l'architecture de navigation pour les nouveaux utilisateurs avant. Il est de notoriété publique que la courbe d'apprentissage de Drupal est plus pentue que celle des concurrents. C'est normal, et c'est celle courbe que nous voulons rendre plus facile à parcourir avec le travail sur l'ergonomie, qui a fait l'objet d'études importantes.
Il faut bien voir que ça fait partie de la communauté de Drupal, aussi : ce n'est ni un outil amateur, ni un outil pour les énormes sites professionnels. Il y a une sorte d'équilibre qui s'est établi dans la communauté, et cela se reflète dans le développement même de Drupal. Nous avons des contributions qui viennent des deux mondes, des sociétés comme nous, et des amateurs. On peut à la fois faire le site des plus gros gouvernements du monde (Drupal est utilisé par le site de la Maison Blanche, NDLR), et le blog du boulanger du coin.
Une adaptation aux nouveaux utilisateurs qui ne risque pas de faire perdre à Drupal son côté flexible, notamment grâce à ses briques constituées par les modules complémentaires ?
Non, justement parce que Drupal va continuer à conserver cet équilibre. Les développements des nouvelles versions de Drupal se font sur la base de DrupalCore, qui est à la fois un framework et un produit. Il doit à la fois se comporter comme un framework de développement, avec des APIs et des services, et comme un produit, qui offre une expérience utilisateur, une interface d'administration... Une expérience out of the box. On présente souvent Drupal comme un lego. Ce sont effectivement des briques, qui permettent une énorme flexibilité. Chez les concurrents, Joomla est un peu plus comme un Playmobil : il y a des éléments qui permettent de faire des choses, qui sont de grande qualité, mai qui n'ont pas la flexibilité du lego.
Il y a aujourd'hui plus de 1% des sites mondiaux qui utilisent Drupal. C'est un petit succès dont on est assez fier, et il faut bien se rendre compte que c'est assez unique dans ce paysage, car le projet a été créé en 2001. Drupal va bientôt fêter ses dix ans, c'est un grand-père ! Mais il a su se renouveler à chaque release, et la communauté s'adapte pour accueillir ces nouveaux membres, et conserver l'équilibre entre les nouveaux venus et les grands bien établis. C'est l'un des enjeux de l'avenir, car nous ne voulons être ni l'un ni l'autre uniquement.
D'autre part, comme à chaque version de Drupal, certains modules complémentaires ont été intégrés à DrupalCore. Ce corps conçu pour être extensible va donc être plus riche que Drupal 6. Par exemple, la principale fonctionnalité est celle qui permet de gérer les types de contenus complexes en y rattachant des champs de propriétés. C'était le module externe CCK, qui s'est généralisé, et fait désormais partie du noyau de Drupal 7. Pour qu'un module soit intégré, il faut qu'il ait atteint la maturité, qu'il soit suffisamment générique, et qu'il bénéficie à suffisamment d'utilisateurs.
Avec un risque, comme à chaque version : perdre la compatibilité des modules. Est-ce que c'est un enjeu particulier cette fois ?
Cette incompatibilité des anciens modules est le revers de la médaille. Ce qui permet à Drupal d'innover, c'est le fait qu'il ne s'interdit pas de casser la compatibilité des APIs, et oblige donc les mainteneurs de modules à les réécrire intégralement ou en partie. Dans Drupal 7, il y a eu des changements importants d'APIs pour les nouvelles fonctionnalités. Un certain nombre de modules vont devoir être réécrits, mais c'est le cas pour chaque version majeur, car il faut à la fois faire disparaître les modules qui n'ont plus d'utilité car ils sont intégrés dans le noyau de Drupal, et repenser ceux qui sont autour par rapport à leur fonctionnement avec les nouvelles fonctionnalités.
Le passage de la version 5 à Drupal 6 a été assez difficile, car c'était une release assez importante, qui a coïncidé avec la réécriture de nombreux modules de contribution clé, comme CCK ou Views. Ils ont subi une réécriture massive quand Drupal 6 est sorti, ce qui a retardé l'adoption. On considère qu'on a pris six mois de retard sur la migration des sites.
Pour Drupal 7, ça devrait mieux se passer. Il y a eu un grand mouvement dans la communauté pour anticiper la sortie et donc le portage et la conversion des modules de Drupal 6 à 7. Le projet Drupal 7 Contributed Experience (D7CX) a vu beaucoup de mainteneurs de modules s'engager à ce que leurs modules soient stables pour Drupal 7 à sa sortie, et beaucoup de modules clés fonctionnent déjà. Nous allons continuer jusqu'à la sortie pour favoriser une adoption rapide. D'ailleurs, il faut noter que certains gros sites se bases déjà sur Drupal 7 pour le développement. Mais ça nécessite d'avoir des équipes d'ingénieurs expérimentés pour prendre en compte les modifications majeures qui se font... C'est pour des besoins avancés.
Du nouveau également sur la gestion des bases de données ?
C'est une nouvelle très importante en lien avec le marché : la capacité de Drupal à utiliser un grand nombre de moteurs de bases de données à la fois open source et propriétaires. Pour Drupal 6, on avait le choix entre MySQL et PostGreSQL, alors que pour Drupal 7, on a le choix entre cinq moteurs différents : les deux déjà présents, mais aussi SQL Lite, Microsoft SQL Server, et Oracle DB. Le portage sur SQL Server s'est fait en partenariat étroit avec Microsoft, et c'est une bonne nouvelle pour Drupal, car ça nous ouvre de nouveaux marchés. Les sites de gouvernements, par exemple, ne pouvaient pour la plupart pas utiliser Drupal car ils avaient besoin de gérer SQL Server. Nous étions en relation avec Microsoft depuis longtemps, et partenaires depuis un an et demi. Ils ont su avoir une stratégie intelligente envers l'open-source et Drupal, qui fait qu'ils n'ont pas été associés un grand vilain par la communauté.
Autre nouveauté : Drupal permet d'exploiter de manière optionnelle des bases de données orientées documents de type NoSQL. MongoDB a été implémenté pour son utilisation avec Drupal, donc nous avons surtout travaillé sur celle-là, mais Drupal doit pouvoir gérer n'importe quelle base, que ce soit Cassandra, CouchDB, les bases dites XML ou les services de plateformes d'hébergement cloud comme Windows Azure, qui ont un service de stockage de documents. Nous avons donc deux interfaces abstraites : une en SQL pour ce qui nécessite des transactions, avec des grandes quantités de données, et une interface documents pour tout ce qui est stockage des documents, contenus, etc. Elle est émulée en SQL de base, mais elle peut aussi utiliser une base non-transactionnelle comme MongoDB.
Beaucoup de bonnes nouvelles... Et une mauvaise : France.fr a été développé à base de Drupal. Mauvais pour l'image ?
Oui, c'est très mauvais pour l'image, et c'est à la fois frustrant pour la communauté Drupal. On a en ce moment beaucoup de difficultés à communiquer avec le SIG. On voudrait apporter de l'aide, et on ne voit pas de raison à ce que le site reste indisponible plusieurs mois. Il y a beaucoup de personnes prêtes à aider, y compris de manière volontaire.
Le fondateur a proposé une aide bénévole qui comprend notamment un hébergement, et c'est pareil pour nous. Aujourd'hui, nous n'avons pas cette possibilité d'aider. Il n'y a pas beaucoup d'infos sur les raisons de la débâcle, ou alors elles sont très contradictoires. D'autant que le SIG a une communication de crise peu transparente. A ce que nous avons vu des chiffres et des volumes de contenu de France.fr à son lancement, il n'y a pas de raison pour qu'il ne fonctionne pas. Nous avons pu constater la volumétrie de France.fr à son lancement : quelques milliers de contenus, pour un site principalement statique, une vitrine... J'ai vu les fonctionnalités en V1, même avec beaucoup d'erreurs de développement, ça n'explique pas tout.
Et si nous voulons aider, ce n'est pas que de la communication. Quand on voit un site comme ça qui pourrait être une jolie vitrine pour Drupal, et qui est dans un tel état de débâcle, ça incite à aider. D'autant que c'est un site sur lequel il est intéressant de travailler. En plus, Drupal est vulnérable à certaines attaques un peu injustes de certains de ses concurrents, et ce n'est pas mérité.
Je vous remercie.