What is WebAssembly, and what is it not?
Peter Salomonsen has created some amazing audio experiments, using AssemblyScript, which I would encourage you to play with over at his website. In this post Peter shares some thoughts on how WebAssembly is different to the previous plugin technologies of Flash, Java and Silverlight, and where you might want to use it. A very insightful read for anyone who is wondering what the purpose of WebAssembly is!
The state of Swift for WebAssembly in 2020 (and earlier)
Bringing a new language to WebAssembly is a complex and challenging task. In this blog post Max looks back at the work that he, and a small group of others, have put into bringing Swift to WebAssembly. Currently there is a (draft) open pull request that adds WebAssembly support, and a SwiftWasm website that highlights the project and their efforts.
However, a language needs more than just a compiler - Max is looking to divide his time between getting the fundamentals of the language up and running, and the need for frameworks and libraries to support developers. Recently Max has been putting more time into adding WebAssembly support to Tokamak which provides a React-like UI framework for Swift.
Bringing Swift to the web is a challenging task, but it’s great to see progress being made. Finally, I’d encourage you to consider sponsoring Max’s work.
Qvault is an online learning site which offers interactive coding courses. They have an online playground that allows students to try out Python, Go and Rust - all of which make use of WebAssembly to execute your code client-side. Although interestingly, while Python is compiled and executed client-side, with both Go and Rust the compilation is server-side, with a wasm module returned to the client for execution.
CobWeb - a COBOL to WebAssembly compiler
On the subject of bringing more languages to the WebAssembly ecosystem … a few months ago Cloudflare announced that their Workers support COBOL. I doubt there are any serious users of this feature, however it does neatly illustrate one of the advantages of using a WebAssembly runtime. Cloudflare have open sourced CobWeb, their COBOL compiler, so you can now use COBOL anywhere that uses a Wasm VM. COBOL smart contracts perhaps?!
How Zoom’s web client avoids using WebRTC (DataChannel Update)
This is a reposted and updated article from late 2018, but interesting all the same. Since COVID, a great many of us have found ourselves sat in front of video conference calls all day long, and Zoom has found widespread adoption. This article takes a look at the Zoom web client and does a bit of investigation to see how it works.
Interestingly the Zoom client is using a WebSocket for data transfer with a WebAssembly decoder. Recently they have switched to a more conventional approach using WebRTC, however, the WebAssembly version can still be found on GitHub.