Hey folks, a Coder Radio listener messaged me asking about the current state of Web Assembly, so today we’re diving deep into the waters of Web Assembly (WASM) in 2023. Grab your favorite beverage and let’s get to it!
First off, for those of you scratching your heads and wondering, “What the Binks is Web Assembly?”, let’s clear that up. In the simplest terms, Web Assembly is a binary instruction format that’s designed as a portable target for the compilation of high-level languages. It’s like a bridge that lets us run code written in languages like C, C++, Rust, C#, Typescript and plenty more right in our browsers with impressive performance characteristics.
The Potential
Back when Web Assembly super-hero landed on the scene, there were songs and epic ballads of it revolutionizing the web. Developers dreamed of a world where performance-heavy applications, which were previously exclusive to native platforms, could now run seamlessly on the web; OK, maybe they weren’t exclusive to native development, but it at the very least was extremely challenging to right a large performance intensive application for the web at the time. Many of the initial demos of WASM at work were games, showing the promise of graphical fidelity and native-like performance right in the browser.
The Reality
Fast forward to 2023 and well things are little more complicated than initially hoped.
For sure, WASM has indeed made significant strides. We’ve seen companies and projects leverage WASM to bring powerful development capabilities and apps to the web. Even Microsoft jumped on the bandwagon with tools like Blazor which have allowed .NET developers to run their code in browsers.
However, it’s not all rainbows and ponies. With great power comes… well, you know the rest. As developers, we’re finding that WASM can be a double-edged sword. The performance is impressive, sure, but there’s a learning curve and there’s the issue of support; older browsers (mobile in particular) don’t often fully support it as well as say Google Chrome or Microsoft Edge. The tooling is still catching up, and debugging? Let’s just say it’s been a journey; if you’re coming from native or more traditional web development, you might find yourself missing some of the conveniences you’ve become accustomed to.
What’s Next?
I’m optimistic about the future of WASM. The community around it is vibrant, and there’s a clear interest from big players in the industry (with the notable exception of Apple on mobile) to keep pushing its boundaries. We’re also starting to see more resources, training and improved tooling, making it more accessible for developers. There’s the added advantage of some browsers engines starting to by default embrace WASM by using it as the default for Typescript and JavaScript. Long term, it is likely that WASM is going to become ubiquitous and basically transparent to day to day developers. At present the biggest hurdle is Apple’s hesitance to bring mobile Safari up to parity with other browsers in terms of WASM support; because of their App Store business model, they are very much incentivized to not do that, but it’s likely that they won’t be able to fight the tide forever.
What do you think? Is Web Assembly going to eat the world or have I drunk the Kool-Aide? Also, if you need automation in your business, take a look at Alice!