Comparaison d'eZ Publish et Drupal
Encore une comparaison entre eZ Publish et Drupal, oui encore une. mais la lecture de l'article de Marco Zmak sur share.ez.no ma donner l'envie de ressortir cette comparaison des cartons.
J'ai travaillé pendant avec eZ Publish et j'ai suivi pendant longtemps Drupal pour m'y consacré pleinement depuis plus de 6 mois maintenant. Je vais essayer de donner mon avis sur les 2 technologies sans tomber dans la mauvaise fois pro drupal comme http://www.media-business.biz/content/ezpublish-cms-drupal-cms-2-years-experience-big-media-website ou pro eZ comme http://share.ez.no/blogs/marko-zmak/ezpublish-vs.-drupal .
Qualité du code
Orienté objet
Drupal n'est pas orienté objet dans sa syntaxe, c'est un fait. En revanche, elle en utilise de nombreux concepts. Elle l'ai un peu plus quand on rentre dans le monde des Entitées.
eZ Publish utilise la syntaxe mais prend quelque largesse avec les concepts. L'exemple d'eZMail::sendMail est peut être le plus symptomatique du mal dont souffre l'API d'eZ.
/*!
Tries to send the contents of the email object \a $mail and
returns \c true if succesful.
*/
function sendMail( eZMail $mail ) {
return false;
}
eZ Components, framework qui propulse de plus en plus eZ Publish, est au contraire un exemple de bonnes pratiques orientés objets.
Les 2 CMS et leurs API respectivent souffre des carences des anciennes versions PHP et notamment PHP 4. Les 2 CMS ont eu des approches différentes mais on ne peut blamer ni l'un ni l'autre pour les écarts par rapport aux dogmes que l'on trouve dans les API.
Test unitaire et fonctionnel
Point fort de Drupal 7, les tests unitaires et fonctionnels sous Drupal permettent de mettre le code sous contrôle. Pour eZ Publish, je n'ai pas vu d'équivalent.
Séparation en différente couche
Sur de la modification de template sur des composants existants, eZ Publish via son moteur de template mélange allègrement la couche d'accès aux données via les fetchs et la logique de présentation. Drupal offre une séparation plus nette avec les hooks d'un coté et la logique de templating de l'autre, le prix de cette séparation est finalement une lecture du code plus complexe (surtout quand le nombre de hook augmente). 2 approches différentes ayant chacun leurs avantages et leurs inconvénients.
Sur des modules personnalisées, on arrive à des systèmes assez proche avec de grande partie déclarative, des méthodes métiers et des templates bien séparées dans les 2 cas. C'est juste une histoire de syntaxe.
Le système de template
Syntaxe propriétaires versus syntaxe standard
Gros point noir d'eZ Publish de mon point de vue (en tout cas, c'est celui qui m'a donnée envie d'aller voir ailleurs, pour en connaitre les raisons je vous laisse lire un article sur l'utilité des langages de templates en PHP et sur mon rêve de template eZ en PHP), je ne vais pas refaire le débat.
Si l'on fait abstraction du langage proprement dit, et que l'on regarde les fonctionnalités. On a grosso modo la même chose avec des templates et des opérateurs du coté eZ Publish, et des templates et des fonctions de thèmes pour Drupal. Drupal possède quand même un avantage non négligeable : une fonction de template peut être surchargé par un template le cas échéant.
Qualité des templates par défaut
Même si il est très rare de conservé les templates par défaut dans un projet d'envergure, mais elle servent souvent de source d'inspiration pour les développeurs.
la qualité des templates par défaut proposé par Drupal surpasse largement celle proposé par eZ notamment d'un point accessibilité et qualité de code. J'ai encore le souvenir d'avoir surchargé tous les templates pour pouvoir faire des liens corrects.
Pour l'instant aucun de ces 2 produits n'exploitent nativement HTML 5, les micro-formats ou ARIA comme peuvent le faire d'autres CMS.
Documentation et communauté
Comme souvent dans le monde du logiciel libre, la documentation est abondante et pas toujours de bonne qualité. Le code source reste souvent la meilleur source de documentation.
Sur la communauté, eZ Publish dispose d'une communauté plus restreintes (beaucoup plus restreintes) mais qui maîtrise beaucoup mieux les concepts de génie logiciel, de bonnes pratiques de programmations que sur d'autres produits. eZ Publish dispose d'une communauté de très haute qualité.
Pour Drupal, la communauté est beaucoup plus importantes, il existe un noyau de la même qualité que pour celle d'eZ Publish mais elle noyé dans la masse. Drupal ratisse beaucoup plus large et donc attire de nombreux "noobs" du Web qui viennent pollué.
Il en est de même pour les modules, des modules comme Views ou Panels n'ont pas d'équivalent dans eZ Publish et c'est un avantage important pour ce CMS : avoir une porte d'entrée élevé pour ne garder que la crème.
Extensibilité
Drupal dispose d'un nombre d'extension important mais entre les extensions indispensables et les extensions inutilisables ou de mauvaises qualités, on se retrouve grosso modo avec la même chose.
Que ce soit dans Drupal ou dans eZ Publish, les types de contenus peuvent être créer à volonté. Pour les champs personalisées, nous avons le concept des datatypes d'un coté et la Field APi de l'autre, c'est une juste une question de syntaxe mais pas de grande différence fonctionnelle.
Une différence de poids en faveur de Drupal est la possibilité (à partir de la version 7) de créer des types de contenus par programmation sans passer par l'interface graphique, ce qui facilite la réutilisation entre les projets et les passages entre les différentes versions d'un même projet.
eZ Publish propose un éventail de datatype plus complet que Drupal.
Configuration
Sur la configuration, sous eZ Publish tout passe par des fichiers de settings, mais entre les siteaccess, les extensions, l'override globale, il est parfois difficile de s'y retrouver.
Dans Drupal, il existe plusieurs systèmes pour la configuration soit d'horrible tableau PHP soit des données stockées dans la bases de données.
Performances
Les 2 produits sont lourds et nécessite une infrastructure adapté qui connait bien le produit. Je ne crois qu'aucun CMS est meilleur que l'autre, c'est la qualité des développeurs et de l’administrateur système qui va être déterminant.
Conclusion
Drupal et eZ Publish sont aujourd'hui les 2 CMS qui sont capables de propulser des sites importants en termes de traffic et de fonctionnalités. Chacun à des avantages et des inconvénients, qui sont relatif à la sensibilité de chaque développeur. Personnellement, je trouvais Drupal 6 inférieur à eZ Publish, aujourd'hui je trouve Drupal 7 supérieur mais quid de la prochaine mise à jour.
Commentaires
truffo
francis
Damien
truffo
Nicolas
Truffo.fr: Comp...
Damien
Ajouter un commentaire