WebAssembly, abrégé wasm, est un standard du World Wide Web pour le développement d’applications. Il est conçu pour remplacer JavaScript avec des performances supérieures. Le standard consiste en un bytecode, sa représentation textuelle et un environnement d'exécution dans un bac à sable compatible avec JavaScript. Il peut être exécuté dans un navigateur Web et en dehors. WebAssembly est standardisé dans le cadre du World Wide Web Consortium.L'enquête sur l'état de WebAssembly en 2023 est terminée, les résultats sont arrivés ... et ils sont fascinants ! Voici les grandes lignes :
- L'utilisation de Rust et de JavaScript continue d'augmenter, mais des changements plus notables se produisent un peu plus bas - avec Swift et Zig qui voient une augmentation significative de l'adoption.
- En ce qui concerne les langages que les développeurs "désirent", avec Zig, Kotlin et C#, on constate que le désir dépasse l'utilisation actuelle.
- WebAssembly est encore le plus souvent utilisé pour le développement d'applications web, mais le serverless continue d'augmenter, tout comme l'utilisation de WebAssembly en tant qu'environnement plugin.
- Les threads, le garbage collection et la relativement nouvelle proposition de modèle de composant sont les développements de WebAssembly qui intéressent le plus les gens.
- En revanche, avec WASI, ce sont les propositions d'E/S (par exemple HTTP, système de fichiers) qui retiennent le plus l'attention.
- Nous assistons potentiellement à une certaine impatience de la part de la communauté, la satisfaction à l'égard de l'évolution de WASI étant nettement inférieure à celle exprimée à l'égard de l'évolution de WebAssembly.
- De nombreuses personnes interrogées ont indiqué qu'elles attendaient de WebAssembly qu'il tienne la promesse "écrire une fois et exécuter n'importe où" qui avait été faite à l'origine par Java.
Vous souhaitez en savoir plus ? Lisez la suite...
Langage
La première question explorait les langages utilisés par les utilisateurs en posant la question suivante : quels langages utilisez-vous, ou avez-vous essayé d'utiliser, lors du développement d'applications utilisant WebAssembly ?
Pour la troisième année consécutive, Rust est le langage le plus utilisé pour WebAssembly. Rust a toujours été un bon choix pour WebAssembly ; c'est un langage moderne de niveau système qui a une grande popularité (le Stack Overflow a révélé que c'est le langage le plus désiré sept années de suite), il se trouve aussi être un langage populaire pour créer des runtimes et des plates-formes WebAssembly.
JavaScript est le deuxième langage le plus utilisé, ce qui est assez remarquable si l'on considère qu'il n'est pas possible de compiler JavaScript en WebAssembly. Pour exécuter du code JavaScript, le moteur d'exécution est compilé en WebAssembly, et votre code s'exécute dans l'interpréteur hébergé par WebAssembly. Cette approche, qui peut sembler inefficace, est étonnamment pratique et de plus en plus populaire. Vous n'obtiendrez peut-être pas d'avantage en termes de vitesse, mais vous bénéficierez des avantages de WebAssembly en termes de sécurité et d'isolation.
Le graphique suivant montre les tendances à long terme, en comparant les résultats des trois dernières enquêtes, avec le pourcentage de personnes utilisant chaque langage (fréquemment ou parfois) - à l'exclusion de ceux dont le taux d'utilisation est inférieur à 10 %.
L'utilisation de Rust et de JavaScript augmente, mais des changements plus notables se produisent un peu plus loin. Swift et Zig ont tous deux connu une augmentation significative de leur adoption.
Swift est un ajout relativement récent à l'écosystème WebAssembly, qui a commencé il y a quelques années avec une demande de pull sur le repo Swift d'Apple pour ajouter une cible wasm. Cependant, malgré de nombreux commits sur plusieurs années, cette PR n'a pas été fusionnée. Il semble que la communauté ne soit pas découragée et qu'elle maintienne son propre fork.
Alors que Swift et Rust sont tous deux des langages assez récents (2014 et 2015 respectivement), Zig est encore plus jeune, ayant émergé en 2016, ce qui le rend un an plus vieux que WebAssembly (qui a eu sa première version MVP en 2017).
Cette année, une nouvelle question a été ajoutée à l'enquête : quelle est votre relation professionnelle avec WebAssembly ? Dans le but de séparer les réponses des personnes qui développent activement des outils ou des plateformes WebAssembly de celles qui sont simplement des utilisateurs finaux. En séparant ces deux groupes, nous constatons les préférences linguistiques suivantes :
Comme prévu, les développeurs d'outils ont une forte préférence pour Rust, et aiment également programmer WebAssembly directement en utilisant WAT (WebAssembly Text Format). Il y a également une forte préférence pour Go et Python.
La question suivante de l'enquête explorait le degré d'intérêt de chaque langage en posant la question suivante : quels langages souhaitez-vous utiliser à l'avenir pour développer des applications qui utilisent WebAssembly ?
Une fois de plus, Rust arrive en tête, reflétant les résultats de l'enquête annuelle de Stack Overflow, avec JavasScript en deuxième position. Cependant, Zig, qui n'est pas souvent utilisé, est le troisième langage le plus désiré.
En traçant le delta pour chaque langage, entre le nombre de réponses "fréquemment utilisé" et "vouloir utiliser beaucoup", pour la désirabilité, nous pouvons voir quels sont les langages qui ont la plus grande différence entre la désirabilité et l'utilisation :
[CENTER]
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.
