La parole est aux speakers : Damien Seguy

Publié le

Jusqu’au Forum PHP 2021, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Typage automatique de code PHP

Le typage en PHP a considérablement muri ces dernières années, et c’est désormais un outil classique dans la trousse des développeurs et développeuses PHP. Naturellement, le prochain défi est la montagne du code historique : c’est à dire, toutes les applications qui ont été construites sans typage, mais avec des validations explicites et des arguments à usage large. Et en plus, une application PHP moyenne définit des milliers de méthodes, arguments et propriétés à auditer. Même sans support explicite des versions précédentes, le typage est une pratique courante de nombreux projets : cela donne des structures de code détectables et simples à moderniser. Les types scalaires sont alors un premier pas, suivi des validations plus strictes et des simplifications. Et avec les outils d’assistance les plus avancés, ces detections produisent des pull requests en masse, entièrement automatiques ! Voilà une aide bienvenue pour la qualité du code. Il ne vous reste plus que la conception du systeme de types lui-même !

Katherine Johnson / Roissy
22/10/2021
15:10-15:50

PHP est un langage de plus en plus typé. Nous avons récemment vu des outils de génération de code tels que Github Copilot
être annoncés. Selon toi, quel peut être l’impact du typage plus fort sur ce genre d’outils ?

Github Copilot, ou OpenAI codex sont des outils d’aide à la programmation. Grâce à l’intelligence artificielle, ils sont capables de comprendre, à demi-mot, les commentaires ou les noms de fonctions pour proposer des implémentations. Comme leur apprentissage a été basé sur des corpus géants de code artisanaux, je compare ces systèmes à des frameworks : Copilot fournit une ou plusieurs solutions au problème de codage. Un framework fait la même chose, avec une approche plus magistrale.

De son coté, le typage tend à réduire la complexité des logiciels. Au lieu de pouvoir injecter n’importe quelle donnée, et de recevoir n’importe quel type en retour, on peut limiter la variété de traitements en typant les arguments et les retours. En fait, dès qu’on prend du recul avec cette approche, le type fort apporte une structure à l’ensemble de l’application. On peut suivre l’utilisation des types, et mieux comprendre l’architecture d’une application. Je crois que l’adoption des types devrait apporter beaucoup de connaissances à des outils comme copilot, pour aller plus loin que la production de code au niveau syntaxique. Recommander un composant, voire proposer des enchaînements de composants deviendra possible.

Maintenant, je crois que des outils d’assistance au codage, en PHP ou d’autres langage, va encore une fois diviser la foule des développeurs et développeuses en deux groupes distincts : ceux qui produiront des composants et des types, qui seront assimilés par les OAC, et ceux qui les utilisent. Le premier sera un métier plus technique, le second sera tourné vers les besoins d’affaires et leurs applications.

La RFC Readonly properties 2.0 a récement été acceptée pour PHP 8.1. Quel est ton avis sur cette fonctionnalité ?

J’attendais l’immutabilité au niveau de PHP depuis un bon moment, et je suis content de la voir finalement arriver. Exakat dispose d’une règle d’analyse qui repère les propriétés inchangées : c’est probablement un ancêtre proche des propriétés read-only. En ayant audité de nombreux projets, je trouve qu’environ 40% des propriétés sont éligibles à cette option. Ce n’est pas négligeable!

Il arrive souvent qu’on anticipe la paramétrisation d’un code en définissant des propriétés qui sont uniquement lues. Puis, par manque d’occasion, la propriété n’est jamais changée après son initialisation, et cela devient, dans les faits, une constante. Malheureusement, la syntaxe des constantes est très différente de celle des propriétés, et cela en fait un frein à leur utilisation. J’espère que cette nouvelle option de syntaxe fera la différence.

Je serai aussi prudent lors des débuts du readonly. J’ai lu la RFC, ainsi que des entrevues avec Nikita Popov (https://phpinternals.news/90), son auteur. La notion d’immutabilité doit faire sa place, parmi les autres fonctionnalités de PHP : les valeurs par défaut, la redefinition de propriété, etc. Je pense qu’il va y avoir des expériences à faire avant de bien comprendre les tenants et les aboutissants.

Cela sera ta 13ème conférence à un événement national de l’AFUP : cela te portera t-il chance ? As-tu un retour à faire après tant d’années en tant que speaker ?

Déjà, j’espère bien faire une 22ème participation, alors la 13ème est un passage obligé.

Les Forum PHP de l’AFUP sont toujours un moment spécial de l’année, et j’ai déjà une liste très fournie de bons souvenirs : Arthur Rimbaud, la session que j’ai donné deux fois, celle qui a été préparé en 15 min, ou encore le slideshow karaoké. Tout ça, c’est la vie de bâton de chaise des conférenciers, et c’est très drôle a raconter.

Je souhaite, et je recommande même à tout le monde, de tenter l’expérience. Présenter son histoire, les défis rencontrés, les solutions apportées et même les déboires partiels, ou encore se projeter sur l’avenir avec de nouvelles technologies et méthodes : au niveau personnel, c’est une véritable séance de retour sur soi-même, et cela aide à mieux capitaliser.

Une conférence présentée par

Damien SEGUY
Damien SEGUY
Damien Seguy est directeur technique chez Exakat Ltd., société spécialisée dans les solutions pour la qualité du code source en PHP. Il dirige le développement du moteur d'analyse statique Exakat, qui assure la revue de code pour les migrations, la clareté et la sécurité. Avec près de vingt ans de contributions au monde PHP, son expérience l'a fait passé par la rédaction de la documentation, l'élevage d'elephants, l'animation de groupes d'utilisateurs sur trois continents. Il aime faire du gremlin, des ??? et du camembert.

Autres interviews