[Technologies] WebAssembly (WASM) et Javascript un duo de choc?
WebAssembly est au web ce que l’assembleur est à votre ordinateur.
WebAssembly fut présenté pour la première fois en 2015 par Brendan Eich, le créateur de JavaScript. Il est développé par le World Wide Web Consortium (W3C)
WebAssembly est conçu pour être exécuté dans un navigateur web moderne et se rapprocher au maximum des performances des applications natives tout en fonctionnant sur le web.
Définition
Rappel: le langage assembleur est un langage de bas niveau. Pour ceux voulant se rafraichir la mémoire : Wikipedia
Nous avons donc ici le langage assembleur porté au niveau du navigateur internet et plus exactement :
WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable target for compilation of high-level languages like C/C++/Rust, enabling deployment on the web for client and server applications.
Un format d'instruction binaire pour une machine virtuelle basé sur un concept de pile. WASM est conçu pour être une cible pour la compilation de haut niveau tel que C/C++/Rust, authorisant le déploiement sur le Web pour les applications client/serveur.
Plutôt que de parler de machine virtuelle il serait plus juste de parler de cpu virtuel n'ayant pas réellement de machine virtuelle tel que nous la pensons régulièrement (vmware, java, docker...)
Utilisation
Avec l'API JavaScript WebAssembly, nous allons pouvoir charger des modules WebAssembly au sein même de nos applications JavaScript et ainsi partager des fonctionnalités entre les deux.
Cela a pour conséquence de pouvoir tirer parti des performances de WebAssembly tout en ayant la flexibilité de JavaScript!
WebAssembly ne se limite pas à la seule utilisation des langages C , C++ ou Rust car des compilateurs pour Java, .NET voir même Lua existent. Pour une petite liste c'est par là: langages
Vous n’avez donc pas a écrire en code binaire! Tout comme pour l’assembleur, c’est un compilateur qui va s'en charger.
De part sa rapidité le WebAssembly va avoir un très gros impact en terme de performance dans les domaines suivants :
- La 3D, VR (Réalité Virtuelle), VA (Réalité Augmentée)
- Les jeux vidéos web
- L'édition Audio / Vidéo / Image
- Le domaine de l'IA et Vision Artificielle
- Le Peer to Peer
- La cryptographie
etc... pour une petite liste c'est par là : Cas d'utilisation
Il va permettre également de mieux protéger vos partie de code sensible que par l'utilisation d'un système d'obfuscation de code javascipt.
Et dans la BlockChain des exemples?
Eh bien oui! Un très bon exemple d'utilisation du WebAssembly est dans la blockchain EOS et plus précisément au niveau des SmartContract.
Le résultat des premiers tests furent de 50,000 transferts par seconde de moyenne contre 1000 transferts par seconde pour le code précédent sans WebAssembly.
Vous allez retrouver aussi du WebAssembly dans les applis de minage de crypto via le web comme coinhive qui a fait couler beaucoup d'encre.
Pour aller plus loin
Dans le cas où vous seriez intéressé pour approfondir le sujet je vous suggère cette excellente vidéo d'Antoine Viau dans laquelle on a même droit à un petit exemple concret
Si vous avez aimé cet article
N'hésitez pas à me le faire savoir par un
[ Upvote | Resteem | Commentaire ]
MERCI :)
@french-tech
Posts précédents:
[QuoiDeNeuf?] Boston Dynamics, qu'en penser?
[Technologies] Let's Encrypt ou la révolution du certificat SSL/TLS
[QuoiDeNeuf?] Google Duplex, vrai ou fausse intelligence?
Pour les inconditionnels de vrais sciences comme moi
SteemSTEM : du physicien des particules lemouth (co-founder)
Discord FrancoSTEM (Sciences & Technologie)
Aide Nouveau/Futur Steemian Francophone
comprendre-steem.fr de l'excellente Roxane
Discord Franco Steem Votes : Communauté francosteemvotes
Discord SteemAlsace : Communauté d'entraide steemalsace
Curation France Aide de ZongUin
Sympa l'article !
Merci c'est un article très intéressant !
Je ne connaissais pas vraiment le Web assembly donc merci pour la découverte !
À bientôt !
Cool, c'est exactement le pourquoi de cette série [Technologies], essayer de faire découvrir aux francophones des technologies peu accessible en français.
Très informatif sur une nouvelle technologie qui risque de s'imposer comme une référence dans l’écosystème web ! Upvoté à 100% !
Je le pense aussi! Couplé à Javascript ça forme un duo d'enfer :)