Peux-tu te présenter en quelques mots ?

J’ai découvert la programmation il y a une grosse douzaine d’années, principalement en jouant avec le langage C, mais aussi en manipulant d’autres langages, comme Perl en parallèle à mes études ou PHP lorsque j’ai commencé à vouloir faire du web — après tout, c’était le langage accessible aux débutants.

Depuis mon arrivée dans la vie professionnelle il y a bientôt 8 ans, je suis développeur Web et principalement PHP.

Que ce soit dans un contexte « perso » ou « pro » (j’ai bossé en SSII, puis chez un éditeur, et plus récemment en start-up), j’ai parfois vu (et fait, devrais-je dire) des trucs absolument horribles, mais j’ai aussi la chance d’intervenir sur des projets extrêmement enrichissants et de rencontrer quantité de gens intéressants.

Que penses-tu de l’évolution de PHP depuis l’abandon du développement de PHP 6 ?

L’idée principale derrière PHP 6, le full-unicode, était intéressante du point de vue de l’utilisateur, et elle aurait sans doute apporté une image de maturité au langage, le rendant plus à même de répondre à certains problèmes — que je rencontrais moi-même alors que PHP 6 était encore en cours de développement.

L’abandon du développement de cette version, qui avait demandé pas mal de travail (dans les 60 % des fonctions de PHP avaient été vérifiées/modifiées pour travailler sur des caractères et plus des octets), m’a pendant un temps semblé être une sorte d’aveux d’échec — mais je dois avouer que j’étais à l’époque un peu junior et que je n’avais pas la moindre idée de ce que représentait et signifiait le développement de PHP !

Depuis, PHP 5.3 est sorti en intégrant une partie des nouveautés qui étaient initialement prévues pour PHP 6, notamment les espaces de noms et ext/intl. PHP 5.4 a suivi rapidement en apportant quelques petites fonctionnalités complémentaires. Cette année, la version 5.5 est devenue la dernière version stable du langage, avec à nouveau quelques améliorations. Et PHP 5.6 commence à se profiler à l’horizon et il sortira peut-être pour l’été ou le second semestre de l’année prochaine, une fois encore avec son lot de nouveautés plus ou moins importantes.

Une partie de ces nouveautés ont pour but de rendre le langage plus consistant, d’autres ont eu pour objectif de faire de lui une solution plus à même de répondre aux besoins inhérents à la mise en place de projets majeurs, et enfin d’autres ont permis d’en faire un langage plus complet, entraînant par là un gain de temps lors du développement.

L’évolution de PHP depuis l’abandon de PHP 6 me paraît donc plutôt bonne.

Du point de vue de l’utilisateur, notons aussi que ces versions qui se succèdent au rythme d’environ une par an sont intéressantes : elles permettent d’obtenir plus rapidement les nouveautés développées, tout en limitant les risques à chaque montée de version, puisque celles-ci sont moins éloignées les unes des autres.

Avec le recul, penses-tu que la communauté des contributeurs a tiré toutes les leçons des erreurs commises avec PHP 6 ?

Plutôt que de rester bloqués sur une refonte majeure qui n’avançait plus, les développeurs de PHP ont admis qu’ils étaient partis sur une mauvaise piste et ont su retourner la tendance, pour livrer plus fréquemment des évolutions moins contraignantes pour leurs utilisateurs. Pour moi, c’est clairement une bonne chose, et la communauté a tiré des leçons de l’échec de PHP 6.

En parallèle, le processus de développement de PHP s’est lui-même amélioré : d’un mode plutôt cow-boy où chacun tirait la couverture dans le sens qui l’arrangeait, on est arrivé à un principe de fonctionnement plus structuré, notamment par le biais des RFC qui sont désormais obligatoires pour chaque modification non mineure.

Ces RFC formalisent les évolutions à apporter au langage, ce qui leur donne de la visibilité et permet aussi un choix plus éclairé quant à la décision de les inclure ou non. Elles permettent aussi à ceux qui essayent de participer au développement de PHP depuis peu de se faire entendre plus facilement, en limitant le pouvoir donné aux plus anciens, mettant tout le monde sur un même pied d’égalité.

Bien sûr, tout n’est pas parfait, et c’est encore parfois la guerre des étoiles sur internals@... Mais, de mon point de vue, il y a eu un réel progrès, qu’il faut encourager et poursuivre.

PHP évolue aujourd’hui beaucoup plus vite que par le passé, penses-tu que ce soit une bonne chose ?

Absolument !

Du point de vue d’un développeur travaillant quotidiennement avec PHP, j’aime pouvoir profiter rapidement des nouveautés offertes par les nouvelles versions n’apportant qu’une quantité raisonnable de changements (ce qui facilite grandement la montée de version), sans avoir à attendre plusieurs années une mise à jour big-bang qui demandera des semaines d’adaptation pour chacun de mes projets.

Le cycle de releases plus court mis en place depuis PHP 5.3/5.4 permet aussi aux utilisateurs de se sentir plus proches des développeurs, et vice-versa. En effet, si les nouveautés qui sont aujourd’hui en train d’être discutées ciblent une version prévue pour dans moins d’un an, je vais me sentir infiniment plus concerné que si elles sont prévues pour une version tellement lointaine que personne ne sait prédire sa sortie !

Cela dit, ces versions mineures qui se succèdent signifient aussi qu’il n’est pas possible d’apporter certains types d’évolutions au langage, puisque les cassures introduites entre versions doivent être limitées autant que faire se peut. Viendra donc un moment où il sera certainement nécessaire de repartir sur l’idée d’une nouvelle version majeure, qui pourrait pendant quelque temps être développée en parallèle d’une future version 5.x.

De nouveaux langages comme Go, Dart, Node.js, Scala ou Clojure sont venus s’ajouter à la liste des concurrents de PHP au côté de Ruby et python et ils semblent avoir un gros potentiel. En conséquence, penses-tu que PHP soit encore un bon choix actuellement pour commencer un projet ?

De quel type de projet parles-tu ? De quelle taille ? Quelles compétences ont les développeurs de ton équipe ? Et celles des autres équipes qui pourraient un jour être amenées à intervenir sur ce projet ? Et au niveau système et exploitation ? Est-ce que ces développements vont être fait en interne, ou voudras-tu en sous-traiter une partie ? Qui assurera la maintenance ? Est-ce qu’il s’agit de développer un logiciel complet from -scratch, ou est-ce qu’il est envisageable de partir d’un base existante ? As-tu déjà des composants qui pourraient être réutilisés, et en quel langage ? Est-ce que ce projet devra s’interconnecter avec d’autres ?

Bref, tu l’auras compris, sans ces informations, je ne saurais pas t’indiquer le langage ou la brique technique à utiliser pour ton projet !

Par contre, je peux affirmer sans la moindre hésitation qu’il y a des cas où PHP est tout à fait adapté. Parfois, ce sera pour un projet complet, ou alors seulement pour des composants de celui-ci, et d’autres fois, il ne le sera que pour les utilitaires gravitant autour de ta plate-forme, ...

Mais, contrairement à ce que certains crient ici et là, PHP n’est pas un mauvais langage : comme d’autres, il n’est certes pas parfait, mais il est éprouvé, répond à une part non négligeable des besoins de projets web, dispose d’une large communauté...

Bien sûr, il ne faut pas non plus croire que PHP est et sera toujours la réponse à tout : à chacun d’entre nous de faire preuve de curiosité et d’explorer d’autres langages et environnements en retenant qu’il n’est pas toujours souhaitable de choisir le dernier outil expérimental à la mode pour un projet d’envergure qui devra être maintenu, probablement par d’autres développeurs et pendant plusieurs années, même lorsque tu seras en vacances ou après que tu aura cessé de bosser dessus ;-)

Quelles ont été pour toi les évolutions les plus significatives dans l’univers de PHP depuis 2010 ?

Je pense que cela peut se résumer en quelques mots : une plus grande volonté de travailler les uns avec les autres et d’améliorer la qualité de l’ensemble.

Cette idée se manifeste en premier lieu par la mise en place de PSR-0 et son respect par nombre de concepteurs de frameworks et de développeurs de bibliothèques. En allant plus loin, elle a encouragé la réutilisation de composants entre projets, qui s’est elle-même retrouvée grandement facilitée par l’arrivée de composer et son indéniable succès.

Cette réutilisation de composants entre projets va même plus loin que PHP, puisqu’il est désormais normal d’utiliser PHP en combinaison avec d’autres briques techniques, ne serait-ce qu’avec du javascript, pour mettre en place une application complète côté client, allant jusqu’à des cas où le rôle du serveur peut se limiter à fournir une API.

En parallèle, j’ai le sentiment que PHP et une partie importante de sa communauté deviennent chaque jour moins orientés bidouille, et visent de plus en plus à réaliser des développements de qualité. On le voit par exemple en constatant la part croissante de projets mettant en place tests automatisés et intégration continue (pour ne citer que ces deux pratiques), alors qu’il y a quelques années ces deux notions n’étaient trop souvent rien de plus que de doux rêves.

En pensant un peu plus à ce qu’il s’est passé au niveau de PHP en lui-même, je ne peux que me réjouir de l’abandon de certaines horreurs comme les magic quotes ou register_globals, de l’ajout de fonctionnalités orientées vers la simplification et la sécurité, comme par exemple l’API de hachage de mots de passe arrivée avec PHP 5.5, ou des évolutions comme les Traits et les Generators qui visent les développeurs plus expérimentés.

De quoi aurais-tu besoin aujourd’hui dans PHP dont tu ne disposes pas ?

J’aurais besoin que les versions récentes de PHP se répandent plus rapidement : PHP 5.2 (qui n’est absolument plus maintenue, et n’est de toute façon pas supportée par les outils et bibliothèques que j’utilise tous les jours) est encore trop utilisé, même si PHP 5.3 s’impose tout de même... Mais il reste encore trop rare de voir un hébergement en PHP 5.4, et je ne parlerai même pas de PHP 5.5. Cela limite nécessairement les fonctionnalités que nous pouvons utiliser dans nos applications et bibliothèques, du moins si nous voulons les rendre accessibles au plus grand nombre.

Le cycle de releases plus fréquentes et moins impactantes mis en place depuis quelques versions est un bon pas de l’équipe de développement de PHP à ce niveau, puisque les montées de versions sont plus faciles et moins risquées. Mais, comme tu peux t’en douter, les choses ne vont jamais assez vite au goût de ceux qui ont envie de profiter des dernières nouveautés.

Au vu de tes réponses précédentes, est-il possible de dire que tu crois toujours en l’avenir du langage ?

Bien sûr que oui : je ne serais pas là aujourd’hui, sinon ;-)

Voilà en gros 10 ans que PHP est le langage du web. Malgré son image de langage accessible et permissif, il a réussi à prouver qu’il permettait de construire des applications fiables et de réaliser des développements de qualité. Les évolutions mises en place ces dernières années, que ce soit au niveau de PHP lui-même ou de son écosystème, vont clairement dans le bon sens. Par contre, il faut impérativement qu’elles continuent, pour que PHP reste un outil adapté, sans recommencer à stagner sur ses lauriers comme il y a quelques années.

Bien entendu, regarder ailleurs ne fait pas de mal non plus : cela fait de chacun d’entre nous de meilleurs développeurs, quel que soit le langage, et nos projets ne se limitent de toute manière plus qu’à une unique brique technique.

PS : Merci à Sarah de m'avoir suggéré d'interviewer Pascal, c’était vraiment une très bonne idée.