Rust and WebAssembly most popular combination
Around 250 IT employees from 196 different countries (mainly from the USA, China and Germany), who mostly use WebAssembly often, took part in the survey: A quarter said they often use Rust with Wasm, and almost three quarters in total use Rust at least occasionally with Wasm one. The second most common was the combination of Wasm with C ++ (around half of the respondents combined it with the language). AssemblyScript, Blazor and Go also have their fans in the WebAssembly community, but each in smaller proportions. Kotlin, Elixir, and other languages also appeared.
When asked about their future plans, the majority said they wanted to use Rust with Wasm in the future, with AssemblyScript in second place and C ++ in third, followed by Go, Blazor and Python. The increasing popularity of Rust coincides with the data from, for example, StackOverflow surveys. C ++ was the first language to support WebAssembly, and according to Scott Logic’s blog, it is also widely used in game development. AssemblyScript, on the other hand, is specially designed for WebAssembly and should be based on TypeScript in terms of design, including static typing.
It should come as little surprise that Wasm is used primarily in web development: The majority of respondents use WebAssembly in the area for which it was originally developed. According to the survey, around 70 percent consider WebAssembly to be a technology that will help shape the future of the Internet. Many see Wasm as a kind of universal runtime.
Future areas of application, wish lists and criticism
The respondents perceive Wasm as a future technology primarily for the web, but the majority also for serverless, games, containerization and the processing of audio and video data. The blockchain community should also have had an eye on it (as found Wasm support as Ewasm in the Ethereum 2.0 roadmap). At the top of the wish list for future features are threads, closely followed by WASI (WebAssembly System Interface of the Bytecode Alliance), interface types and module linking. SIMD, modules and garbage collection bring up the rear in the survey, although they are only lower in the order of priority, but would still be of interest to over three quarters of Wasm users. The same applies to exceptions.
To be held on August 31, 2021 heise Developer and dpunkt.verlag a Online conference on WebAssembly. Those who take part learn what WebAssembly actually is and how it can be used together with their own favorite language. Trainers with practical experience answer questions such as:
- What is the benefit of Wasm with containers or serverless applications?
- What does it do in the front end and what does it do in the back end?
- How does WebAssembly help you advance your own projects?
The respondents rate the debugging critically (over 50 percent see a large construction site here, almost all agree that there is a need for improvement). Better APIs, more consistent tooling, and community maintenance seem to be additional issues. Some users also had something to complain about when it comes to language support, although this is not a high priority compared to the other criticisms (a quarter saw improvements as urgent, while around 40 percent saw no need for action).
Background to WebAssembly
WebAssembly (Wasm) is a relatively new technology that was originally designed as a runtime with multi-language support and promised almost native performance, especially when executing code in the browser. Wasm has been an official standard of the W3C (World Wide Web Consortium) since December 2019 and is considered the fourth language of the web. The open standard is intended to make programs accessible to end users in the browser – regardless of the language in which they are written.