[Technologies] WebAssembly (WASM) et Javascript un duo de choc?

in #fr7 years ago (edited)

webassembly.jpg

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


divider-french-tech.png

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?

divider-french-tech.png

Pour les inconditionnels de vrais sciences comme moi

SteemSTEM : du physicien des particules lemouth (co-founder)
Discord FrancoSTEM (Sciences & Technologie)

divider-french-tech.png

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

Sort:  

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 :)