Depuis quelques années déjà, l'armée des webmasters non codeurs font croire que Drupal serait plus performant que Joomla. Sur l'internet français en particulier, la situation est alarmante, et de très nombreuse personnes sont persuadées que Drupal est plus évolué que Joomla, ce qui est totalement faux.
Face à cette situation, les développeurs de la société butterfly viennent de publier un article comparant Joomla et Drupal du point de vue du code. L'analyse est sans appel : Drupal est une usine à gaz, codée avec les pieds, utilisant de vieux patterns, avec des performances très faibles. Drupal ne présente un avantage que pour les WebMasters incapables de coder, et qui ont besoin d'un clicodrome pour développer des plugins/modules/composant.
Je vous propose ici une traduction rapide de cette analyse :
Joomla VS Drupal: une comparaison technique des meilleurs CMS
Il y a quelques semaines, j'ai du écrire une comparaison technique entre Joomla et Drupal. Naturellement, j'ai commencé par faire des recherches en ligne. Étonnamment, je n'ai pu trouver aucune évaluation technique décente de ces deux CMS open source en vogue. La plupart des articles étaient des comparaisons superficielles écrites par des webmasters et non pas par des développeurs. La plupart des articles comparait les performances, mais il n'y avait aucune comparaison assez profonde, assez détaillée, basée sur une évaluation technique du fonctionnement interne du framwork PHP faisant tourner ces CMS. Comme développeur ayant travaillé à la fois sur Joomla et Drupal, j'ai décidé qu'il était temps d'écrire une bonne comparaison technique entre Joomla et Drupal pour mettre un terme à la guerre entre les deux.
Avant de commencer, nous devons clarifier la terminologie propre à chaque CMS : ce que Drupal appelle "Module" est très similaire au concept de "Composant" dans Joomla. Ce que Joomla appelle "Module" est très similaire au concept de "Blocks" dans Drupal.
Facilité d'utilisation VS complexité
La plupart des analystes en ligne utilisent un graphique pour aider à déterminer quel CMS serait le plus approprié pour différentes spécifications. Wordpress est placé d'un côté de l'échelle, supposé plus facile d'utilisation et moins approprié pour les projets complexes. Joomla, est placé au centre, et Drupal est tout au bout comme étant le plus difficile et le plus adapté pour les projets complexes. Cette catégorisation n'est pas totalement fausse, mais est extrêmement généraliste.
Un graphique trop généraliste, qui reflète le point de vue partiel de ceux qui ne savent pas coder.
Maintenant regardez plutôt ce graphique. Non seulement Joomla est plus facile à installer et à configurer que Drupal. Il est aussi plus simple de DÉVELOPPER des fonctionnalités pour Joomla que pour Drupal ou WordPress.
Un graphique qui reflète le point de vue du programmeur.
Ce graphique concerne principalement le développement customisé de haute qualité. Vous pouvez assez facilement hacker n'importe lequel de ces 3 CMS pour faire ce que vous voulez, mais avec un coût en terme de sécurité, de maintenance, et de fiabilité.
De la même manière, le mythe que Drupal serait plus approprié pour les projets complexes que Joomla est dû au fait que ces évaluations sont faites du point de vue des webmasters plutôt que de celui du programmeur. Cette perception est dû au fait que Drupal offre une approche modulaire pour le design de l'interface utilisateur et la création de contenu. Les page Drupal sont créées en utilisant des blocks et des vues. Cela donne au Webmaster une très grande flexibilité pour construire des pages web sans avoir besoin de savoir créer des modules pour Drupal. En revanche, Joomla propose des boites à outils similaires (composants et modules) pour les webmasters, mais elles ne sont pas aussi simple d'utilisation pour un simple webmaster qui a besoin de rapidement construire des pages web complexes.
Toutefois, construire de nouvelles fonctionnalités sur mesure représente une autre paire de manches. Dans le monde d'aujourd'hui, tout est managé à travers le logiciel, gérer du contenu sur la base de page web de manière flexible n'est pas suffisant, et avoir une interface utilisateur modulaire ne l'est pas plus.Au fur et à mesure qu'un projet a besoin d'évoluer, les fonctionnalités dans le CMS ont besoin d'évoluer également.
Comparaison technique entre Joomla et Drupal
Dès que le programmeur ouvre les entrailles du code source de Drupal, il fait face à un véritable cauchemar. Personnaliser Drupal n'est pas aisé, car il est basé sur une interface mal designée et sur un framework procédural. Joomla, lui, est basé sur un framework bien conçu, orienté objet, respectant le pattern MVC ; il intègre un grand nombre de patterns tels que le listener et autre.
Même si vous engagez un programmeur Drupal compétent (qui sont très chers), il est extrêmement probable que votre code sera toujours du spaghetti code, ce qui vous posera bien des problèmes dans le future si vous voulez faire des modifications.
1. Base de donnée
2. Design Patterns
Tout d'abord, Joomla est Orienté Objet, alors que Drupal se base toujours sur du vieux PHP 4, dans un style de programmation procédural remontant au temps obscurs de PHP. Certes, sur les dernières version, il es spécifié que Drupal repose sur PHP 5, mais le code est toujours largement basé sur du procédural type PHP 4.
Drupal implémente ces deux vieux design patterns qui sont reconnus comment étant de mauvaises pratiques :
En revanche, Joomla implémente ces design patterns modernes, qui sont reconnus comme étant de bonnes pratiques, et utilisés par les meilleurs frameworks comme symfony2, Zend, ou des langage de programmation comme Java :
Les quelques Design Patterns implémentés sur les deux frameworks tel que DBAL (Database Abstraction Layer) ont été mieux intégrés dans Joomla. Le DBAL de Joomla est presque aussi bon qu'un ORM, et si vous voulez réellement utiliser un véritable ORM, Jooma peut utiliser Doctrine.
L’implémentation de ces pratiques modernes sur Joomla est la conséquence d'une amélioration continue de Joomla au travers des années, alors que Drupal a stagné. Il est également le produit de la communauté très active de Joomla.
- - - Mise à jour - - -
je continue à traduire à la suite, merci de ne pas répondre pour l'instant. (nombre max de caractères atteint )
Face à cette situation, les développeurs de la société butterfly viennent de publier un article comparant Joomla et Drupal du point de vue du code. L'analyse est sans appel : Drupal est une usine à gaz, codée avec les pieds, utilisant de vieux patterns, avec des performances très faibles. Drupal ne présente un avantage que pour les WebMasters incapables de coder, et qui ont besoin d'un clicodrome pour développer des plugins/modules/composant.
Je vous propose ici une traduction rapide de cette analyse :
Joomla VS Drupal: une comparaison technique des meilleurs CMS
Il y a quelques semaines, j'ai du écrire une comparaison technique entre Joomla et Drupal. Naturellement, j'ai commencé par faire des recherches en ligne. Étonnamment, je n'ai pu trouver aucune évaluation technique décente de ces deux CMS open source en vogue. La plupart des articles étaient des comparaisons superficielles écrites par des webmasters et non pas par des développeurs. La plupart des articles comparait les performances, mais il n'y avait aucune comparaison assez profonde, assez détaillée, basée sur une évaluation technique du fonctionnement interne du framwork PHP faisant tourner ces CMS. Comme développeur ayant travaillé à la fois sur Joomla et Drupal, j'ai décidé qu'il était temps d'écrire une bonne comparaison technique entre Joomla et Drupal pour mettre un terme à la guerre entre les deux.
Avant de commencer, nous devons clarifier la terminologie propre à chaque CMS : ce que Drupal appelle "Module" est très similaire au concept de "Composant" dans Joomla. Ce que Joomla appelle "Module" est très similaire au concept de "Blocks" dans Drupal.
Facilité d'utilisation VS complexité
La plupart des analystes en ligne utilisent un graphique pour aider à déterminer quel CMS serait le plus approprié pour différentes spécifications. Wordpress est placé d'un côté de l'échelle, supposé plus facile d'utilisation et moins approprié pour les projets complexes. Joomla, est placé au centre, et Drupal est tout au bout comme étant le plus difficile et le plus adapté pour les projets complexes. Cette catégorisation n'est pas totalement fausse, mais est extrêmement généraliste.
Un graphique trop généraliste, qui reflète le point de vue partiel de ceux qui ne savent pas coder.
Maintenant regardez plutôt ce graphique. Non seulement Joomla est plus facile à installer et à configurer que Drupal. Il est aussi plus simple de DÉVELOPPER des fonctionnalités pour Joomla que pour Drupal ou WordPress.
Un graphique qui reflète le point de vue du programmeur.
Ce graphique concerne principalement le développement customisé de haute qualité. Vous pouvez assez facilement hacker n'importe lequel de ces 3 CMS pour faire ce que vous voulez, mais avec un coût en terme de sécurité, de maintenance, et de fiabilité.
De la même manière, le mythe que Drupal serait plus approprié pour les projets complexes que Joomla est dû au fait que ces évaluations sont faites du point de vue des webmasters plutôt que de celui du programmeur. Cette perception est dû au fait que Drupal offre une approche modulaire pour le design de l'interface utilisateur et la création de contenu. Les page Drupal sont créées en utilisant des blocks et des vues. Cela donne au Webmaster une très grande flexibilité pour construire des pages web sans avoir besoin de savoir créer des modules pour Drupal. En revanche, Joomla propose des boites à outils similaires (composants et modules) pour les webmasters, mais elles ne sont pas aussi simple d'utilisation pour un simple webmaster qui a besoin de rapidement construire des pages web complexes.
Toutefois, construire de nouvelles fonctionnalités sur mesure représente une autre paire de manches. Dans le monde d'aujourd'hui, tout est managé à travers le logiciel, gérer du contenu sur la base de page web de manière flexible n'est pas suffisant, et avoir une interface utilisateur modulaire ne l'est pas plus.Au fur et à mesure qu'un projet a besoin d'évoluer, les fonctionnalités dans le CMS ont besoin d'évoluer également.
Comparaison technique entre Joomla et Drupal
Dès que le programmeur ouvre les entrailles du code source de Drupal, il fait face à un véritable cauchemar. Personnaliser Drupal n'est pas aisé, car il est basé sur une interface mal designée et sur un framework procédural. Joomla, lui, est basé sur un framework bien conçu, orienté objet, respectant le pattern MVC ; il intègre un grand nombre de patterns tels que le listener et autre.
Même si vous engagez un programmeur Drupal compétent (qui sont très chers), il est extrêmement probable que votre code sera toujours du spaghetti code, ce qui vous posera bien des problèmes dans le future si vous voulez faire des modifications.
1. Base de donnée
- Dans Drupal, les vues sont stockées dans la base de données. Cela signifie que vous n'avez pas la possibilité de mettre en place de version de contrôle (comme SVN ou GIT) et que les développeurs ne peuvent pas collaborer pour développer ces vues.
- Chaque nouveau type de contenu dans Drupal correspond à un couple de tables dans la base de donnée. Cela signifie que la structure de la base de donnée change au fur et à mesure que des types sont créés. La base de donnée n'a pas un nombre fixe de tables. Cela ne respecte pas les conventions, et c'est un cauchemar pour le développeur qui a besoin de créer des diagrammes de relations (ERD) quand il construit une applicatoin web. Vous ne pouvez pas faire de diagramme de votre base de donnée, car le nombre de tables dans le schéma change tout le temps.
- Dans Drupal, les logs sont stockés dans la Base de Donnée. Tout les systèmes modernes stockent les logs dans des fichiers. Stocker les logs dans la BDD les rends très difficilement accessibles, et donc plus dures à profiler et analyser. Un développeur avec Drupal ne peut pas utiliser les outils de Linux (comme sed, awk, cut, cat, etc.) pour analyser les logs. Le processus est beaucoup plus lent, prend beaucoup plus d'espace disque pour le stockage de la BDD. Cela fait enfler la BDD d'une manière inutile, et la rend inefficace. Pour des site à large trafic, il devient quasi impossible d'analyser les logs. De plus, ce système ne permet pas de faire des rotation sur les logs, et d'archiver les anciens logs. Qui de bien censé est capable de stocké ses logs dans une base de donnée ?
2. Design Patterns
Tout d'abord, Joomla est Orienté Objet, alors que Drupal se base toujours sur du vieux PHP 4, dans un style de programmation procédural remontant au temps obscurs de PHP. Certes, sur les dernières version, il es spécifié que Drupal repose sur PHP 5, mais le code est toujours largement basé sur du procédural type PHP 4.
Drupal implémente ces deux vieux design patterns qui sont reconnus comment étant de mauvaises pratiques :
- Code Procédural
- Hooking
En revanche, Joomla implémente ces design patterns modernes, qui sont reconnus comme étant de bonnes pratiques, et utilisés par les meilleurs frameworks comme symfony2, Zend, ou des langage de programmation comme Java :
- Orienté Objet (c'est à dire polymorphe, utilisant l'encapsulation, l'héritage, etc.)
- MVC (Modèle, Vue, Contrôleur)
- Orienté événement
- Pattern Observer
- Singleton
- Object Factory
Les quelques Design Patterns implémentés sur les deux frameworks tel que DBAL (Database Abstraction Layer) ont été mieux intégrés dans Joomla. Le DBAL de Joomla est presque aussi bon qu'un ORM, et si vous voulez réellement utiliser un véritable ORM, Jooma peut utiliser Doctrine.
L’implémentation de ces pratiques modernes sur Joomla est la conséquence d'une amélioration continue de Joomla au travers des années, alors que Drupal a stagné. Il est également le produit de la communauté très active de Joomla.
- - - Mise à jour - - -
je continue à traduire à la suite, merci de ne pas répondre pour l'instant. (nombre max de caractères atteint )
Commentaire