Peux-tu te présenter en quelques mots ?

Eric Daspet, Consultant Web, PHP, Qualité, Performance et Méthodes agiles.

Pour dépasser les quelques mots, PHP est le langage avec lequel j'ai commencé à m'amuser au niveau personnel. Je suis l'activité depuis les premières versions et, forcément, j'ai continué à développer ces compétences professionnellement, tout d’abord en SSII puis à Yahoo!.

J'ai eu l'occasion de co-écrire le pavé PHP 5 avancé, de faire du développement, de l'expertise, de la gestion de projet, de l'architecture, du conseil, des conférences, sur PHP et sur tout ce qu'il y a autour ou à côté.

Depuis quelques temps, j'ai aussi une autre casquette intitulée front-end web.

Je m'intéresse à des technologies comme html, css, javascript, http, mais aussi aux questions relatives à la qualité des sites web, à la valorisation du métier, aux méthodes et à l'agilité, ainsi qu'à la performance.

C’est entre autres ce qui m'a amené à co-fonder les conférences Paris-Web et à commencer la rédaction d’un livre sur la performance des sites web.

Que représente pour toi l'arrêt du développement de PHP 6 ?

La décision en elle-même est bonne : quand ça dure si longtemps et que ça ne bouge pas, il faut être humble et accepter d'arrêter pour repartir correctement. Maintenant le fait que PHP 6 n'ait pas réussi est assez symptomatique de ce qu'il se passe dans l'équipe interne de PHP.

Le langage s'est développé un peu n'importe comment depuis les débuts de PHP 5, et l’échec de PHP 6 en est une des conséquences, et peut être pas la pire.

Le pire, c’est peut être justement que les œillères et les boules quiès d’une partie de l’équipe au coeur de PHP entraîne jour après jour le désamour entre les utilisateurs et le langage.

Les expérimentés et passionnés louchent de plus en plus vers Ruby et Python.

On peut craindre que PHP revienne à son image ancienne de mauvais langage pour mauvais développeur si cette tendance se confirme.

Ce qui est arrivé avec PHP 6 peut mettre en branle cette tendance mais en est aussi déjà un peu une conséquence.

S’il y avait eu plus de dynamisme, les choses se seraient peut être passées autrement.

Maintenant, ce peut être aussi une manière de rebondir et de se focaliser sur une avancée plus progressive.

C’est tout ce que je souhaite.

Ça en prends en partie la direction, mais rien que l'abandon du support Unicode va faire souffrir de nombreuses équipes web.

Je ne prendrai pas le risque d'être trop optimiste même si je suis content de revoir des avancées.

En conséquence, quelles sont tes attentes vis à vis de la prochaine version ?

Clairement j'ai besoin d'un vrai support Unicode. Je n'ai pas forcément besoin qu'il soit natif dans les chaînes de caractères, mais que les fonctions de base gère les caractères sur plusieurs octets, les collations, les comparaisons, la normalisation, etc.

Dans le registre réaliste j'ai longtemps attendu les espaces de nom, les fonctions anonymes et les fermetures lexicales.

Il y a probablement encore des améliorations possibles. Je suis convaincu qu'il faut aussi apporter une vrai dimension dynamique à PHP.

Cela passe par de vrais attributs virtuels, la possibilité de modifier une classe existante, un système de mixin bien fait.

J'attends aussi l'abandon des anciennes directives de configuration qui ont pénalisé des années le langage, un PDO aux hormones avec une couche d'abstraction intégrée, et une intégration par défaut d'APC.

Dans le registre plus idéaliste j'aimerai un vrai modèle objet complet pour le cœur du langage, remettre une cohérence dans tout le jeu de fonctions disparates et désorganisées, ainsi qu’une refonte totale du système d'erreur et un système de persistance pour éviter de tout recharger / ré-exécuter à chaque requête au lieu de la béquille qu'est APC.

Pour l'instant on se refuse à faire de gros changements à cause de la sacro-sainte compatibilité arrière, tout en acceptant des petites modifications qui amènent à presque chaque version une rupture de cette dernière sur un ou deux détails.

Le résultat est qu'une migration demande toujours une vérification mais que le développeur n'a pas les améliorations qu'il est en droit d'attendre.

Il faut accepter d'évoluer, et ça ça n'a pas l'air gagné.

Mais en fait, il faudrait surtout que PHP devienne un langage avec lequel on ait envie de développer.

Pour l'instant c'est surtout l'outil qui fonctionne avec lequel on reste pour plein de raisons très sérieuses, mais aucune liée au cœur.

Python, Ruby et quelques autres ont des leçons à donner sur ce point, et je ne parle pas (que) de la syntaxe.

Fun, élégance et passion sont indispensables.

Penses-tu que la communauté des contributeurs a tiré les leçons de PHP 6 ?

Je ne pense pas que les contributeurs aient tiré les leçons.

Je ne pense d’ailleurs pas que, dans le cas de PHP, associer communauté et contributeurs dans la même phrase soit pertinent.

C’est peut être justement là le problème.

D'un côté, on se remet à faire évoluer le langage et à un peu plus écouter les demandes des développeurs.

De l'autre, passé les quelques écoutes qui ont suivi l’abandon de PHP 6, je n'ai pas l'impression que l'équipe du coeur ait fondamentalement changé de fonctionnement.

Ce qui vient de l'extérieur reste encore souvent rejeté avec dédain, voire agressivité si c'est une idée et pas du code.

En parallèle ce qui est fait par le coeur de ces contributeurs est intégré parfois sans réflexion publique ou réel échange.

Du coup le résultat est parfois bancal.

J'aime bien la devise smart guys, smart mistakes et elle s'applique très bien ici.

Les contributeurs sont compétents, intelligents, et ont fait de nombreuses choses pour lesquelles on doit les remercier.

Mais ils ne sont que des gens et à fonctionner en semi-dictature élitiste, ils font des erreurs comme tout le monde.

Maintenant, je ne suis plus la liste interne depuis quelques temps, et il est donc possible que ça ait changé.

Je n'ai vu aucun commentaire public en ce sens cependant.

On entend beaucoup parler de la professionnalisation de PHP actuellement, quel est ton avis sur le sujet ?

Je déteste ça.

Je me suis toujours battu contre ceux qui se sentaient obligés d'ajouter professionnel derrière PHP ou derrière leur titre.

Qu'est ce que la professionnalisation ?

Au sens propre, c'est en vivre et se faire payer.

Ça a été un point qu'on a poussé et promu il y a longtemps, et peut être une des raisons d'être de l'AFUP à une époque, mais il n'y a plus rien à prouver de ce côté là maintenant.

Derrière ce terme, il y a surtout chez beaucoup de gens une échelle de valeur que je trouve détestable et très fausse.

C'est un refuge pour ceux qui ne s'attachent pas aux compétences et à la valeur technique.

La plupart des passionnés ont une valeur technique dix fois supérieure au développeur professionnel moyen.

C'est d'autant plus agaçant que les meilleures compétences et les meilleures réalisations, je les ai vu chez des gens hors contexte professionnel, qui jouent avec PHP parce qu'ils aiment ça et parce qu'ils sont passionnés.

Au niveau professionnel, les besoins sont étonnamment beaucoup plus basiques.

Je ne dis pas que ce qui est réalisé n'est pas critique avec des millions d'utilisateurs, mais il y a moins d'innovation et de technicité, simplement parce qu'on cible la rentabilité et que ça veut rarement dire faire des choses élégantes, complexes et de qualité.

Pour rappel, le langage le plus professionnel est par la force des choses celui qui peut être utilisé par des gens incompétents avec le moins de dégâts possible.

C'est dans cet esprit qu'en java on a un contrôle des types fort, des classes statiques, aucune surcharge d'opérateur, pas d'héritage multiple ou de mixin, etc.

Le milieu professionnel c’est (malheureusement) quelques experts avec des légions d’ouvriers du développements à qui on demande des exécutions au ras des pâquerettes.

Étonnamment, les gens utilisent le terme professionnel pour décrire exactement le contraire...

Je ne suis même pas certain que ce terme puisse permettre de se valoriser pour une embauche et faire la différence avec ceux qui bidouillent un phpbb sans compétences : Le terme étant vide, je ne vois pas quelle valorisation on peut lui donner.

Dans le cadre d’un recrutement, quelqu’un qui insiste pour se qualifier de professionnel m’inspire même plutôt de la méfiance car je me demande ce qu’il tente de cacher.

Si vous êtes compétent et passionné, vous n’avez pas besoin de ce cache-misère.

Parlons de passion, de valeur technique, d'amusement, car c'est ça qui fait un bon langage, y compris pour des résultats sérieux, complexes et solides.

Le développement de prochaine version va-t-il dans le sens de cette professionnalisation ?

Après ce que je viens de dire, je ne l'espère pas, mais en fait, il y va un peu.

C'est ainsi qu'on a fait passé les interfaces, les contrôles statiques de type et ce genre de fonctionnalités avant les fonctions anonymes et les espaces de noms.

En gros, on a amélioré le côté professionnel avec des syntaxes qui apportent un meilleur contrôle sur les mauvais développements, mais qui n'apportent rien de plus en terme de possibilités.

On se rapprochait de Java au lieu de se rapprocher de Python ou de développer un langage avec ses propres forces.

Mais on y va aussi en positif, car les frameworks se développent dans le bon sens et apportent des squelettes solides qui permettent de développer plus rapidement, sur une base commune.

Pour les entreprises, c'est une valeur ajoutée indéniable.

Commencer un développement PHP en entreprise sur autre chose que le framework zend, symfony ou les quelques rares autres est aujourd’hui une faute grave.

Je vois aussi arriver des choses du côté de l'industrialisation, même si je déteste également ce terme, avec une plate-forme d'intégration continue que Gabriele Santini met en place chez SQLI, des outils d'analyse, de contrôle qualité, et des documentations publiques bien mieux faites.

À une époque, les tutoriels et explications à propos de PHP disponibles sur Internet promouvaient tout ce qu'il ne fallait pas faire.

C’est aussi de moins en moins le cas actuellement.

C’est peut être plus sur cette industrialisation qu’on avance dans l’écosystème PHP.

Quand on compare PHP à Java ou C#/.Net, il lui manque de nombreux outils.

Rien que le débogueur est sous-utilisé,et parfois une plaie à installer.

Par contre, la remontée des erreurs des serveurs de productions, l’analyse des traces, le profilage, l’analyse statique de code, les normes de codage, et l’insertion de bibliothèques de code de manière non intrusives sont des choses qui avances sérieusement.

Maintenant, même sur le chapitre de l’industrialisation, je reste frileux.

Je suis personnellement beaucoup plus proche du côté maître artisan que des entreprises Ford du début du siècle précédent.

En conséquence, je suis plus attiré par les codes élégants et les passionnés que par la mise en oeuvre de chaînes de production avec des ouvriers du développements.

Je sais que c’est parfois utile, et que ça profite même à mes maîtres artisans, mais je ne peux m’empêcher d’y voir un risque de régression en technicité, en qualité, ou simplement d’y perdre le fun, la passion.

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

Aie !

Au vu de mes réponses précédentes, on ne le dirait pas.

Cependant, j'y crois tout de même, car PHP a encore beaucoup d'avantages.

C'est le langage le plus simple à mettre en œuvre, pour lequel on trouve facilement des compétences, ainsi que le plus simple à héberger.

Avec tout ces atouts, ce serait dommage qu'il n’ait pas d’avenir.

Et malgré tout ce que j’ai pu dire de négatif, les dernières versions vont dans le bon sens et on voit des propositions et une roadmap qui amène enfin des nouveautés attendues.

La direction n'est pas forcément celle que j'aurai prise, mais il y a clairement un avenir, et un avenir qui est meilleur que la situation actuelle.

Finalement, c'est bien ça l'important non ?

Mais il va quand même falloir avancer sérieusement, sinon Ruby ou Python vont finir par prendre la place de PHP.

Ils corrigent jour après jour tout ce qu'ils avaient de moins bien que lui (hébergement, déploiement, framework web, bibliothèques web) et comme ils ont de très sérieux avantages sur tout le reste...

Si PHP fait évoluer son fonctionnement interne, j'ai une confiance importante sur ce qui peut en résulter.

Il faut également que les contributeurs acceptent de bousculer un peu le langage.

C'est en effet un pré-requis pour faire évoluer un langage de plus de 10 ans.

Maintenant j'ai aussi peut être trop tendance à vouloir tendre vers Python et Ruby, au lieu de laisser se dégager un langage différent, et à prendre directement Python et Ruby quand ils sont adaptés à mes besoins.