The result of the 2023 state of WebAssembly survey are in, the data analysed and results published. If you want the TL;DR here are some of the headlines:
- When it comes to which languages developers ‘desire’, with Zig, Kotlin and C# we see that desirability exceeds current usage
- WebAssembly is still most often used for web application development, but serverless is continuing to rise, as is the use of WebAssembly as a plugin environment.
- Threads, garbage collection and the relatively new component model proposal, are the WebAssembly developments that people are most interested in.
- Whereas with WASI, it is the I/O proposals (e.g. HTTP, filesystem) that garner the most attention.
- We are potentially seeing some impatience in the community, with the satisfaction in the evolution of WASI being notably less than the satisfaction people express in the evolution of WebAssembly.
- Many respondents shared that they expect WebAssembly to deliver on the “write once and run anywhere” promise that was originally made by Java.
The state of WebAssembly survey showed that garbage collection was one of the most desired future features for WebAssembly. This article, and its companion cover recent progress on WasmGC, which is now enabled by default in Chrome. Great news, and a real landmark for WebAssembly 🎉
There are a small number of new languages that emerged in order to capitalise on the unique features of WebAssembly, with Grain probably being the most successful to date. With MoonBit there’s a new kid on the block, as well as being a new language, the team behind it aim to create a whole developer platform. It’ll be interesting to see how this progresses. Creating a new language is a huge undertaking, and I wish the team every luck.
Candle is a platform for running WebAssembly components across server, client and elsewhere. The underlying framework is called Wick and is available on GitHub.
This sounds like a very cool idea - a vectorizing binary translator for GPUs, designed to make it easy to run many copies of a single-threaded WebAssembly program in parallel using GPUs. It does have practical limitations, for example the VMs have limited memory, but the underlying idea of running WASM workloads on GPUs is amazing.