La parole est aux speakers : George Banyard
Jusqu’à l’AFUP Day 2023, 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
La gestion d'erreur dans toutes ses couleursDans ce talk nous ferons un tour d'horizon des différentes manières de faire de la gestion d'erreur et l'histoire de celle-ci. Puis nous verrons comment utiliser le système de type pour vérifier que l'on gère correctement toutes nos erreurs. |
Université Catholique de Lille 12/05/2023 15:55-16:35 |
Le Craft, le Craftmanship, l’artisanat du développement, pour toi un nouvelle mode ou une Une multitudes d’algorithmes pourraient être simplifiés et bénéficier d’excellentes performances grâce aux mathématiques. Pour quelqu’un qui n’est pas formé comme toi aux maths, quel conseil donner pour découvrir ce champs de possibilités ?
Je ne suis pas tout à fait sûr que les mathématiques en elles-mêmes résultent en de la performance algorithmique (pour un exemple très drôle, la vidéo de Matt Parker qui explique comment des ingénieurs ont optimisé son code de 40,832,277,770% [EN] vaut le coup).
Les mathématiques sont aussi un champ très vaste, des maths pures dont le domaine est les abstractions et les patterns qu’on peut en déduire, les maths plus appliquées telles que les calculs de dynamiques de fluides utilisés pour la météorologie, ou même les statistiques et toutes les techniques probabilistes qui sont au cœur des technologies de Machine Learning. Ayant étudié des maths pures, je m’en sers plus dans l’optique de comment elles peuvent nous aider à structurer notre code. Beaucoup de mots mathématiques ont l’air compliqué, mais en réalités définissent des concepts relativement simples et basiques. J’aime beaucoup la, très grande, série d’articles de Mark Seeman « From design patterns to category theory » qui explique que beaucoup de design pattern que l’on utilise dans la vie de tous les jours ont une équivalence mathématique et c’est pour cela qu’on les utilise.
Pour en revenir à l’algorithmie, je pense que réussir à décrire le problème que l’on essaye de résoudre dans un modèle et langage mathématique permet de réaliser comment implémenter l’algorithme en question ou même de réaliser que le problème a déjà été résolu.
Un exemple abstrait serait de réaliser que le problème que l’on a en face de nous peut être modelé comme un graphe, et par conséquent utiliser toutes les techniques et algorithmes déjà inventés en théories de graphes.
Pour un exemple plus concret, lors de l’implémentation des types d’intersections, je me battais avec beaucoup de cas différents et le « pourquoi je devais m’y prendre comme ça » n’était pas intuitif. Jusqu’à ce que Nikita formalise les relations de sous-typages et réalise que le problème est lié à l’ordre des quantificateurs qui est différent pour les types d’unions comparés aux types d’intersection. Cette réalisation a radicalement réduit la complexité de l’implémentation, car on devait « juste » s’occuper de deux cas bien spécifiques dès le départ au lieu de s’y prendre au milieu de 6 manières différentes.
Tu travailles énormément sur le typage de PHP. Quelle inspiration représentent les langages comme HACK, CSharp, Java, etc, dans la recherche d’amélioration de PHP ?
Surprenamment, peu des langages orientés objets ! Principalement parce que je trouve que les paradigmes purement OO insistent à la création de systèmes prônés aux bogues.
Donc, je prends beaucoup plus d’inspiration de langages fonctionnels et comment incorporer certains de ces concepts dans PHP pour « éliminer » certaines sortes de bogues.
Tu as donné plusieurs conférences dernièrement. Est-ce que les échanges avec le public t’inspirent dans le cadre de ton travail au sein de la PHP Foundation ?
Les échanges m’ont surtout montré que beaucoup de gens travaillent avec du code legacy (beaucoup de ZF1). et dont une partie rencontre de la difficulté pour se mettre à jour ainsi qu’une dépendance à des comportements étranges de PHP, car il n’y a aucun diagnostic. Il est ainsi extrêmement dur de réaliser que le code fait quelque chose de légèrement bizarre.
Mais ça me montre aussi que PHP est beaucoup utilisé pour des nouveaux projets et ça m’inspire à rendre le langage plus « sérieux » en essayant de définir des vrais sémantiques au langage vis-à-vis des opérations permises pour que PHP soit plus intuitif et une option robuste pour créer de nouveaux projets.
Une conférence présentée par
George BANYARD |
George est actuellement sous contrat à temps partiel avec la fondation PHP pour maintenir PHP. Il participe aussi à la documentation et il est le mainteneur principal de la documentation française en ce moment. |