Peux-tu te présenter en quelques mots ?

En 1996, avant même d'avoir une connexion à Internet, j'ai fait mes premières pages HTML.

J'ai trouvé ça génial et j'ai fini par en faire mon métier.

Parallèlement à mon travail, j'ai participé à de nombreux projets gravitant autour du libre et des standards du web ; j'ai participé à la fondation de l'APINC, d'OpenWeb et de Mozilla Europe.

Un jour il m'est venu l'idée de diffuser mon outil de blog et Dotclear est né.

Aujourd'hui, j'essaie de m'impliquer du mieux que je peux dans la communauté francophone Django.

C'est très agréable et plein de gens biens.

Quand as-tu découvert PHP ?

En 2000, pour mon premier boulot. Je m'occupais, avec d'autres collègues, d'un site de commerce électronique assez conséquent.

On bossait sur une base de données Oracle, et J'ai appris énormément de choses à cette époque.

À tes débuts, qu'est ce qui t'as séduit dans le langage ?

La courbe d'apprentissage, car on pouvait faire des choses très rapidement sans trop se compliquer l'existence.

Et la documentation bien sûr, puisque PHP disposait et dispose toujours d'une des meilleures documentation pour un langage de programmation.

Ça permet de vite trouver une réponse à un problème et ne pas rester coincé trop longtemps.

Et au fil de ton expérience, qu'est ce qui t'as le plus rebuté ?

J'ai commencé à atteindre des limites en diffusant Dotclear.

Maintenir un outil qui doit fonctionner sur le plus grand nombre de configurations possibles est complètement différent d'un job où tu maîtrises la configuration de ton serveur.

Je me suis retrouvé devant des problèmes bien agaçants à cause de la directive register_globals, des magic quotes et des différentes versions de PHP qui introduisent toujours des régressions.

C'est usant et ça grignote le temps qu'on voudrait consacrer aux nouvelles fonctionnalités.

Il y a aussi les bugs magiques.

Tous les développeurs qui ont fait du PHP en ont un sur leur tableau de chasse.

Le mien, c'était que 'inf' == 'inf' renvoyait faux...

Et puis, il y a ce côté brouillon du langage.

Par exemple, quand PHP 5 est sorti, j'étais enthousiaste à l'idée d'avoir enfin des exceptions.

Et puis j'ai déchanté en voyant que les erreurs de la plupart des fonctions de PHP n'étaient pas devenues des exceptions.

Ça t'oblige à gérer des cas particuliers dans tous les sens et c'est vraiment fatiguant.

Je ne parle même pas de l'absence totale de nomenclature pour nommer les fonctions.

Tu n'as jamais eu envie de t'investir dans le développement du langage pour influencer son évolution dans ton sens ?

Je n'y ai jamais vraiment pensé et je n'ai jamais appris le C.

En plus, je ne suis que développeur web.

J'aurais pu participer d'autres façons mais je n'ai jamais vraiment pris le temps.

Utilises-tu encore PHP actuellement ?

Non, je n'ai plus écrit une ligne de PHP depuis avril 2009.

En voyant les annonces de PHP 5.3, j'ai eu envie de passer à autre chose.

Certains choix, et les régressions associées, ne me convenaient pas.

J'ai eu la chance de pouvoir commencer un projet en choisissant l'outil et j'ai décidé de le faire en Django, un framework écrit en Python.

Beaucoup considére que PHP 5.3 va dans le bon sens, qu'est ce qui t'as gêné avec cette version ?

On peut déjà évoquer la syntaxe des espaces de nom.

Je me souviens aussi avoir lu une présentation du format d'archive.

Ça a été un peu le signal.

Pourquoi ne pas avoir choisi zip, comme Java (jar), Mozilla (xpi) ou Python (egg) ?

Je trouve aussi très contradictoire de dire qu'un langage qui implémente l'instruction goto va dans le bon sens.

À moins qu'on trouve qu'encourager les mauvaises pratiques constitue un progrès...

Plus globalement, aller dans le bon sens aurait été de virer les boulets comme register_globals, le safe mode ou, le pire de tous, open_basedir.

Je considère ce dernier, avec le safe mode, comme le pire, car il donne une fausse impression de sécurité.

Il y a un nombre considérables d'hébergeurs qui pensent qu'open_basedir est suffisant pour assurer la sécurité de leurs utilisateurs.

PHP 5.3 aurait mérité d'être un nettoyage en profondeur de ces comportements, plutôt qu'un empilement de fonctionnalités au design douteux.

Pourquoi être passé à Python ?

Mon premier contact avec Python remonte à 2004, quand j'ai installé Trac pour la première fois.

Je me suis rapidement trouvé à faire des extensions et des macros.

Je trouvais ça assez marrant.

En 2009, j'habitais à Bruxelles et un ami est venu le temps du FOSDEM.

On a un peu discuté de Django et l'idée a continué à faire son chemin.

Python est un langage de programmation parfaitement cohérent et bien pensé.

Il dispose d'une syntaxe super simple et lisible, ce qui signifie que comprendre le code de quelqu'un d'autre ne demande pas d'efforts surnaturels.

Les erreurs ne sont que des exceptions.

Et, le plus important à mes yeux, la bibliothèque standard est immense.

J'ai passé des années à refaire du code que PHP n'intègre qu'en module pas forcément installé chez tous les hébergeurs.

J'ai même du refaire des classes pour gérer les fichiers zip !

Quand tu apprends ton métier, c'est assez amusant de refaire des classes pour faire proprement du HTTP, envoyer et lire des mails, faire du NNTP, etc.

Par la suite, on aimerait juste pouvoir faire son boulot.

Quand tu découvres Python, tu trouves un client et un serveur HTTP, un parseur de mail, un ensemble complet de gestion des processus et des threads, etc.

Et ce qu'on ne trouve pas par défaut, on le trouvera sur PyPI, dont la qualité et la facilité d'utilisation dépasse largement ce qui est fait sur PEAR ou PECL.

Point extrêmement agréable : à quelques détails près, Python installe toute sa librairie standard par défaut.

Il n'y pas la tonne d'options de compilation de PHP qui font qu'il existe quasiment une version par serveur.

Avec Python, tu t'intéresses au numéro de version et c'est à peu près tout.

Enfin, la fameuse bibliothèque standard est, en grande partie, écrite en ... Python.

Un jour que j'étais coincé en écrivant un petit serveur, j'ai simplement ouvert le code de SocketServer pour comprendre comment résoudre mon problème.

En fait, les développeurs PHP devraient au moins apprendre à lire Python pour avoir des bases d'inspiration quand ils doivent refaire ce que le langage n'a pas jugé bon de leur fournir ;).

Y'aurait-il quelque chose qui pourrait te faire revenir à PHP ?

Cette question est étrange.

Un langage n'est qu'un outil.

J'essaie toujours d'utiliser l'outil le plus pratique pour une tâche donnée.

Si un jour PHP se révèle le choix le plus pertinent, je l'utiliserai.

Si c'est pour faire du web, il va falloir que les améliorations soient vraiment significatives.

Aucun regret d'avoir mis au panier, en quelque sorte, dix ans d'expérience PHP ?

Aucun car je ne vois pas les choses de cette manière.

Je n'ai pas mis au panier mon expérience de développement web, ni la somme de connaissances acquise.

Mon métier a toujours été le web, pas PHP ou Python.

Quand on fait du web, le langage et éventuellement, le framework utilisés sur le serveur ont leur importance mais c'est loin d'être l'essentiel.

On ne fait pas du web si on ne connaît pas HTTP, si on n'a pas assimilé quelques RFC importantes comme SMTP ou encore si on ne sait pas faire un minimum d'administration système.

Je n'ai pas perdu cette expérience et elle m'a été très utile quand j'ai choisi de changer mes outils.

Es-tu optimiste quant à l'avenir de PHP ?

Malgré tout ce que je viens d'écrire je pense quand même que PHP n'est pas un mauvais outil.

Il fait son job, plus ou moins bien, mais il le fait.

Maintenant, dans les interviews que tu as publiés, je lis une désaffection croissante vis à vis de PHP.

Qu'elle vienne de développeurs tous plus brillants les uns que les autres est, à mon sens, un signe assez clair.

PHP a évidemment un avenir, ne serait-ce que dans la maintenance des sites existants.

Ceux qui en ont fait leur métier vont pouvoir continuer encore pas mal d'années à avoir des clients, c'est certain.

Je ne sais pas s'ils vont aimer ce qu'ils font mais au moins ils pourront payer leur loyer.

Maintenant, tous ceux qui ont envie d'un peu plus qu'un job alimentaire et qui ont besoin de trouver un intérêt dans la manière de faire leur boulot se tournent vers d'autres options telles que Python ou Ruby.

PHP ne va pas mourir demain mais est devenu un choix parmi des alternatives crédibles dans tous les langages et sur toutes les plate-formes.

Bien plus qu'il y a dix ans, on a aujourd'hui des options viables pour répondre à des besoins précis.

C'est quand même génial, non :-) ?