Qu’est-ce que WebAssembly ?

Qu’est-ce que WebAssembly ?

Dans cet article je vais essayer de répondre aux questions les plus courante sur WebAssembly.
Si vous préférez le format vidéo, un podcast est disponible ici.

Qu’est-ce que WebAssembly ?

WebAssembly est un standard de binaire (byte code) compréhensible par les navigateurs modernes.
Les plus pointilleux ne parleront pas de byte code mais d’AST (Abtract Syntaxt Tree) mais ça c’est un autre débat.

WebAssembly c’est donc un nouveau langage ?

Non, c’est un format binaire comme l’assembleur.
Il a été conçu pour être utilisé avec des langages haut niveau comme le C / C++ / Rust, C# pour concevoir des applications web.
Par exemple, pour le C# au lieu de produire du IL il pourrait créer un binaire WebAssembly.

Faut-il générer un binaire pour chaque plateforme x86, x64 et ARM ?

Non, le binaire est indépendant de la plateforme : il n’y aura pas de compilation spécifique pour ARM / x32 / x64. Une fois le byte code livré, il fonctionnera tel quel sur tous les types d’architecture.

Est-ce une entreprise qui crée WebAssembly ?

Non, c’est un consortium le même que pour le HTML : le W3C.
Ce qui rend l’initiative très intéressante : ce n’est pas Adobe ou Microsoft qui essayent d’imposer un nouveau format de binaire.

C’est supporté par quels navigateurs ?

WebAssembly est supporté par les 4 navigateurs principaux : Edge, Chrome, Firefox et WebKit.
Et ce depuis fin 2017.

Quels sont les avantages de WebAssembly par rapport à Javascript ?

Le binaire WebAssembly est déjà compilé lorsqu’il arrive au navigateur :
– Son parsing est grandement facilité : selon les dernières expérimentations il serait 20 fois plus rapide qu’un fichier javascript
– Ce n’est pas un fichier texte donc il sera « moins » gros
Il est donc plus rapide à charger et plus rapide à exécuter.

Il est aussi plus rapide pour faire les calculs : il sera donc plus adapté pour faire de la compression, manipulation d’images, jeux vidéos…

Est-ce que WebAssembly est sécurisé ?

WebAssembly est dans un environnement d’exécution en mode bac à sable sécurisé. Il hérite des mêmes stratégies de sécurité que Javascript.

WebAssembly va-t-il remplacer Javascript ?

WebAssembly n’a pas pour but de remplacer Javascript. Il est conçu pour compléter Javascript avec des performances supérieures. C’est une alternative pour construire des applications Web ou des jeux 2D / 3D, pour lesquelles il est plus optimisé.

WebAssembly peut-il communiquer avec Javascript ?

Oui, WebAssembly JavaScript Interface, qui fournit une API JavaScript explicite pour interagir avec WebAssembly.

WebAssembly est-il le nouveau Flash / Silverlight / JavaFX ?

WebAssembly a certaine similitude avec ces moteurs. Il permet de faire fonctionner des applications dans un navigateur.

Mais contrairement à ses aînés:

  • il n’est pas fait une seule grosse entreprise qui essaye d’imposer son standard.
  • ce n’est pas un plugin qu’il faut ajouter au navigateur, le moteur est déjà intégré et fonctionnel dans le navigateur web

Quels outils permettent de générer des binaires WebAssembly ?

En dotnet 3 outils permettent de générer du WebAssembly :
Unity3D : Moteur de jeux vidéo 2D / 3D
Blazor : L’équipe d’ASP.net a porté le moteur de vue Razor dans WebAssembly. Un projet à surveiller.
Uno: UWP everywhere : nventive a permis au code UWP de fonctionner sur iOS / Android mais aussi WebAssembly.

Ces trois outils sont encore en phase de beta sur la génération de byte code WebAssembly. Il va donc falloir encore attendre un peu avant de commencer à migrer nos applications web dans ce nouveau format.

Happy coding

Pour aller plus loin :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Pin It on Pinterest