La parole est aux speakers : Pierre Tondereau

Publié le

Jusqu’au Forum PHP 2022, 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

Une extension PHP rouillée

Écrire une extension PHP en 2022, quand on ne maîtrise pas forcément le C peut-être un parcours du combattant. Quand on vient du langage PHP, les concepts de gestion de mémoire et les bugs associés (use after free par exemple) sont lointains et peuvent nous conduire à des failles de sécurité importantes. En plus de cela, nous devons aussi absorber l'utilisation de l'API de Zend Engine. J'ai découvert Rust, il y a peu de temps : un langage qui garantit fiabilité, performance, productivité et surtout permettant d'ouvrir une passerelle vers le C. Voyons voir si l'expérience serait plus heureuse avec ce langage.

On commencera par faire un tour de l'état de l'art des extensions PHP et pourquoi Rust. On utilisera aussi la crate Rust ext-php-rs et voir comment wrapper des API Rust pour ainsi les proposer côté utilisateur PHP. On terminera sur comment automatiser la distribution de notre extension et enfin, conclure sur la valeur ajoutée.

Ballroom ABCDEF - Grace Hopper
14/10/2022
12:25-12:45

Pierre, qu’est-ce qui te plaît dans Rust ?

Énormément de choses, mais j’ai découvert et re-découvert des principes de programmation « bas niveau » que je n’avais pas touchés depuis longtemps. La promesse de productivité décrite sur le site officiel a pesé davantage sur mon choix par rapport à d’autres langages similaires. Je pense aussi que l’API haut-niveau que propose Rust donne plus de confiance en soi et en notre code quand il s’agit de régir des problématiques de gestion d’erreur ou de mémoire par exemple (Fiabilité). Pour finir, la communauté est tout aussi accueillante et bienveillante que celle de PHP.

Il semblerait que de plus en plus de développeur.se.s PHP s’intéressent à Rust. Comment expliques-tu ce phénomène ?

À mon humble avis, je pense que les développeurs et développeuses PHP veulent découvrir des outils plus adaptés à leurs besoins sans pour autant sacrifier leur expérience de dev. Je pense notamment au tooling que propose Rust en se centralisant sur lui-même : quand vous installez Rust, vous avez directement accès à un gestionnaire de dépendances, un linter, un outil de génération de documentation, « un compilateur bienveillant, avec des messages d’erreur utiles », etc. On retrouve de petites influences ici et là, comme l’ajout de l’expression match et ce n’est pas innocent quand on connaît l’intérêt de Nikita Popov pour celui-ci et LLVM (la micro VM derrière Rust) à l’époque où il travaillait sur le code source de PHP. Il y a enfin, peut-être également, un élan de certains devs à vouloir reprendre le contrôle de ce qui se passe sur la machine et sortir d’une zone de confort où l’on fait confiance au garbage collector par exemple… Mais cela reste mon interprétation, haha !

Pourrais-tu nous présenter un cas d’usage de Rust dans une extension PHP ?

C’est bien évidemment un des points de ma conférence et vous comprendrez que je ne m’étalerais pas plus sur le sujet. Cependant, j’essayerai de répondre à des questions comme « peut-on créer du micro-service Rust à l’aide d’une extension PHP ? » Ou encore, « pourquoi ne pas utiliser le C directement et passer par un langage intermédiaire ? ». Une liste de questions qui, j’espère, vous donnera envie d’assister à ma conférence.

Une conférence présentée par

Pierre TONDEREAU
Pierre TONDEREAU
Ingénieur logiciel

Autres Interviews