Principaux langages WebAssembly
WebAssembly (Wasm) définit un format de code binaire portable pour les programmes exécutables. Il peut être utilisé pour exécuter les langages qui prennent en charge WebAssembly dans le navigateur. Ainsi, vous n’êtes plus limité à l’utilisation de JavaScript dans le navigateur. Dans cet article, je veux vous montrer quels langages de programmation prennent actuellement en charge WebAssembly.
.Net
Dans le domaine du .Net, Blazor est actuellement le produit de Microsoft qui offre l’interopérabilité entre C# et JavaScript en utilisant WebAssembly. Vous pouvez écrire des applications frontales et dorsales uniquement en C#. La partie frontale s’exécute sur WebAssembly dans le navigateur.
AssemblyScript
AssemblyScript est similaire à TypeScript mais se compile en WebAssembly au lieu de JavaScript. Ainsi, pour une logique lourde en calcul comme la manipulation d’images, vous pouvez utiliser AssemblyScript car les performances sont meilleures que le code TypeScript similaire.
C / C++
Emscripten est un compilateur qui compile le code C/C++ en WebAssembly. Il a été l’un des premiers compilateurs vers WebAssembly sur le marché.
COBOL
COBOL est un langage de programmation d’entreprise qui est encore utilisé dans de nombreuses applications mainframe. Le projet Cobweb compile COBOL vers WebAssembly, rendant possible une utilisation plus large de cet éminent langage.
D
Les concepteurs des langages de programmation D voulaient faire un “meilleur C++“. Il est principalement utilisé pour la programmation au niveau du système. Le compilateur a une option de sortie vers WebAssembly.
Faust
Faust est un langage de programmation fonctionnel pour la synthèse sonore et le traitement audio. Il supporte également WebAssembly.
Go
Go est un langage de programmation compilé de manière statique avec la collecte de déchets et la concurrence en tête. Il supporte WebAssembly.
Pascal
Pascal est un langage de programmation procédural conçu par Niklaus Wirth. Le compilateur Free Pascal a également WebAssembly comme cible de compilation.
PHP
PHP est un langage de script à usage général destiné au développement Web. Actuellement, il existe un effort pour faire fonctionner PHP avec WebAssembly. Il est appelé “Wasmer PHP” et est hébergé sur GitHub.
Python
Python est un langage de programmation général de haut niveau, très populaire. La distribution Pyodide cible Python pour le navigateur et Node en utilisant WebAssembly.
Rust
Rust est un langage de programmation multi-paradigme à usage général. Rust renforce la sécurité de la mémoire et est populaire pour la programmation de systèmes. Rust supporte WebAssembly.
Swift
Swift est un langage de programmation général compilé développé par Apple. Le projet SwiftWasm vous permet de compiler Swift en WebAssembly.
Conclusion
Comme vous pouvez le constater dans la liste ci-dessus, il existe actuellement une multitude de langages de programmation qui prennent en charge WebAssembly. Ainsi, vous n’êtes pas coincé avec le seul JavaScript sur le navigateur mais pouvez utiliser le langage le plus approprié à la tâche. Avec le temps, la prise en charge de WebAssembly dans les langages de programmation ne fera probablement que croître.
Références
WebAssembly.org: https://webassembly.org
Awesome WASM Langs: https://github.com/appcypher/awesome-wasm-langs
Image de couverture Photo de Philip Oroni sur Unsplash