La parole est aux speakers : Ivan Enderlin

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 !

Tu as longtemps été mainteneur de l’ensemble de librairies Hoa. Pourrais-tu nous faire un retour sur cette expérience ?

Hoa a été l’un de mes projets open source les plus connus et les plus importants. Hoa a toujours été un prétexte pour apprendre et explorer de nouvelles choses, mais aussi repousser les limites de PHP. Sur ces points, c’est un succès. Je me suis servi du projet pour faire le pont entre la recherche (durant mon temps à l’université et à l’INRIA) et l’industrie, où nous avons pu implémenter des compilateurs, des parseurs, des outils de générations automatiques de tests (avec un portage dans atoum, un autre projet fabuleux). Il y a tellement de choses intéressantes avec Hoa. Avec la communauté, nous avons expérimenté beaucoup, et nous avons sans cesse porter des innovations dans PHP. Je pense qu’on peut affirmer que Hoa a toujours été connu et reconnu dans le milieu (notamment par des poids lourds comme Laravel ou Doctrine) et je suis très fier du travail effectué par la communauté. De réelles amitiés se sont aussi forgées qui perdurent encore aujourd’hui (on a commencé geeks étudiants et aujourd’hui nos enfants jouent ensemble !).

Mais PHP n’a jamais été mon langage préféré. Après 14 ans et de nombreuses histoires et aventures, la communauté a beaucoup bougé et la vie a fait que le projet a un peu ralenti. Malgré les 115 millions d’installations, et des intégrations dans de multiples projets, je n’ai plus l’énergie de m’en occuper. Des personnes sont cependant prêtes à reprendre le flambeau !

Mon analyse succincte est que je pense que la communauté s’est essoufflée en partie à cause de PHP. Un programme écrit en PHP est difficile à maintenir, notamment à cause de son typage dynamique. Et Hoa c’est 170k lignes de code ! Nous avions déjà réécrit Hoa plusieurs fois par le passé (depuis PHP 4 à 7). L’écosystème s’est aussi de plus en plus renfermé et concentré autour de Laravel et Symfony, fermant la porte à tout autre projet. La communauté de Hoa a commencé à regarder ailleurs, tout comme moi !

Après avoir travaillé sur du PHP, tu fais maintenant du Rust. Comment s’est passée la transition ?

Je me suis intéressé et j’ai suivi très attentivement le développement de Rust bien avant la sortie de la 1.0. J’ai la chance de connaître des dizaines de langage de programmation et (peut-être la malchance) d’être littéralement insatiable d’apprentissage. Je ne cache pas mon faible pour les langages de la famille ML comme Caml ou… Rust. Ce dernier s’est vite imposé comme un langage hors-norme à mes yeux. Il y a pratiquement tout ce que j’aime dedans ! Il n’y a pas eu de transition de PHP à Rust, j’ai toujours utilisé plusieurs langages en même temps dans plusieurs projets.

Je me suis beaucoup amusé avec. J’ai tenté de démarrer un projet plus important : Tagua VM, un runtime pour PHP écrit en Rust et utilisant LLVM. En cherchant des financements pour ce projet, j’ai atterri chez Automattic (WordPress, WooCommerce etc.). Là j’ai eu la chance de pouvoir m’amuser un peu avec Rust professionnellement en écrivant des extensions natives pour PHP/Zend Engine. Les outils de Rust sont tellement bien faits et le langage s’appuyant sur des fondations solides, il est facile de l’intégrer dans beaucoup d’environnements. Là, je me suis beaucoup trop lassé de PHP. On me connaît principalement pour Hoa, et donc mes compétences en PHP, mais ça n’a jamais été ce qui m’attirait le plus !

C’est à ce même moment que je suis parti d’Automattic pour Wasmer : une startup qui développe un runtime WebAssembly écrit en Rust. À propos d’intégrations, le runtime Wasmer s’utilise depuis plusieurs langages,
comme PHP, Python, Go, Ruby, Java, PostgreSQL, C, C++, D, JavaScript, Elixir, R, Swift, Zig, Dart etc. Cependant, Wasmer c’est bien plus que le runtime. Je suis aujourd’hui co-fondateur de cette startup, et il y a tellement de choses excitantes !

L’écosystème de Rust est fantastique, le langage est merveilleux, la suite d’outils fonctionne juste très bien. Avec Rust je peux apprendre et découvrir encore plus loin. C’est un langage qui reste très accessible mais qui permet de pousser très loin nos idées avec un contrôle très fin sur l’exécution, la mémoire etc.

En quelques mots et sans pour autant spoiler ta conférence, peux-tu nous introduire ce qu’est WebAssembly ?

WebAssembly (Wasm) est un format binaire d’instructions pour une machine virtuelle. Des langages comme C, Rust, Zig, Swift etc. peuvent compiler vers WebAssembly. Les instructions représentées par Wasm sont
suffisamment simples et proches du système pour que son exécution se fasse facilement. Et comme ce jeu d’instructions n’est pas dépendant du système, Wasm peut s’exécuter théoriquement partout. C’est pour ça qu’on le trouve dans des navigateurs pour le côté client, mais aussi côté serveur, notamment grâce à Wasmer ! WebAssembly a son lot de garanties et de promesses aussi, notamment le fait que la mémoire soit _sanboxed_. Sûreté, performance, format universel, navigateur comme serveur comme intégration dans plusieurs langages, bibliothèque ou exécutable… WebAssembly se montre très polyvalent et promet de changer et de marquer l’industrie durablement !

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 :