Le World Wide Web Consortium (W3C) a récemment annoncé que la spécification WebAssembly Core est désormais un standard Web officiel. Après HTML, CSS et JavaScript, WebAssembly devient ainsi officiellement la quatrième langage à s'exécuter nativement dans les navigateurs.
La spécification WebAssembly Core décrit WebAssembly comme un format de code sécurisé, portable et de bas niveau conçu pour une exécution efficace et une représentation compacte. WebAssembly cherche à être indépendant du matériel, du langage et de la plate-forme. WebAssembly peut ainsi cibler toutes les architectures modernes, les appareils de bureau ou mobiles et les systèmes embarqués. Les programmes WebAssembly peuvent être intégrés dans des navigateurs, exécutés en tant que machine virtuelle autonome ou intégrés dans d'autres environnements.
Pour englober la variété des cas d'utilisation, la spécification WebAssembly est divisée et organisée en plusieurs documents. La spécification principale concerne WebAssembly JS Interface qui fournit une API JavaScript explicite pour interagir avec WebAssembly, et WebAssembly Web API qui se concentre sur l'intégration de WebAssembly avec la plate-forme Web globale.
À la base, WebAssembly est une architecture de jeu d'instructions virtuelles (ISA). Les spécifications principales abordent ainsi la couche ISA principale de WebAssembly, définissant le jeu d'instructions, l'encodage binaire, la validation et la sémantique d'exécution, ainsi qu'une représentation textuelle.
Philippe Le Hégaret, chef de projet W3C, explique le potentiel de WebAssembly :
L'arrivée de WebAssembly élargit la gamme d'applications qui peuvent être réalisées en utilisant simplement les technologies Open Web Platform. Dans un monde où l'apprentissage automatique et l'intelligence artificielle deviennent de plus en plus courants, il est important de pouvoir utiliser des applications hautes performances sur le Web, sans compromettre la sécurité des utilisateurs.
L'utilisation de WebAssembly peut être observée dans des logiciels utilitaires tels que le Google Earth port, des jeux emblématiques tels que Doom3 et des applications de bureau lourdes telles que des éditeurs de jeux ou des outils de conception tels que Figma.
Chun Gao, architecte senior chez Agora, a partagé son enthousiasme pour la technologie :
WebAssembly permet de fournir de puissantes capacités informatiques sur le Web. Il élargira considérablement le scénario d'application des Web Apps et augmentera rapidement les chances de développer des applications à forte intensité de calcul, y compris le traitement vidéo/audio en temps réel, les jeux extrêmes et l'IA avec les technologies Web. En tant que fournisseur de services RTC, Agora se consacre à fournir des services avec de meilleures performances en temps réel. Nous avons publié des produits basés sur WebAssembly, qui améliorent les performances et la compatibilité du traitement des flux vidéo. Nous pensons que WebAssembly sera l'option la plus importante pour les développeurs Web pour implémenter des applications Web hautes performances.
Avec les spécifications 1.0 maintenant publiées, les futures versions de WebAssembly sont déjà en préparation, y compris des fonctionnalités telles que le threading, SIMD à largeur fixe, les types de référence, les tail calls ou l'intégration du module ECMAScript.
La mission du World Wide Web Consortium (W3C) est de conduire le Web à son plein potentiel en créant des normes techniques et des directives pour garantir que le Web reste ouvert, accessible et interopérable pour tous dans le monde. Le W3C est hébergé conjointement par le MIT Computer Science and Artificial Intelligence Laboratory (MIT CSAIL) aux États-Unis, le European Research Consortium for Informatics and Mathematics (ERCIM) dont le siège est en France, l'Université Keio au Japon et l'Université Beihang en Chine.