My time with Rust and WASM
On the surface, WASM looks immature, niche, and barely usable. You can’t even send text strings between a WASM guest and host, only numbers. Below that surface is a community on fire. Teams are sprinting at breakneck speeds to create runtimes, host environments, cloud solutions, system bindings, and everything in between. It’s not just one more new technology surrounded by a bunch of excitable nerds. These projects are taking first stabs at drawing a line around the smallest and most portable bundle of logic. As soon as the dust settles, how we write and run software will fundamentally change.
Hold up. Why Rust, though?
Yes, the developer experience will become largely irrelevant. Well, that’s not true, but we’ll tolerate a lot more pain than we do now. WASM will change how we write applications and shift the cost/value ratio we are used to with code. Code is not valuable. Why? It’s difficult to reuse. If you’re a developer you probably groaned at that. If you’re an executive, product manager, or literally anyone else who works with programmers, I’m sure you are screaming in your head: “YES! Why?? Why do programmers have to rewrite everything all the time and why does it take two weeks to add a button to the checkout flow???”
Code is difficult to reuse.
If code isn’t reusable then each line of it isn’t worth much. When things aren’t valuable they need to be cheap. Code is cheap if developers can churn it out fast. Conversely, if you can reuse code across server, browser, iOS, Android, wearables, embedded devices, pacemakers, HVAC units — anything — it becomes much more valuable. With high value we accept high cost. The priority will shift from ease of creation and maintenance to performance and security above all. Rust wins in both categories right now.
I started this experiment saying “if both Rust and WASM aren’t the future of all computing, then whatever is will look similar.” I’m sticking with that statement.