WebAssembly vs JavaScript : le futur du web, pas si vite

Le web a finalement peu changé ces dernières années. Oui, nous trouvons toujours de nouveaux frameworks, dont la plupart disparaissent aussi vite qu'ils sont apparus, mais les modèles de programmation évoluent peu. Nous trouvons les classiques JavaScript, HTML / CSS, les plateformes complètes (CMS) et les environnements multiplateformes tels que Flutter. A cela s'ajoute le No Code / Low Code et le vibe coding. WebAssembly permet de générer des apps, à partir d'un langage natif (ou non) pouvant s'exécuter dans les navigateurs mais ce n'est pas pour autant que le modèle web actuel disparaitra. WASM apporte une autre modèle, de nouvelles fonctionnalités mais ne remplace pas. Ce n'est pas sa vocation. "Le WebAssembly, également désigné sous l’appellation « Wasm », constitue une technologie de programmation web permettant d’exécuter du code compilé avec une performance quasi équivalente à celle du code natif, et ce, directement depuis un navigateur. Introduit en 2015, Wasm permet d’employer divers langages tels que C, C++, Rust et bien d’autres, facilitant le développement d’applications web à la fois performantes, interactives et sûres." (d'après wekyo.com)Basiquement, WebAssemby est là pour être plus sécurisé que JS et apporter une plus grande rigueur de codage. Pour faire du WebAssembly, il faut :1 coder avec un langage supporté2 on compile en WASM3 on déploie sur le navigateurIl faut que le navigateur supporte pleinemenet WASM ce qui n'est pas forcément encore le cas même si aujourd'hui les principaux navigateurs supportent WASM, reste les différences sur certaines extensions. Mais WASM ne supprime pas la complexité.Wekyo résume les + et les - :Les avantages :Performance accrue et proche du natif : compilé en bytecode, sa vitesse d’exécution se rapproche grandement de celle du code natif.Compatibilité multilangages : les développeurs ont le choix, que ce soit du C, C++, Rust, Go ou encore JavaScript, Wasm permet de coder dans différents langages compilables.Sécurité renforcée : en raison de l’utilisation de Wasm dans un environnement isolé (sandbox), son exécution se révèle entièrement sécurisée.Portabilité : Wasm est compatible avec l’ensemble des navigateurs, tels que Chrome, Firefox, Edge ou encore Safari)Interaction avec JavaScript : un programme développé sur Wasm peut être exécuté tout en opérant avec du JavaScript.Les points faibles :Complexité d’intégration : pour les développeurs possédant une expérience limitée dans le codage compilé, l’intégration de Wasm dans des projets existants peut s’avérer complexe.Manque ou absence de support DOM : Wasm n’a pas été élaboré pour interagir directement avec le DOM (Document Object Model). À cet égard, JavaScript demeure difficilement substituable.Difficulté d’apprentissage : pour les développeurs issus de l’univers JavaScript, cela peut s’avérer difficile de maîtriser différents langages compilés comme le C, C++ ou encore le Rust.Taille du fichier Wasm : pour des applications lourdes, les fichiers d’exécution peuvent atteindre plusieurs mégaoctets, impliquant un temps de chargement plus long.Bibliothèque Wasm limitée : étant une technologie encore émergente, le nombre de bibliothèques Wasm reste relativement limité en comparaison avec celle de JavaScript par exemple.Bref, oui WASM a des avantages indéniables par rapport à JS : sécurité (si le code est bien fait), bonnes performances, non, WASM n'est pas le nouveau modèle de développement web et ne simplifie pas le développement web.  Pour aller plus loin : https://www.axopen.com/blog/2024/02/webassembly-le-futur-du-web/Wekyo : https://www.wekyo.com/developpement-web-le-webassembly-va-t-il-depasser-le-javascript/State of WebAssembly : https://platform.uno/blog/state-of-webassembly-2024-2025/Catégorie actualité: TechnologiesWebAssembly, wasmImage actualité AMP: 

Mai 30, 2025 - 22:30
 0
WebAssembly vs JavaScript : le futur du web, pas si vite

Le web a finalement peu changé ces dernières années. Oui, nous trouvons toujours de nouveaux frameworks, dont la plupart disparaissent aussi vite qu'ils sont apparus, mais les modèles de programmation évoluent peu. Nous trouvons les classiques JavaScript, HTML / CSS, les plateformes complètes (CMS) et les environnements multiplateformes tels que Flutter. A cela s'ajoute le No Code / Low Code et le vibe coding. 

WebAssembly permet de générer des apps, à partir d'un langage natif (ou non) pouvant s'exécuter dans les navigateurs mais ce n'est pas pour autant que le modèle web actuel disparaitra. WASM apporte une autre modèle, de nouvelles fonctionnalités mais ne remplace pas. Ce n'est pas sa vocation. 

"Le WebAssembly, également désigné sous l’appellation « Wasm », constitue une technologie de programmation web permettant d’exécuter du code compilé avec une performance quasi équivalente à celle du code natif, et ce, directement depuis un navigateur. Introduit en 2015, Wasm permet d’employer divers langages tels que C, C++, Rust et bien d’autres, facilitant le développement d’applications web à la fois performantes, interactives et sûres." (d'après wekyo.com)

Basiquement, WebAssemby est là pour être plus sécurisé que JS et apporter une plus grande rigueur de codage. Pour faire du WebAssembly, il faut :

1 coder avec un langage supporté

2 on compile en WASM

3 on déploie sur le navigateur

Il faut que le navigateur supporte pleinemenet WASM ce qui n'est pas forcément encore le cas même si aujourd'hui les principaux navigateurs supportent WASM, reste les différences sur certaines extensions. Mais WASM ne supprime pas la complexité.

Wekyo résume les + et les - :

Les avantages :

  • Performance accrue et proche du natif : compilé en bytecode, sa vitesse d’exécution se rapproche grandement de celle du code natif.
  • Compatibilité multilangages : les développeurs ont le choix, que ce soit du C, C++, Rust, Go ou encore JavaScript, Wasm permet de coder dans différents langages compilables.
  • Sécurité renforcée : en raison de l’utilisation de Wasm dans un environnement isolé (sandbox), son exécution se révèle entièrement sécurisée.
  • Portabilité : Wasm est compatible avec l’ensemble des navigateurs, tels que Chrome, Firefox, Edge ou encore Safari)
  • Interaction avec JavaScript : un programme développé sur Wasm peut être exécuté tout en opérant avec du JavaScript.

Les points faibles :

  • Complexité d’intégration : pour les développeurs possédant une expérience limitée dans le codage compilé, l’intégration de Wasm dans des projets existants peut s’avérer complexe.
  • Manque ou absence de support DOM : Wasm n’a pas été élaboré pour interagir directement avec le DOM (Document Object Model). À cet égard, JavaScript demeure difficilement substituable.
  • Difficulté d’apprentissage : pour les développeurs issus de l’univers JavaScript, cela peut s’avérer difficile de maîtriser différents langages compilés comme le C, C++ ou encore le Rust.
  • Taille du fichier Wasm : pour des applications lourdes, les fichiers d’exécution peuvent atteindre plusieurs mégaoctets, impliquant un temps de chargement plus long.
  • Bibliothèque Wasm limitée : étant une technologie encore émergente, le nombre de bibliothèques Wasm reste relativement limité en comparaison avec celle de JavaScript par exemple.

Bref, oui WASM a des avantages indéniables par rapport à JS : sécurité (si le code est bien fait), bonnes performances, non, WASM n'est pas le nouveau modèle de développement web et ne simplifie pas le développement web.  

Pour aller plus loin : https://www.axopen.com/blog/2024/02/webassembly-le-futur-du-web/

Wekyo : https://www.wekyo.com/developpement-web-le-webassembly-va-t-il-depasser-le-javascript/

State of WebAssembly : https://platform.uno/blog/state-of-webassembly-2024-2025/

Catégorie actualité: 
Image actualité AMP: