Joomla VS Drupal : le point de vue du programmeur

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Joomla VS Drupal : le point de vue du programmeur

    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.

    http://www.butterfly.com.au/what/we-...pen-source-cms

    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.

    Cliquez sur l'image pour l'afficher en taille normale

Nom : mythbusted.jpg 
Affichages : 1 
Taille : 12,5 Ko 
ID : 1820568

    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.

    Cliquez sur l'image pour l'afficher en taille normale

Nom : out-of-box.jpg 
Affichages : 1 
Taille : 38,7 Ko 
ID : 1820569
    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.

    Cliquez sur l'image pour l'afficher en taille normale

Nom : customising-match-requirements.jpg 
Affichages : 1 
Taille : 46,0 Ko 
ID : 1820570
    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
    1. 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.
    2. 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.
    3. 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 :
    1. Code Procédural
    2. 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 :
    1. Orienté Objet (c'est à dire polymorphe, utilisant l'encapsulation, l'héritage, etc.)
    2. MVC (Modèle, Vue, Contrôleur)
    3. Orienté événement
    4. Pattern Observer
    5. Singleton
    6. 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 )
    Fichiers joints
    Dernière édition par Louis Gac à 29/07/2014, 13h15 Raison: orthographe

  • #2
    Re : Joomla VS Drupal : le point de vue du programmeur

    3. Architecture du Coeur

    Joomla a une API extrêmement clair et bien codée, alors que Drupal est affreusement écrite dans un spaghetti code indigeste. Une bonne analogie serait de comparer Joomla a un sapin de noël, et l'architecture de Drupal à une Buckyball (ndlt : ou à des boules de pâte à modeler qu'on aurait compresser ensemble avant de la faire rouler dans du gravier).

    Dans Joomla, vous avez une arborescence hiérarchique. Le tronc principal est le Joomla Core. Il a des branches (l'API) auxquelles vous pouvez attacher d'autres branches (les composants) ou des feuilles (les modules ou les widgets). Donc, un composant peut être connecté, et profiter lui-même de composants de sécurité de Joomla (Access et Control Levels) et des fonctions de mangement des articles. Étant une branche, il peut avoir des sous-branches et il peut même avoir un pont vers la branche de quelqu'un d'autre. Mais, en général, il y a toujours un minimum de contact entre les différentes branches.

    Cliquez sur l'image pour l'afficher en taille normale

Nom : branches.jpg 
Affichages : 1 
Taille : 25,1 Ko 
ID : 1820572

    Dans Drupal, la forme est pour ainsi dire largement circulaire avec de nombreux points en surface appeler modules. En construisant une extension, vous pouvez vous accrocher à n'importe lequel de ces modules. Cette intégration serrée veut dire que tout communique avec tout. L'architecture est bien moins élégante, et réduit considérablement la qualité du code de toute fonctionnalité ajoutée. La maintenance à long terme devient un vrai problème avec ce genre de structure.

    Cliquez sur l'image pour l'afficher en taille normale

Nom : structure.gif 
Affichages : 1 
Taille : 29,9 Ko 
ID : 1820573

    Pour implémenter cette architecture par Hooks, Drupal utilise call_user_funv() et invoque d'autres fonction dynamiques, reposant sur les méthodes de réflexions. Ceci veut dire que débuguer Drupal est un cauchemar en utilisant des outils modernes (xDebug, etc...)

    De plus, cela veut dire que vous ne pouvez pas utiliser l'autocomplétion de votre IDE moderne, car ils ne connaîtront pas le type de la fonction appelée dynamiquement.

    4. Respect des Standards de programmation

    PSR es la norme de codage de base utilisé pour PHP adopté par les frameworks les plus modernes comme Symfony2 et Zend. Joomla respecte la norme PSR-0, et respectera bientôt la norme PSR-1. Drupal ne respecte aucune norme.


    5. Performances et mise en cache

    Drupal fait en moyenne 100 requêtes vers la base de donnée pour lire une page (une page SIMPLE). A cause de cela, et d'autres graves problèmes de performance liés à l'architecture par Hooks, tout doit être abstrait et mise en cache, ce qui augmente considérablement la complexité et les ressources matérielles nécessaires. Joomla est beaucoup plus légé et optimisé, il a un coeur beaucoup plus rapide. La mémoire minimum pour Joomla est de 512 Mb, pour Drupal elle est de 2Gb (ndlr : Drupal fonctionne très mal sur les serveurs mutualisés d'OVH)

    La plupart des benchmarks sont d'accord que sans le cache, Joomla est plus rapide et moins gourmand en ressource que Drupal. Toutefois, certains benchemarks considère que Drupal est plus rapide avec le cache. Mais, si le le cahce Joomla est configuré comme il faut, il dépasse largement les performance de Drupal. De plus, le cache de Joomla est beaucoup plus simple, consomme beaucoup moins de ressources que celui de Drupal, ce qui fait que Joomla est plus simple à mettre à jour.



    ... To be continued..

    Commentaire


    • #3
      Re : Joomla VS Drupal : le point de vue du programmeur

      quel bel article => a quand une publication sur un site en fr sur l portail de joomla.fr par exemple
      Société : http://www.com3elles.com
      Bénévole : http://www.flexicontent.org

      Commentaire


      • #4
        Re : Joomla VS Drupal : le point de vue du programmeur

        Je rejoins l'avis pertinent de Yannick !
        +100 tutoriels Joomla! 3 www.web-eau.net/tutoriels-joomla et parcours de formation gratuit pour Joomla! 3 http://www.web-eau.net/tutoriels-joo...s-de-formation

        Commentaire


        • #5
          Re : Joomla VS Drupal : le point de vue du programmeur

          Idem, merci Louis Gac pour cette Trad FR

          [Edit] On en discute avec le CA de l'AFUJ, si c'est Ok, on demande l'autorisation à l'auteur australien
          et on revient vers toi dans tous les cas
          Dernière édition par garstud à 30/07/2014, 11h11
          Garstud Workshop - Concepteur, Développeur et Formateur Joomla - http://www.garstud.com
          « Ce n’est pas parce que les choses sont difficiles que nous n’osons pas,
          c’est parce que nous n’osons pas qu’elles sont difficiles. »
          - Sénèque

          Commentaire


          • #6
            Re : Joomla VS Drupal : le point de vue du programmeur

            salut, bon et bien la peine que je finisse la traduction alors !

            oui, il faut vraiment publier cet article dans des endroits visibles. Franchement, j'ai encore un client qui vient de me dire : "on m'a déconseillé Joomla, et on m'a dit que Drupal c'était mieux", et franchement, je commence vraiment à ne plus pouvoir supporter ça.

            J'ai bossé sur énormément de frameworks différents, de CMS, de solutions eCommerce (Magento & co), et franchement, je trouve que Joomla! est une merveille du point de vue du code : le plus clair, le plus lisible, le mieux organisé, le plus respectueux des conventions... À l'inverse, je classe Drupal dans la même catégorie que Wordpress : usine à gaz codée avec les pieds destinée aux webmasters incapables de coder.

            Bref, vraiment, il faut que la communauté Joomla francophone défende un peu mieux cette petite merveille contre les assauts de Drupal.

            Commentaire


            • #7
              Re : Joomla VS Drupal : le point de vue du programmeur

              Salut,
              Envoyé par Louis Gac Voir le message
              (...)
              Bref, vraiment, il faut que la communauté Joomla francophone défende un peu mieux cette petite merveille contre les assauts de Drupal.
              Je ne pense pas qu'un débat du type mon herbe est plus verte que la tienne soit constructif. Certe il est vrai que le nouveau C.A de l'AFUJ a mis en place des jalons pour améliorer sa communication sur Joomla! à partir de la rentrée de septembre mais pour avoir vécu les longs troll de Microsoft versus Linux sur les forums je peux affirmer que ces débats ne font rien progresser.

              Et nous avons vu lors des journées pro du dernier JoomlaDay que Drupal et Joomla! ne sont pas vraiment ni sur la même cible de clients ni sur la même communauté d'utilisateurs (y-a-t-il d'ailleurs une communauté chez Drupal qui ressemble à la notre ? Pas sûr...)

              Je fais donc parti, et je l'assume, de ceux qui ne pensent pas que ce soit le type d'article à diffuser sur notre site joomla.fr, nous vous montrerons qu'il y a bien d'autres choses à dire à propos de Joomla! et qu'il ne sera pas nécessaire de critiquer les voisins pour faire comprendre que notre CMS est vraiment le meilleur
              adishatz, érix
              https://www.agerix.fr/
              Vous aimez ce forum ? Aidez-nous à le maintenir en adhérant à l'AFUJ : https://www.joomla.fr/association/adherer

              Commentaire

              Annonce

              Réduire
              1 sur 2 < >

              C'est [Réglé] et on n'en parle plus ?

              A quoi ça sert ?
              La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

              Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

              Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
              Comment ajouter la mention [Réglé] à votre discussion ?
              1 - Aller sur votre discussion et éditer votre premier message :


              2 - Cliquer sur la liste déroulante Préfixe.

              3 - Choisir le préfixe [Réglé].


              4 - Et voilà… votre discussion est désormais identifiée comme réglée.

              2 sur 2 < >

              Assistance au forum - Outil de publication d'infos de votre site

              Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

              Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

              Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

              UTILISER À VOS PROPRES RISQUES :
              L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

              Problèmes connus :
              FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

              Installation :

              1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

              Archive zip : https://github.com/AFUJ/FPA/zipball/master

              2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

              3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

              4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

              5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

              6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
              et remplacer www. votresite .com par votre nom de domaine


              Exemples:
              Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
              Télécharger le script fpa-fr.php dans: /public_html/
              Pour executer le script: http://www..com/fpa-fr.php

              Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
              Télécharger le script fpa-fr.php dans: /public_html/cms/
              Pour executer le script: http://www..com/cms/fpa-fr.php

              En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

              Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
              Voir plus
              Voir moins

              Partenaire de l'association

              Réduire

              Hébergeur Web PlanetHoster
              Travaille ...
              X