Pourquoi il faut prêter attention à WebAssembly
(harshal.sheth.io)- Présentation de WebAssembly (WASM), de ses usages actuels et des domaines où il pourrait être utilisé à l’avenir
Caractéristiques de WASM
-
Portable : s’exécute aussi bien dans le navigateur que sur le serveur grâce à un bytecode standardisé
-
Universel : de nombreux langages comme C, Rust, Go, Python ou Ruby peuvent être compilés en Wasm
-
Performances proches du natif : en moyenne 1,45 à 1,55 fois plus lent que le natif, mais toujours plus rapide que JavaScript
-
Démarrage rapide : 10 à 100x plus rapide qu’un conteneur Docker, et dans le navigateur aussi plus rapide que le parsing/l’interprétation de JavaScript
-
Sûr : conçu avec le web en tête, donc sécurisé via le sandboxing mémoire et des limitations de capacités
Domaines où WASM est utile
-
Amélioration des performances de JavaScript
-
Interopérabilité entre langages de programmation
-
Runtime pour des systèmes de plugins multilingues
-
Moteur de sandboxing embarqué pour importer et utiliser en toute sécurité diverses bibliothèques tierces
-
L’avenir de la containerization : plus rapide que Docker, avec une empreinte plus légère et plus de sécurité
-
Plateformes FaaS / serverless
-
Blockchain : peut servir de runtime haute performance pour exécuter des smart contracts
Prévisions et opportunités
- Nouvelles architectures applicatives
→ possibilité de découper les microservices en composants encore plus petits
- Brownfield deployment
→ intégration de conteneurs Docker et Wasm au niveau de la couche d’orchestration
- Framework serverless/edge standardisé
→ aujourd’hui, Fastly, Lambda et Fission construisent chacun leur propre plateforme, mais une standardisation reste possible
→ "Terraform of Serverless"
- Gestion des paquets
→ tous les langages disposent d’un écosystème de paquets
→ WASM a besoin d’un gestionnaire de paquets. WAPM existe, mais est presque à l’abandon
Conclusion
- Si WebAssembly est si intéressant, pourquoi n’est-il pas plus largement utilisé ?
→ son marketing n’est pas bon. Comme il ne se limite ni au web ni à l’assembly, le nom est mal choisi dès le départ
→ le marketing a surtout visé les développeurs web, alors que son potentiel réel dépasse le navigateur
→ le standard WebAssembly n’est pas encore en place
→ l’interopérabilité entre langages est encore très mauvaise
→ l’expérience développeur manque encore largement de maturité
-
Mais beaucoup d’aspects sont en cours d’amélioration et devraient atteindre un niveau acceptable d’ici 1 à 2 ans
-
L’activité autour de WebAssembly, ainsi que son écosystème et sa communauté, entrent dans une phase d’explosion
1 commentaires
Même en cherchant WebAssembly/WASM sur GeekNews, vous verrez un très grand nombre d’articles.
Voici une liste des principaux articles.
Annonce officielle de WebAssembly comme recommandation du W3C https://fr.news.hada.io/topic?id=1091
WebAssembly peut-il s’étendre au-delà du navigateur ? L’alliance Bytecode émerge https://fr.news.hada.io/topic?id=901
MS/Google/Arm et d’autres rejoignent l’alliance Bytecode https://fr.news.hada.io/topic?id=4172
→ Une organisation à but non lucratif créée avec pour objectif d’utiliser WebAssembly au-delà du navigateur
Tendances de JavaScript en 2020 et après - WebAssembly https://fr.news.hada.io/topic?id=2778
Comment WebAssembly peut exécuter JavaScript rapidement https://fr.news.hada.io/topic?id=5167
Amazon Prime Video prend en charge 8 000 types d’appareils grâce à WebAssembly https://fr.news.hada.io/topic?id=5858
WebAssembly apporte une nouvelle extensibilité aux proxys réseau https://fr.news.hada.io/topic?id=1722
Sortie de Wasmer 1.0 https://fr.news.hada.io/topic?id=3540
WebVM, une machine virtuelle x86 serverless exécutée dans le navigateur https://fr.news.hada.io/topic?id=5893