WordPress envisage son avenir sans PHP

Nicolas Furno |

WordPress est né dans les années 2000 et même si cet outil a bien évolué depuis ses débuts dédiés uniquement à créer de simples blogs, certains aspects n’ont pas vraiment changé depuis sa naissance. C’est le cas notamment de son interface d’administration qui a bien évolué en plus de dix ans, certes, mais qui reste malgré tout assez proche de l’esprit original.

L’interface d’administration par défaut de WordPress, ici sur un ordinateur. Cliquer pour agrandir

Au fil des mises à jour de WordPress, cette interface a été adaptée aux appareils mobiles et on peut désormais l’utiliser presque normalement sur un smartphone. Reste que l’on sent bien encore que cet outil d’administration a été pensé pour les ordinateurs avant tout, pas pour les appareils mobiles.

Une nouvelle interface qui abandonne le PHP

C’est fort de ce constat que Matt Mullenweg, l’un des créateurs de WordPress, a lancé le projet Calypso au printemps 2014. Son objectif n’était pas d’améliorer l’administration actuelle du CMS, mais de repartir de zéro et d’en créer une nouvelle. Celle-ci est désormais disponible et tous les propriétaires de sites sous WordPress peuvent l’utiliser s’ils le souhaitent.

Liste des articles sur un blog, avec l’interface traditionnelle à gauche, avec la nouvelle interface à droite. Cliquer pour agrandir

Le projet a été mené au sein d’Automattic, la société créée en 2005 par Matt Mullenweg et qui se charge depuis de WordPress.com (service de publication clé en main basé sur WordPress) et qui est le plus gros contributeur au moteur lui-même. Si vous utilisez le service en question, vous l’avez déjà croisée, puisque cette administration nouvelle génération est visible en partie depuis plusieurs mois. Le projet Calypso est désormais complet et c’est pourquoi l’entreprise communique dessus.

Pour accompagner la sortie officielle de Calypso, Automattic a sorti un logiciel OS X que l’on peut télécharger à cette adresse. Des versions adaptées à Windows et Linux sont en cours de préparation, mais cette annonce n’est pas la plus importante du jour. De fait, ce logiciel n’a rien de natif, il ne s’agit que d’un cadre natif autour du site web qui offre exactement les mêmes fonctions et la même interface. L’application présente l’avantage de libérer votre navigateur et d’intégrer des notifications natives, mais c’est à peu près tout.

Cliquer pour agrandir

Contrairement à l’administration de base de WordPress, la nouvelle a été pensée en premier lieu pour les appareils mobiles et le tactile. L’interface s’adapte à n’importe quelle largeur et l’affichage évolue en fonction de la place disponible. Par ailleurs, toutes les fonctions sont aussi faciles à utiliser que l’on travaille sur un écran de 27 pouces ou sur celui d’un smartphone. Calypso est aussi très rapide et ressemble à une application : on ne voit jamais une nouvelle page se charger, tout se fait en direct sur la même page.

Le plus intéressant dans cette toute nouvelle interface, ce sont peut-être ses fondations. WordPress est conçu en PHP, à la fois pour générer les pages HTML affichées dans le navigateur côté lecteur, et pour toute l’administration. Calypso n’est pas un moteur en PHP, en fait l'interface ne nécessite absolument aucun code PHP. Tout a été conçu en JavaScript, avec une base de Node et React (librairie conçue par Facebook) pour l’interface. Pour communiquer avec la base de données SQL qui est toujours essentielle, cette interface exploite l’API REST qui permet de lire et écrire des informations en JSON, sans passer par du PHP.

Calypso a été conçu au sein d’une entreprise privée, mais Matt Mullenweg est un grand défenseur de l’open-source et le projet est intégralement disponible sur GitHub. Ce qui permettra aux plus curieux de mieux comprendre comment l’ensemble fonctionne et de l’installer sur leurs serveurs, voire aux plus développeurs de modifier l’interface à leurs besoins.

Interface d’écriture d’un article. Cliquer pour agrandir

Au passage, cette interface ne sert pas qu’à administrer des sites, mais aussi à lire du contenu. Calypso intègre une sorte de lecteur de flux RSS, mais réservé aux blogs WordPress, ce qui est un petit peu étrange…

Quel avenir pour WordPress ?

Calypso ne remplace pas l’administration traditionnelle de WordPress. Même si cette interface en fait beaucoup, elle ne fait pas tout encore, très loin de là : pour l’heure, il s’agit surtout de simplifier l’expérience pour bloguer. On trouve ainsi tout ce qu’il faut pour lister les articles publiés, en écrire de nouveaux, obtenir des statistiques de lecture et gérer l’aspect du site. On peut changer de thème et modifier les menus depuis cette interface, mais beaucoup d’éléments renvoient en fait vers l’ancienne administration.

WordPress est devenu si complexe, il peut servir à des sites si différents aujourd’hui, que cette première version ne pouvait pas couvrir tous les besoins. Néanmoins, pour Automattic et WordPress.com, Calypso est incontestablement l’avenir et le développement va se poursuivre à partir de cette base pour répondre à tous les besoins. Si vous utilisez ce service d’hébergement, vous pouvez toujours accéder à l’ancienne administration, mais ça ne sera sans doute plus le cas à terme.

Même si Calypso a été conçu par et pour WordPress.com à la base, tous les utilisateurs de WordPress peuvent l’utiliser. Si vous hébergez vous-même le blog, vous n’aurez qu’à installer cette extension pour bénéficier de l’ensemble des fonctions. Et même quelques éléments supplémentaires, comme la gestion des plugins et leur mises à jour automatisées, très pratique quand on gère plusieurs sites.

Gestion des plugins depuis Calypso, pour un blog auto-hébergé. Cliquer pour agrandir

Calypso pourrait très bien représenter l’avenir de WordPress tout court, et pas seulement de la version « .com ». Mais puisqu’il s’agit d’un projet communautaire, ce n’est pas à Matt Mullenweg ou à son entreprise d’en décider. C’est la communauté qui choisira d’abandonner également le PHP au profit du JavaScript, ou au moins d’intégrer certains éléments de Calypso à l’administration WordPress.

L’interface de contrôle traditionnelle n’est pas prête de disparaître et la prochaine mise à jour significative de WordPress prévue pour la fin de l’année la conservera en totalité. Néanmoins, le rôle de PHP se réduit d’ores et déjà au profit du JavaScript : pour prendre un exemple concret, la fonction de personnalisation (qui permet de modifier l’aspect du site en voyant directement ce qui se passe) exploite déjà énormément ce langage. L’API REST est en cours d’intégration au cœur de WordPress et on trouve déjà quelques thèmes qui l’exploitent pour afficher les pages web sans jamais utiliser PHP.

Le projet Calypso n’enterre certainement pas le PHP, mais il offre à WordPress une alternative plus moderne, plus légère et souvent plus simple à mettre en œuvre.

Image de couverture : Alexander Gounder

avatar marc_os | 

« plus simple à mettre en œuvre » ?

Y en a beaucoup des hébergeurs qui proposent des serveurs sous Node.js ?
Ce qui veut dire de plus, que tout doit fonctionner sous Node.js.
WordPress va donc se fermer aux petits et indépendants qui seront forcés de prendre un hébergement chez WordPress.com !

avatar Nicolas Furno | 

@ marc_os : on en est encore loin, et Node.js est déjà relativement populaire. Si jamais WordPress l'adoptait plus largement, les hébergeurs s'adapteront très rapidement…

Ils ne vont tout de même pas passer à côté du quart du web !

avatar Bardyl | 

Sans compter le fait qu'en toute logique, n'utilisant que l'API, on peut faire tourner l'administration de son site Wordpress via un simple navigateur et NodeJS installé sur son ordinateur et ne plus l'utiliser sur un serveur.

(reste à voir si c'est permis. Pas encore eu le temps de me plonger dedans. Mais si c'est open source, c'est forcément possible facilement)

avatar françois bayrou | 

NodeJS reste indispensable sur le serveur : sessions, routage., templates
https://github.com/Automattic/wp-calypso/tree/master/server

avatar SartMatt | 

L'ancienne interface reste disponible, et la communauté ne l'abandonnera pas tant que la solution à base de Node.js ne sera pas aussi complète (c'est pas du tout le cas pour l'instant), aussi extensible (les plug-ins ont leurs propres écrans d'administration, qui doivent donc être réécrits pour les intégrer dans Calypso) et aussi portable. Donc c'est pas prêt d'arriver.

Après, côté hébergement, même pour un "petit" ou un "indépendant", c'est pas bien cher d'avoir quelque chose, pour 3€/mois tu as une VM sur laquelle tu installes ce que tu veux (faut un minimum de compétences techniques, mais c'est loin d'être insurmontable), et qui pet même être partagée entre plusieurs sites pour partager les frais.

avatar thefolken | 

Pour le moment cette nouvelle interface reste un projet indépendant, optionnel.

avatar ErGo_404 | 

Se prendre un VPS aujourd'hui ça coûte 3€ par mois, c'est relativement simple à configurer en utilisant le bon guide, bref ça n'a rien d'extraordinaire et c'est accessible à tous pour installer node.js.

Si Wordpress y passe intégralement et que ça devient un prérequis pour tous les sites, tu penses bien que les guides d'installation rapide vont fleurir un peu partout...

avatar valcapri | 

Le PHP reste utiliser pour la partie serveur notamment le service REST.

avatar thefolken | 

"en fait c’est même une interface totalement dépourvue de code en PHP"

C'est le cas de 100% des sites de l'univers, passés, présents, et futurs.

avatar Nicolas Furno | 
@ thefolken : certes, je vais reformuler.
avatar Nesus | 

Php tout comme flash est voué à disparaître. Ceux sont des technologies obsolètes. Il faut si faire.

avatar jackhal | 

PHP et Flash n'ont rien à voir à tous points de vue, leurs situations sont incomparables.

avatar Meaz | 

Je ne vois pas bien le rapport entre Flash et PHP

avatar Bardyl | 

Hein ? Tout le back-office de Wordpress est en PHP. C'est parce que l'interface est faite à base de Node qu'il n'y a pas de PHP derrière... Et puis bon... le rapport entre Flash et PHP... on repassera.

avatar richardcohenbiz | 

Faire disparaitre le PHP. Tu oublies un problème de taille qui a couté la vie de Flash.

L'information sur internet doit être accessible rapidement et référençable.
De ce puis javascript n'est pas un point de vue SEO (friendly Google).
L'url = une information est l'unique norme.

Donc pour comme ceux ayant tout misé sur flash a l'époque je rigole.
Le flash est mort par les moteurs de recherche et pas autres choses.
De la disparition de php pour le moment...Une fiction SEO

avatar jackhal | 

"Le flash est mort par les moteurs de recherche et pas autres choses."
Il est mort pour plein de raisons et le SEO n'était pas la principale.

avatar BabyAzerty | 

Hahaha, c'est drôle les commentaires MacG :-)

avatar fanchig | 

Library -> bibliothèque (même en informatique)

avatar Meaz | 

PHP reste au coeur de Wordpress. Le JavaScript ne sert ici qu'à afficher de l'information. Le traitement se fait au niveau de PHP.
Et non, PHP n'est pas voué à disparaitre.

avatar LittleSushi | 

PHP je ne sais pas, mais l'orto-graf et la grammaire c'est sûr!

avatar heret | 

Quand tu penses que tous ces gars à l'orthographe et à la grammaire incertaines sont des champions de php et javascript. Il manque un interpréteur ou un compilateur de langue française, c'est sûr.

avatar MarcoAix | 

Bonne remarque,

Si on se dit que les personnes qui n'ont aucun égard pour leur orthographe (et par extension... bon ok, on ne va pas relancer le débat) fonctionnent de la même manière avec le code PHP ou autre qu'ils pondent, on comprend mieux pourquoi on se retrouve aussi souvent en face de sites - y compris (surtout ?) d'administrations - en panne !

;-)

avatar JustThink | 

Je suis pour un nouveau CMS qui utilisera complètement NodeJS.

Wordpress doit évoluer. Sa force aujourd'hui sont :
- des templates en pagailles
- des milliers de plugins gratuits et payants.
- une documentation très riche.

Malheureusement, aujourd'hui cet outil est devenu lourd. WPML est très bien mais le site devient si lourd qu'on a un site trop long.

Il faut tout reprendre à la base. Et NodeJS est le futur. L'ajax c'était cool îl y a 6 ans tout comme flash était cool en 2004.
Faut savoir évoluer. Et aujourd'hui, c'est devenu plus pertinent de faire un site from scratch en utilisant quelques frameworks, que d'utiliser le cœur de wordpress.

J'ai toujours trouvé wordpress peu ludique comparé à du magento.

Donc, oui pour un nouveau CMS, conçu pour bâtir de vraie sites, multi langues, avec un budypress intégré etc etc.

avatar Meaz | 

Je ne vois pas bien le rapport entre Node.js, l'Ajax et Flash. Si vous voulez parler de l'aspect web-app de Calypso, celui-ci n'est obtenu que grace à du JavaScript exécuté en front. Le serveur, et donc Node.js ou PHP, n'a que très peu de chose à voir là-dedans.

avatar JustThink | 

@Meaz :
Reprenez votre souffle et réexprimez vous.

avatar Meaz | 

Il faut tout reprendre à la base. Et NodeJS est le futur. L'ajax c'était cool îl y a 6 ans tout comme flash était cool en 2004.

Quel est le rapport entre Node.js, l'Ajax et Flash ?

avatar JustThink | 

@Meaz :
Le rapport avec Flash.

Il n'y a pas de rapport direct. On parle d'évolution des techno. Flash a cartonné durant une période. Aujourd'hui presque plus aucun dev ne fait du flash...

Il ne faut pas rester attaché au passé et penser à l'avenir.

Je ne dis pas que PHP est mort. Javascript par exemple a retrouver de la vie grâce à NodeJS.

Mais faire un site entièrement avec NodeJS à l'aide d' Express et utiliser Parse en backoffice me va très bien. Et je rêve d'un CMS qui utiliserait toutes ces nouvelles techno pour gagner du temps

avatar Meaz | 

Déjà, merci de revoir la définition de back office.

Ensuite, comme vous l'indiquez très bien, il n'y a pas de rapport en Node.js et l'AJAX.
Les deux technologies sont souvent utilisées de concert. L'AJAX ne va pas disparaitre et est toujours "cool".

Enfin, bon courage dans le development de votre site.

avatar JustThink | 

@Meaz :
Dans l'état actuel des choses, l'AJAX utilise principalement des requêtes asynchrones en Javascript pour interroger le serveur en PHP.

Avec NodeJS, c'est bien plus simple et bien plus rapide.

Merci bien pour vos encouragements et bon courage à vous aussi :)

avatar Lemmings | 

Nodejs est un serveur qui fonctionne avec le language javascript.
L'ajax est une méthode de communication entre le client web (le navigateur) et le serveur, après le chargement de la page HTML initial.
Les deux ne sont pas opposés.

avatar Meaz | 

@JustThink

En quoi Node.js est bien plus simple et bien plus rapide que PHP + AJAX ?
Savez vous que l'on peut "rendre" une page sans AJAX avec PHP, tout comme on peut utiliser Node.js + AJAX. L'AJAX n'a strictement rien à faire là.
J'aimerais bien comprendre le fond de votre pensée. Si pensée il y a.

avatar JustThink | 

@Meaz :
backEnd. ok, soit.

avatar JustThink | 

@JustThink :

avatar Un Type Vrai | 

Ca existe, mais c'est cantonné (et ça restera cantonner) à du micro CMS type blogging.

Quand au succès de Wordpress, c'est (comme d'habitude) absoluement pas lié à l'exploit technique ou à la beauté du code ou à la modernité du truc.

Il existait des CMS bien meilleur et il existe des CMS bien meilleur qui n'ont pas l'audiance de Wordpress.
Qui se souvient de Dotclear ?
Si on regarde le code PHP de Dotclear et celui de Wordpress, on a l'impression que le vieux machin obsolète c'est Wordpress...

Bref, le discours "techno = beauté = succès" est juste TOTALEMENT faux.

avatar JustThink | 

@Meaz :
As-tu déjà utilisé NodeJS ? Car le rapport avec PHP et l'ajax est vite compris. Il suffit de voir les temps de requêtes Client > Serveur (et inversement) et on comprend très vite l'intérêt de NodeJS

avatar Meaz | 

Mais comment croyez vous que la nouvelle interface Calypso communique avec le serveur ?
Ah oui, des requêtes AJAX.

avatar iPal | 

@JustThink :
Idem mais je remplacerais "NodeJS" par Ruby, Rails et Ember.

avatar JustThink | 

@iPal :
Je ne les maîtrise pas malheureusement. Mais je suis tout ouïe si tu me citer quelques avantages.

À vrai dire, ces dernières années je me suis plus focalisé sur le développement mobile en natif :)

avatar BabyAzerty | 

L'ajax c'était cool il y a 6 ans ?

Oh oui :333 Encore un commentaire MacG comme je les aime.

Ca ose tout et c'est à ça qu'on les reconnait ;)

avatar Almux | 

Cela fait quelques temps que j'essaye de me mettre à Wordpress… Mais, ayant l'habitude de faire ma p'tite cuisine à la main, j'éprouve une affreuse difficulté à utiliser WP.
Comment faire aisément un site sans blog (ni aspect blog), sur mesure et vraiment personnalisé sur la base d'un CMS? Pour moi, cela reste un mystère total!… :.(

avatar SartMatt | 

C'est pas excessivement compliqué côté WP de faire un site qui ne fasse pas blog. Il faut mettre les contenus dans des pages (et non des articles), définir une des pages comme page d'accueil par défaut (au lieu de la liste des derniers articles), et faire un petit menu et des liens entres les pages. Tout ça tu peux le faire avec une install de WP de base, sans aucune extension et avec les thèmes par défaut. Si tu veux plus de détails sur la marché à suivre, tu peux me contacter par MP sur le site d'à côté.

Après, faire ton propre thème, c'est un peu plus compliqué, mais c'est pas insurmontable (j'ai jamais pratiqué, par flemme et parce que je suis une buse en design, mais j'ai regardé comment fonctionne le moteur de thèmes de WP, ça a l'air assez clair et souple).

Voilà un exemple d'un site fait par un copain (pas spécialiste web à la base, mais c'est pas lui qui a fait le thème par contre), qui fait pas du tout blog, et qui est pourtant bien géré avec WordPress : http://centaures-footus.com/

avatar macinoe | 

Salut SartMatt,

Tu peux suggérer à ton copain de passer l'image de fond de png à jpg en la compressant un peu.
Ca l'a fera passer de 3.2 Mo à moins de 200 Ko sans perte de qualité notable.

Je ne suis pas un extrémiste de l'optimisation, mais quand tu vois qu'il a pris soin d'utiliser des script js minimisé pour gagner quelques octets, je trouve que c'est vraiment bête de perdre quelques Mo à cause d'une image alors que ça ne se justifie pas du tout.

avatar SartMatt | 

En effet ^^ Je le préviens.

avatar Almux | 

Merci StarMatt,
J'ai quelques bricoles en cours, mais, je te contacterai avec plaisir d'ici peu.

avatar nova313 | 

Je tiens à préciser qu'aucun hébergeur ne propose de node.js sur des mutualisés, la faute à sa structure. En tant que personne qui a lancé des sites WP pour des entreprises, je peut vous dire que tout le monde faisait avec du mutualisés au début, et si les besoins évolués, on passe sur du dédié.

En ce qui me concerne, moi qui bosse avec node.js, je dois bien avouer qu'il a de nombreuses atouts. Mais je n'aime pas la communauté, car avant node.js, on boudait le JS car le code était moche, et moins clair que les nouveaux langages qui arrivaient sur le marché. Il a suffit que node.js arrive (avec angularJS), pour que beaucoup de gens qui ne l'aimait pas, ce mettent à ne juré que par lui. Mais ceci est mon point de vue.

Pour en revenir à WP, cette nouvelle administration pose un gros problèmes pour les plugins, car si WP est autant populaire, c'est notamment grâce à sa communauté. Je ne sait pas trop comment les plugins sont gérés, mais c'est pas pour demain, qu'on adoptera une application qui permet de contrôler un site, alors que le dashboard est amplement suffisant pour les besoins de 98% des gens (j'hésite à mettre 99% ;)).

avatar Lemmings | 

"Pour communiquer avec la base de données SQL qui est toujours essentielle, cette interface exploite l’API REST qui permet de lire et écrire des informations en JSON, sans passer par du PHP"

Heu... et elle fonctionne comment à votre avis l'API REST ? En PHP... N'importe quoi cet article :/

avatar Tibus | 

L'api rest fonctionne avec du node-js du coup... et plus du PHP... n'importe quoi ce commentaire ;D

En gros, toute la partie backend de wordpress est remplacé par NodeJs si j'ai bien compris... ce qui fait que oui, plus de php du tout et que tout ce que faisait PHP à été remplacé par NodeJs (et c'est clairement pas plus mal ;D)

avatar Lemmings | 

@Tibus : quand on sait pas, on dit pas.

L'API REST de Wordpress, fournie par l'extension JetPack est codée intégralement en PHP... Tout comme les accès BDD et tout le reste.

Sinon comment veux-tu que cela fonctionne dès maintenant sur TOUS les wordpress installés sur des serveurs PHP qui n'ont pas Nodejs... ?

ps : mon serveur fait tourner plusieurs wordpress, ont l'extension Jetpack et j'ai accès à l'interface Calypso via l'API sans avoir installé Nodejs où que ce soit.

avatar Lemmings | 

Pour faire plus clair :

Le serveur PHP sert à générer les pages "front" du site, le BO historique et tout les plugins.
Le serveur PHP sert à générer l'API REST.
NodeJS sert à se connecter à l'API REST d'un wordpress (ou plusieurs) et faire des appels. C'est donc dans ce sens là un client.
NodeJS sert aussi à alimenter l'interface html/JS faite en react qui est embarquée dans l'application Mac ou disponible sur le net directement.

En gros :

PHP => API REST => NodeJS => Calypso

Pages

CONNEXION UTILISATEUR