Drupal vs Joomla

Drupal vs Joomla

Joomla et Drupal sont deux CMS performants, quel est le meilleur des deux? Voici quelques éléments de réponse.

Du point de vue du visiteur, y'a-t-il une différence? Du point de vue de l'administrateur et du développeur, quel est le plus confortable de ces deux logiciels?

Pour une comparaison point à point des caractéristiques, je vous redirige vers cmsmatrix.org, pour une analyse c'est par ici :

Le visiteur du site va-t-il voir la différence?

Non. On peut rendre exactement la même chose sous Joomla que sous Drupal.

Le templating, c'est une des choses où Joomla surpasse en quantité Drupal puisque des sites comme www.joomlart.com ou www.bestofjoomla.com proposent des milliers de templates prêts à être installés, là où le site de Drupal n'en propose qu'un peu plus de 200. L'avantage de Drupal toutefois réside dans la qualité et la gratuité de ses templates professionnels; en effet, sous Joomla les templates sont assez peu configurables tandis que sous Drupal sur certains vous pourrez modifier toutes les couleurs du template (via le module Colorize). Au niveau de la création des templates, c'est à peu près le même fonctionnement de base entre les deux CMS et il s'agit à partir d'un gabarit HTML+CSS d'insérer les zones utilisateurs. Pour les deux systèmes on peut gérer aussi le rendu de chaque élément (comme le contenu ou telle ou telle partie du site).
Côté fonctionnel, l'informatique étant ce qu'elle est, qu'on parte d'un point A ou d'un point B, on peut pratiquement toujours arriver en C. Donc qu'on soit sous Joomla ou sous Drupal, on pourra toujours développer ce qu'on veut et cela rendra le même service.

Bon, donc le design, c'est bon on ne verra pas la différence, les fonctionnalités, idem, on aura les mêmes. Mais alors, sont-ils équivalents?

Non car si l'utilisateur ne verra pas la différence, en revanche, d'une part il va la sentir au niveau des temps de réponse du site qu'il visite et d'autre part afin de développer le même site. Ce qui nous améne aux performances.

Drupal, taillé pour la course

Drupal est prévu non seulement pour supporter les montées en charge mais également pour utiliser massivement son cache, ce qui le rend plus rapide que Joomla même sans forte charge. Mais avant tout, ce n'est pas cela qui me fait conseiller Drupal à mes clients, avant toute autre considération, c'est le coût de développement qui prévaut. En effet, Drupal est non seulement performant, mais il est aussi très extensible et facilement adaptable aux contenus que vous voulez gérer. Pourquoi?

Avant tout parce qu'il est bien conçu. En utilisant le système des noeuds qui forment l'unité de contenu, tout est traité de la même façon et on a un niveau de fonctionnalités générales haut. De même, le système de classification des contenus, via la taxonomie et plus précisément ses "vocabulaires", on peut organiser les contenus comme on veut, et non seulement de manière hiérarchique à deux niveaux comme sous Joomla. Une fois passer l'appréhension du terme taxonomie, l'utilisation de cette classification devient vraiment puissante et efficace.
Par ailleurs, le développement de Drupal est plus professionnel que celui de Joomla au niveau de la qualité du code, des patterns utilisés et des choix stratégiques. La séparation de l'administration et de la partie publique au niveau du code est par exemple un défaut de Joomla qui introduit de la duplication de code et une étanchéïté entre les classes dont Drupal ne souffre pas; l'architecture MVC de Joomla est par ailleurs assez mal implémentée, en donnant trop de poids à la vue et pas assez au modèle qui devrait être le centre de tout développement (c'est sans doute dû à la séparation des couches administration/interface publique). On peut tout de même faire des choses bien avec Joomla de ce côté, comme l'a fait le concepteur de Joomla Estate Agency.

Joomla si le trafic est faible

A ce niveau et pour les raisons de performances, il faut d'abord savoir que Joomla ne supporte pas trop la montée en charge, aussi si vous prévoyez un site à fort trafic, il vaut mieux se diriger d'emblée vers Drupal qui est connnu pour bien absorder la charge et équipe des sites très sollicités comme ceux de la Nasa, de MTV UK ou du New York Observer... sans parler de IBM qui a choisi Drupal pour ses développements de plateformes web et explique ici pourquoi.

Adaptez-vous à Joomla...

Ensuite, quand sous Joomla vous allez trouver beaucoup d'extensions toutes prêtes servant un besoin en particulier, sous Drupal les modules sont un peu plus généraux... et donc beaucoup plus puissants. En effet, avec Drupal vous pouvez régler la façon d'utiliser les modules et vous pouvez construire votre site spécifiquement à vos besoins.
Notamment, en utilisant deux extensions majeures que sont CCK ("Content Construction Kit", c'est parlant) et Views.

... Drupal s'adaptera à vous!

Pour illustrer, prenons un exemple concret. Vous avez besoin de créer un site de recettes de cuisine, pour ce faire, vous voulez que les utilisateurs puissent entrer eux mêmes des recettes et ensuite vous voulez les afficher. Sous Joomla, comment faire? Vous pouvez utiliser une extension toute faite pour créer un formulaire, il en existe plusieurs, pas toutes évidentes à utiliser, cette partie est réglée si vous n'avez pas besoin de champs très élaborés (il ne faut pas par exemple avoir l'intention de pouvoir insérer plusieurs images illustrant votre recette). Vous avez maintenant 1000 ou 2000 recettes en base de données, il faut les afficher... Comment allez-vous vous y prendre sous Joomla? Personnellement, je n'ai pas trouvé d'autres solutions que de développer moi même le composant pour ce faire.

Donc c'est possible me direz-vous, certes, mais à quel prix? Développer un composant pour afficher et gérer des contenus, ce sont des dizaines d'heures de travail de conception, d'autres heures de tests. Et le résultat ne sera pas très évolutif.

Sous Drupal en revanche, vous n'avez qu'à utiliser CCK pour créer un type de contenu qui colle à vos recettes (par exemple, des champs pour les vignettes, des champs pour les ingrédients, un autre pour la description), à créer un vocabulaire pour classer vos recettes par ingrédients (étiquettes), un autre pour les classer par types de plat (hiérarchique) et un autre enfin pour indiquer le niveau de la recette (obligatoire). Vous appliquez cela à votre type de contenu recette et le tour est joué pour ce qui est de la saisie des recettes, saisie aussi complexe que vous le souhaitez en plus.
Ensuite, vous utilisez Views et vous allez pouvoir choisir ce que vous allez montrer. Par exemple, pour former le contenu d'une page, vous allez pouvoir dire je veux toutes les recettes dans la catégorie "Plat chaud", je veux que ce soit affiché en tableau et je veux que le résumé emméne vers la page de la recette, vous allez aussi pouvoir créer facilement un bloc en spécifiant que vous voulez les 10 dernières recette publiées dans la catégories Gâteaux et que vous n'affichez sous forme de liste que le titre de la recette qui sera liée à la recette entière. Vous pourrez aussi créer des flux, etc.

Moins de développements
=
Moins cher pour le client

Résultat : sous Joomla vous aurez besoin d'utiliser une extension pour créer un formulaire qui correspondra à peu près à ce que vous cherchez, charge à vous ensuite de créer le composant pour exploiter convenablement les données enregistrées, soit des dizaines d'heures de travail non vraiment réutilisable. Sous Drupal, vous pouvez utiliser CCK et Views pour faire le travail et adapter le contenu à votre besoin, soit une heure de travail au maximum.
Dans les deux cas il vous faudra un petit travail de templating pour rendre les résultats conformes à vos souhaits visuellement. Dans le cas de Drupal, il suffira de créer un template pour ce nouveau contenu, dans le cas de Joomla, cela sera à prévoir dans la conception du composant.

Au final si on se limite à la conception d'un site vitrine ou d'un site peu spécifique, le service rendu par Joomla est bon et vous aurez un site plus rapidement. Pour aller plus loin, sous Joomla il vous faudra faire plus de développements que sous Drupal et alors Drupal prendra la tête largement. Par ailleurs, les performances sont plus hautes sous Drupal, ce qui améliore le confort de l'internaute. Enfin, la pérennité de Drupal me parait plus certaine que sous Joomla, notamment grâce à une meilleure conception : il parait donc plus sur d'investir aujourd'hui dans Drupal.