Python, l’un des langages de programmation les plus populaires au monde, pourrait bientôt devenir encore plus omniprésent en trouvant sa place dans les navigateurs Web. Il existe un nouveau projet qui permettrait au langage de programmation Python de fonctionner dans les navigateurs Web à l’aide de WebAssembly, ou WASM.
WASM est un format binaire qui offre des performances quasi-natives dans les navigateurs Web. Il s’agit d’une cible de compilation pour des langages comme C/C++, C# et Rust. Il est couramment utilisé pour créer du code sensible aux performances que JavaScript n’est pas bien adapté à gérer ; le mariage de Python à WASM par le biais de son compilateur Emscripten est plus une question de facilité d’utilisation et de distribution que de performances, du moins à ce jour.
Le projet CPython on WASM, qui construira l’implémentation par défaut et la plus populaire du langage Python écrit en C, est développé par Ethan Smith, un développeur de logiciels basé à Berkeley.
Selon The Register, le projet a été créé avec l’aide du principal développeur Python, Christian Heimes, et pourrait faire de Python une alternative viable à JavaScript, du moins pour certaines applications Web. « Le nouveau projet sur lequel Christian Heimes et moi-même travaillons a pour objectif de faire du Web une plateforme supportée par CPython, tout comme Windows ou macOS », a déclaré Smith à The Register.
Thanks to recent commits by @ChristianHeimes, I figured out the correct incantations to build CPython’s main branch for the web!
This is stock Python running *in the browser*.
My scripts to build this are at https://t.co/UxhHLBupj4
Lots of work to fix things though… 👷 pic.twitter.com/gIFlVNpNiX
— ethantyping (@ethanhs) November 26, 2021
WebAssembly a pris le monde d’assaut grâce à sa promesse d’apporter les performances des applications natives sur le Web, à un niveau qui n’est pas possible avec JavaScript.
Toutefois, comme indiqué ci-dessus, l’objectif du projet visant à introduire Python dans le navigateur par le biais du compilateur Emscripten de WebAssembly est davantage axé sur la mise en œuvre du cas d’utilisation que sur les performances.
Seulement aux premiers stades de développement
Le projet s’inscrit dans le sillage d’un autre projet, appelé Pyodide, qui permet également d’exécuter du code Python dans le navigateur. « J’espère que cela permettra à un écosystème plus large de développeurs Python de cibler le Web et de s’intégrer plus facilement aux outils et processus Python existants, dont Pyodide a dû réinventer un grand nombre, comme micropip pour remplacer l’installateur standard de paquets pip », a expliqué Smith.
Smith espère que son projet pourra faciliter le développement d’applications multiplateformes basées sur le Web, mais il s’empresse d’ajouter que CPython on WASM n’en est encore qu’aux premiers stades de développement.