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

En poursuivant votre navigation sur ce site, vous acceptez l’utilisation des cookies pour améliorer votre navigation. plus d'infos

1. Qu’est-ce qu’un cookie?

Un Cookie est un petit fichier texte enregistré sur votre terminal (ordinateur, tablette, smartphone, etc.), à l’occasion de la consultation d’un service en ligne grâce à votre logiciel de navigation. Il permet à son émetteur d’identifier le terminal dans lequel il est enregistré, pendant la durée de validité ou d’enregistrement du Cookie. Lors de la consultation de notre site Internet, des informations relatives à la navigation de votre terminal sont susceptibles d'être enregistrées dans ces fichiers dits "Cookies". Ces derniers sont installés sur votre terminal, sous réserve des choix que vous auriez exprimés concernant les Cookies et que vous pouvez modifier à tout moment.

2. A quoi servent les cookies émis sur notre site ?

Seul l’émetteur d’un cookie est susceptible de lire ou de modifier les informations qui y sont contenues.
Les cookies utilisés sur notre site permettent :

3. Vos choix concernant les cookies

Vous disposez de différents moyens pour gérer les cookies. Tout paramétrage que vous pouvez entreprendre sera susceptible de modifier votre navigation sur notre site et sur Internet en général et vos conditions d'accès à certains services de notre site nécessitant l'utilisation de cookies. Vous pouvez à tout moment exprimer et modifier vos souhaits en matière de cookies, par les moyens décrits ci-dessous. L'accord sur les cookies L'enregistrement d'un cookie dans un terminal est essentiellement subordonné à la volonté de l'utilisateur du terminal, que celui-ci peut exprimer et modifier à tout moment et gratuitement à travers les choix qui lui sont offerts par son logiciel de navigation. Si vous avez accepté dans votre logiciel de navigation l'enregistrement de cookies dans votre terminal, les cookies intégrés dans les pages et contenus que vous avez consultés pourront être stockés temporairement dans un espace dédié de votre terminal. Ils y seront lisibles uniquement par leur émetteur.

Le refus des cookies Si vous refusez l'enregistrement de cookies dans votre terminal, ou si vous supprimez ceux qui y sont enregistrés, vous ne pourrez plus bénéficier d'un certain nombre de fonctionnalités qui sont néanmoins nécessaires pour naviguer dans certains espaces de notre site. Tel serait le cas si vous tentiez d'accéder à votre compte ou à votre abonnement qui nécessite de vous identifier. Tel serait également le cas lorsque nous, ou nos prestataires, ne pourrions pas reconnaître, à des fins de compatibilité technique, le type de navigateur utilisé par votre terminal, ses paramètres de langue et d'affichage ou le pays depuis lequel votre terminal semble connecté à Internet. Le cas échéant, nous déclinons toute responsabilité pour les conséquences liées au fonctionnement dégradé de nos services résultant de l'impossibilité pour nous d'enregistrer ou de consulter les cookies nécessaires à leur fonctionnement et que vous auriez refusés ou supprimés. Les choix offerts par votre logiciel de navigation Vous pouvez configurer votre logiciel de navigation de manière à ce que des cookies soient enregistrés dans votre terminal ou, au contraire, qu'ils soient rejetés, soit systématiquement, soit selon leur émetteur. Vous pouvez également configurer votre logiciel de navigation de manière à ce que l'acceptation ou le refus des cookies vous soient proposés ponctuellement, avant qu'un cookie soit susceptible d'être enregistré dans votre terminal. Pour la gestion des cookies et de vos choix, la configuration de chaque navigateur est différente. Elle est décrite dans le menu d'aide de votre navigateur, qui vous permettra de savoir de quelle manière modifier vos souhaits en matière de cookies. Selon votre navigateur, consultez le lien ci-dessous pour configurer votre navigateur et refuser les cookies :