L'édition 2022 du rapport sur l'état du développement de WebAssembly révèle que Rust est le langage le plus utilisé et le plus recherché
et les applications Web sont le cas d'utilisation principal

L'édition 2022 du rapport sur l'état du développement de WebAssembly (The State of WebAssembly 2022) vient de paraître et indique que la technologie a subi un certain nombre de changements notables au cours de l'année écoulée. Le rapport révèle que le langage Rust domine la liste des langages les plus utilisés et les plus recherchés dans l'écosystème WebAssembly (Wasm). Il ajoute que JavaScript est devenu le deuxième langage WebAssembly le plus utilisé et que Wasmtime est l'environnement d'exécution le plus utilisé. En outre, l'utilisation de WebAssembly en tant que plug-in hôte, pour les applications sans serveur et la conteneurisation a considérablement augmenté.

Langages les plus utilisés et les plus demandés

Selon Colin Eberhardt, directeur technique chez Scott Logic et rapporteur de l'étude, de nombreuses questions de l'enquête ont été reprises de l'année dernière, ce qui permet une comparaison directe. En 2021, 250 personnes ont répondu à l'enquête, cette année, ce chiffre est passé à 299. La première question a permis d'explorer les langages utilisés par les développeurs en posant la question suivante : quels langages utilisez-vous ou avez-vous essayé d'utiliser pour le développement de WebAssembly ? Comme l'année dernière, Rust arrive une fois de plus en tête, avec 45 % des répondants qui disent l'utiliser fréquemment ou parfois.

Nom : current-language.png
Affichages : 7312
Taille : 95,5 Ko

Eberhardt rappelle que WebAssembly et Rust ont une relation assez étroite, la plupart des moteurs d'exécution de WebAssembly étant écrits en Rust, tout comme les diverses plateformes basées sur Rust. « Il bénéficie également de certains des meilleurs outils, ce résultat n'est donc pas une grande surprise », a-t-il ajouté. Cette année, JavaScript arrive en deuxième position. L'option JavaScript n'avait pas été ajoutée l'année dernière (et personne n'a indiqué qu'il l'utilisait via l'option 'autre'), c'est un grand changement depuis l'année dernière. JavaScript ne peut pas être compilé en WebAssembly, alors comment cela fonctionne-t-il ?

Eberhardt indique qu'il existe en effet une solution astucieuse pour résoudre ce problème. Au lieu de compiler JavaScript dans Wasm, vous pouvez compiler un moteur JavaScript dans WebAssembly et l'utiliser pour exécuter votre code. « C'est en fait beaucoup plus pratique que vous ne le pensez », a-t-il déclaré. Cette année, 67 % des personnes interrogées ont déclaré qu'elles utilisent fréquemment Wasm, ce qui représente une forte augmentation par rapport aux 47 % de l'année dernière. Le graphique suivant montre le pourcentage de répondants qui utilisent un langage donné "fréquemment" ou "parfois", par rapport à l'année dernière :

Nom : current-slope.png
Affichages : 1291
Taille : 111,7 Ko

Il en ressort que l'utilisation de Rust a augmenté de façon constante, mais que les plus grands gagnants sont Blazor et Python. C'est certainement une grande année pour Python, avec le lancement de Pyscript, un terrain de jeu interactif en ligne. AssemblyScript a connu la plus forte baisse d'utilisation. « Ce qui m'a un peu surpris. Je me demande si certains répondants n'identifient pas à tort AssemblyScript comme du JavaScript ? », s'est interrogé Eberhardt. La question suivante demandait quel langage les développeurs souhaitaient le plus utiliser pour le développement de WebAssembly.

Sans surprise, c'est Rust qui arrive en tête. Il occupe la première place des langages les plus appréciés dans l'enquête de StackOverflow depuis six ans. Rust a connu une modeste augmentation de sa désirabilité, mais le plus grand gagnant est Blazor, suivi de près par Go.

Applications WebAssembly et runtimes

La question suivante explore ce que les utilisateurs font avec WebAssembly, ainsi que leurs aspirations futures. L'enquête demandait à quoi vous servait WebAssembly en ce moment, en permettant aux personnes de sélectionner plusieurs options et d'ajouter leurs propres suggestions. Les réponses ont permis de constater que la plupart des développeurs utilisent WebAssembly pour le développement Web. Cependant, si l'on compare les résultats de cette année à ceux de l'année dernière, on constate de gros changements : l'utilisation de WebAssembly pour les applications sans serveurs (serverless) et la conteneurisation a grimpé.

Nom : wasm-apps.png
Affichages : 1288
Taille : 86,3 Ko

L'augmentation la plus importante concerne l'utilisation de WebAssembly comme environnement de plug-in. « Il s'agit d'un environnement d'exécution fantastique pour héberger du code non fiable dans un environnement sécurisé », a déclaré Eberhardt. Le rapport indique également que l'utilisation de WebAssembly pour les jeux a diminué.

Nom : runtimes.png
Affichages : 1284
Taille : 75,1 Ko

Compte tenu de l'augmentation de l'utilisation de WebAssembly en dehors des navigateurs, l'enquête de cette année a cherché à connaître les moteurs d'exécution les plus utilisés par les applications WebAssembly. Les réponses ont révélé que Wasmtime, de Bytecode Alliance, est l'environnement d'exécution le plus utilisé, avec Wasmer, qui est développé par la start-up Wasmer inc., en deuxième position.

Fonctionnalités populaires

WebAssembly suit un processus de proposition publique régi par le W3C. Cette enquête comprend un sous-ensemble des propositions les plus matures à la phase 2 (spécification disponible) et à la phase 3 (mise en œuvre), en demandant ce qui intéresse le plus les développeurs. La proposition relative aux threads, qui ajoute la mémoire linéaire partagée et "atomics", arrive en tête, suivie par la prise en charge des exceptions et du ramasse-miettes. L'interface système WebAssembly (WASI - WebAssembly System Interface), qui ajoute des API d'intégration au niveau du système à WebAssembly, devient de plus en plus importante.

Nom : wasm-features.png
Affichages : 1289
Taille : 134,3 Ko

L'enquête a également demandé quelles propositions WASI intéressaient le plus les développeurs. Les types d'E/S arrivent en tête, suivis par les sockets, le système de fichiers et les threads natifs. Notamment, si vous comparez ce tableau au précédent pour les propositions WebAssembly, il y a un intérêt beaucoup plus grand pour WASI en général. De plus, l'enquête a demandé aux utilisateurs ce dont WebAssembly a le plus besoin pour être un succès à l'avenir. Les API permettant une utilisation facile en dehors du navigateur arrivent en tête, ce qui souligne l'intérêt et l'importance de WASI pour les développeurs.

Données démographiques

Enfin, l'enquête comportait quelques questions qui donnaient un aperçu des données démographiques. Les personnes interrogées ont été invitées à déclarer leur niveau de compétence en matière de développement JavaScript, back-end et WebAssembly. Il est intéressant de noter que l'année dernière, les répondants à l'enquête se sont montrés plus compétents en JavaScript et en développement front-end.

Nom : skill.png
Affichages : 1280
Taille : 60,2 Ko

Cette année, les auteurs du rapport ont constaté que l'enquête a attiré des personnes plus compétentes en développement back-end, ce qui reflète probablement le changement d'orientation de WebAssembly. Les enquêteurs leur ont également demandé depuis combien de temps ils utilisaient WebAssembly ou le connaissaient. Cette année, les personnes interrogées sont plus expérimentées, une grande majorité des répondants ont déclaré qu'ils ont au moins 2 ans d'expérience, contre un peu plus d'un an l'année dernière.

Source : Rapport de l'enquête

Et vous ?

Quel est votre avis sur le sujet ?
Que pensez-vous des conclusions de l'enquête ?
Que pensez-vous de la popularité de Rust dans l'écosystème WebAssembly ?
Pensez-vous que le langage Rust se fera rattraper par JavaScript dans les années à venir ?

Voir aussi

« Pourquoi j'ai quitté l'équipe WebAssembly de Google, et comment cela m'a rendu malade », un témoignage de Katelyn Gadd, conceptrice de jeux et programmeuse d'outils

JavaScript et Python règnent, mais Rust monte en puissance, le nombre d'utilisateurs de Rust dans le monde serait passé à 2,2 millions, selon une enquête de SlashData

State of the Developer Nation : JavaScript aurait une communauté composée d'environ 14 millions de développeurs, alors que Python est le langage avec la croissance la plus forte ces dernières années

Wasmer : un runtime open source pour l'exécution de WebAssembly sur un serveur, tout en prenant en charge l'API Wasm-C

Rust 1.54 est disponible. Cette version vient étendre la connexion du langage à WebAssembly et permet l'utilisation de macros dans les attributs