alt tex
Web

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.

https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blazor

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.

https://www.assemblyscript.org

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é.

https://emscripten.org

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.

https://github.com/cloudflare/cobweb

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.

https://dlang.org/index.html

Faust

Faust est un langage de programmation fonctionnel pour la synthèse sonore et le traitement audio. Il supporte également WebAssembly.

https://faust.grame.fr

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.

https://go.dev

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.

https://www.freepascal.org

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.

https://github.com/wasmerio/wasmer-php

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.

https://github.com/pyodide/pyodide

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.

https://www.rust-lang.org

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.

https://swiftwasm.org

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

Publié le 6 novembre 2022

Creative Commons License
Cette œuvre est soumise à une licence Creative Commons Attribution 4.0 International License.
Thomas Derflinger

Écrit par Thomas Derflinger

Je suis un entrepreneur visionnaire et un développeur de logiciels. Dans ce blog, j'écris principalement sur la programmation web et des sujets connexes comme l'IdO.