Dites WordPress, pas Weirdpress…

Le camarade Palleas vient de donner un avis tranché voire lapidaire sur WordPress. Notre CMS serait codé avec les pieds, utiliserait une logique procédurale has been pour rester compatible avec PHP4, etc. De plus, pour ne pas faire les choses à moitié, le billet en question n’oublie pas les personnes qui ont choisi de proposer WordPress comme solution professionnelle pour la création d’un site web plus ou moins complexe : elles en prennent aussi pour leur grade.

En ce qui concerne les remarques sur le code de WordPress, je partage en grande partie les frustrations de Palleas. Je suis également quelqu’un de perfectionniste qui préfère travailler avec des bons outils plutôt qu’avec des mauvais. Toutefois, certains arguments — comme vouloir à tout prix passer à PHP5 pour profiter d’une programmation orientée objet — sont discutables.

La programmation procédurale est plus performante que l’objet qui nécessite plus de ressources. Par ailleurs, PHP4 est encore largement utilisé dans le monde et je trouve plutôt positif qu’une organisation comme WordPress tienne compte de cette forme d’accessibilité qui consiste à supporter (j’utilise l’anglicisme à dessein) les configurations obsolètes, à la manière de la prise en compte des vieux navigateurs comme IE6. Plus qu’une oeuvre de charité, c’est aussi une  démarche fondamentale lorsqu’on vise une audience mondiale.

Note : d’après le commentaire de Marie-Aude, il semble que l’équipe de WordPress ai cessé d’assurer la compatibilité avec PHP4 depuis plusieurs versions déjà.

Ce qui m’amène à préciser que WordPress a été conçu pour être utilisé par un public large, c’est-à-dire pas forcément féru d’informatique ou de programmation. Tout est fait pour qu’avec un minimum d’intérêt et de motivation, la ménagère de moins (ou plus) de 50 ans puisse publier des articles, installer elle-même sa page contact, créer ses rubriques, etc. C’est la même philosophie qui fait que la création d’un thème WordPress est si simple et qu’un minimum de connaissances suffise pour se lancer dans l’aventure.

Bref, dans WordPress, c’est le code qui est au service de l’auteur du blog et pas le contraire ! Ceci dit, WordPress est une plate-forme de blog, alors pourquoi donc vouloir lui faire faire tout et n’importe quoi ? Ce ne sont pourtant pas les CMS offrant du code et une architecture respectant un standing de haut niveau qui manque !

Certains voient dans cette suprématie de WordPress, un calcul marketing et une volonté d’écraser la concurrence comme le fait Google dans le secteur des moteurs de recherche. Pour ma part, cette supériorité s’explique aisément : il n’existe pas de CMS gratuit proposant un éditeur visuel et un système aussi simple et performant pour gérer les images que WordPress. Il ne faut pas perdre de vue que la saisie et la mise en forme de textes et d’images sont le coeur et la raison d’être de tout CMS.

L’absence d’un éditeur visuel intégrant images, son, vidéos, etc. se fait cruellement sentir au moment d’expliquer aux clients que non, pour afficher les images de son choix, ça ne va pas être possible ou si peu… Mon article sur les étapes nécessaires pour avoir dans Drupal un confort similaire à WordPress out of the box en témoigne.

Du coup, même si les besoins du client font pencher la balance pour l’installation d’un CMS plus costaud comme Drupal, j’ai quand même tendance à pousser WordPress dans ses retranchements pour éviter que le client ne passe son temps à se battre contre son système de gestion et de publication de contenus au lieu de travailler avec 😉

Mes deux cents 😉

Notes du 23/01/2010 à 13h25 pour préciser mon opinion

J’ai bien compris que Palleas ne s’attaque pas à tous les utilisateurs de WordPress mais seulement à ceux qui pensent être développeurs parce qu’ils ont copiés-collés un `if ( is_home() )` dans un thème WordPress. Pourquoi pas. Le (petit) problème c’est que ces propos ne visent personne en particulier, donc, fatalement, tous les utilisateurs de WordPress se sentent un peu visés, c’est la nature humaine (toujours le même problème).

Je vais revenir sur la manière dont WordPress est codé. Mais avant, je demande aux développeurs d’ouvrir un peu les fenêtres et de prendre un bol d’air frais ! Ca fait des années que des amis développeurs (certainement les mêmes que Palleas) m’ont expliqués pourquoi ils trouvaient que WordPress était mal codé et comment il faudrait faire pour obtenir quelque chose de mieux. Ce n’est donc pas nouveau et d’ailleurs au sein même de WordPress il y a des débats qui se sont soldés par la création d’un nouveau système de blog bâti sur des fondations plus saines (programmation objet, etc.) par une équipe « dissidente ».

Ce projet s’appelle Habari (http://habariproject.org/en/) et tout un chacun peut le télécharger et contribuer à son développement. Je l’ai d’ailleurs installé à l’adresse http://4design.xyz/factory. Je suis donc surpris de constater que des « vrais » développeurs continuent d’installer des WordPress pour leurs besoins personnels, au sein de leur entreprise, ou pire encore, pour leurs clients alors qu’une alternative « cool » existe ! S’ils continuent, c’est que le projet WordPress dans son ensemble ne doit pas sentir si mauvais que ça 😀

Pour en revenir au code, il faut que les développeurs purs et durs prennent conscience que tous les intervenant de la chaine de production d’un site web n’ont pas les même notions quant à la qualité du code ni les mêmes attentes.

Il m’est souvent arrivé de pester contre des développeurs ravis d’avoir trouvé une solution élégante pour résoudre leur problème sans s’inquiéter de savoir si les fonctions, classes, méthodes, etc. qu’ils avaient développées correspondaient aussi aux besoins des intégrateurs web en bout de chaine. Le syndrome du : « j’ai fait mon boulot, ça marche chez moi » est un argument récurrent.

De ce point de vue, les fonctions (template tags) proposées par WordPress pour les intégrateurs sont un modèle du genre et chaque fois que je le peux je les montre aux développeurs avec qui je dois travailler pour leur donner une idée de ce que sont des livrables « cool » du point de vue de l’intégration.

PS : je viens de tomber sur cet excellent article qui tombe bien à propos : Pourquoi je suis passé de Dotclear à WordPress.