TNS
VOXPOP
Terraform or Bust?
Has your organization used or evaluated a Terraform alternative since new restrictions were placed on its licensing?
We have used Terraform, but are now piloting or using an open source alternative like OpenTofu.
0%
We never used Terraform, but have recently piloted or used alternatives.
0%
We don't use Terraform and don't plan to use or evaluate alternatives.
0%
We use Terraform and are satisfied with the results
0%
We are waiting to see what IBM will do with Terraform.
0%
Software Development

WebAssembly: 5 Predictions for 2023

Wasm is now enjoying as much (if not more) success beyond the browser than within it. And this trend underlies much of what will come in 2023. 
Jan 4th, 2023 10:00am by
Featued image for: WebAssembly: 5 Predictions for 2023
Image via Pixabay.

In 2022, WebAssembly (often shortened to Wasm) catapulted into the spotlight. New Wasm startups arrived on the scene. Established companies announced support for Wasm. The Bytecode Alliance launched a number of Wasm standards. The Cloud Native Computing Foundation hosted two WasmDay events. And one of the biggest Wasm users, Figma, was acquired by Adobe for a staggering $20 billion.

At its core, Wasm is a binary format. Many different languages can compile to the same format, and that binary format can be run on a huge variety of operating systems and architectures. Java and .NET are similar in this way but Wasm has one major difference: The Wasm runtime does not trust the binaries that it executes.

Wasm applications are sequestered in a sandbox and are only allowed to access resources (like files or environment variables) that the user explicitly allows. Wasm has many other desirable properties (such as extraordinary performance), but it is the security model that makes Wasm useful in a wide variety of environments ranging from browsers to edge and IoT and even into the cloud.

If there is a Wasm trend to spot in 2022, it is that Wasm is now enjoying as much (if not more) success beyond the browser than within it. And this trend underlies much of what will come in 2023. With Wasm showing up everywhere from embedded devices to big data centers, 2023 is poised to be the year of Wasm. Here are my five predictions for the 2023 Wasm ecosystem.

1. The Component Model Will Be the Watershed Moment

Rarely are standards the most exciting part of an ecosystem. And with a name like “the Component Model,” rousing excitement is an uphill battle indeed. But behind the boring name is the most important innovation that Wasm brings to the software world.

The Component Model describes a way for Wasm binaries to interact with each other. More specifically, the two components can tell each other what services they provide and what expectations need fulfilling. And then Wasm modules can utilize each other’s abilities. This provides software developers with a new way of building applications. Instead of finding libraries in their preferred source language, developers can declare which components their app needs — or even more abstractly, what features their app needs — and then the Wasm runtime can assemble the correct set of components on the user’s behalf.

Dan Gohman, one of Wasm’s most prolific contributors wrote a great overview post. And Joel Dice of Fermyon has written a technical overview for those more curious about the internals.

The component model is rapidly maturing, and already reference implementations are appearing. 2023 will be the year that the component model begins redefining how we write software.

2. Serverless Will Be Wasm’s Sweet Spot

The promise of serverless has been evident for the last few years. AWS Lambda opened our eyes to a new and straightforward programming model in the form of Functions as a Service (FaaS). Yet even while the momentum behind the concepts of serverless was building, the underlying technology was expensive to operate. And that cost has been passed on to users. Furthermore, while startup times for FaaS applications are faster than containers, they still fall short of today’s expectations for web performance. There is room for speed improvements.

Wasm has shifted the potential of the serverless landscape. With nearly instant startup times, small binary sizes, and platform and architectural neutrality, Wasm binaries can be executed with a fraction of the resources required to run today’s serverless infrastructure.

If the economy at large is entering a period of economic uncertainty, it is good to know that Wasm will help us rope in our expenses, while also advancing the developer-favorite serverless function model. Wasm’s speedier startup times and modest resource consumption require far less computing power than container-based system and are cheaper to use than FaaS systems like Lambda.

This realization that Wasm can transform the serverless landscape is what led Fermyon to create Spin. Spin is a developer-oriented tool for bootstrapping, building, testing, and deploying serverless functions. At the heart of Spin is its Wasm-based runtime. It is open source and already supported by Fermyon Cloud and Microsoft Azure’s AKS, with more on the way in 2023.

Smaller, faster, cheaper, better. That’s the combination that Wasm is delivering to the serverless world in 2023.

3. Wasm Apps Will Be Stored in DockerHub and Container Registries

Package management. It is a necessary feature of everything from programming languages to operating systems to cluster orchestrators like Kubernetes. And each time we invent a new technology, we seem doomed to (re-)invent a system for managing that technology’s assets.

Early in 2022, we saw several competing methods for managing Wasm objects. None took off. A small cadre of engineers persistently pushed the OCI Registry (aka the Docker Registry) as a system for storing Wasm. But the fact of the matter was that the OCI Registry format did not support non-container artifacts. It was for storing Docker images.

And then a major shift in OCI Registries changed the landscape. The OCI (Open Container Initiative) is a small standards body devoted to managing the standards around OCI Containers (or what we used to call Docker Containers). OCI defines the container format, the security model and the runtime. It also defines how container images are moved between a registry and a client.

Near the end of 2022, the OCI Registries working group announced an official way to store things other than container images. This may include things like Helm charts, photographs, or (you guessed it) Wasm applications. This new feature is called “artifact storage.”

When DockerHub announced support for this new artifact storage specification, the signal reverberated around the Wasm ecosystem: instead of re-inventing the wheel, we can simply store our applications in OCI registries like DockerHub. New work must be done in the Wasm ecosystem to make this a reality, but that work is underway. 2023 will be the year Wasm applications find a home in OCI registries.

4. All the Big Programming Languages Will Have Wasm Support

Language support is a crucial ingredient for Wasm’s success. With each new language that can compile to Wasm, a new community of developers gains access to Wasm’s benefits. Nearly all of the top 20 programming languages are adding Wasm support.

In 2022, we saw three giant leaps forward for Wasm. Python added support. Then Ruby. In October, .NET, which has long embraced in-browser Wasm in the browser, added much deeper support for Wasm, allowing it to run well beyond the browser.

Three additional languages made some progress this year, but 2023 will mark the year those languages are ready for use. Those three languages are Kotlin, Dart, and, of course, the world’s most popular programming language: JavaScript.

Kotlin and Dart communities have both been actively engaged in building Wasm compile targets. Both, though, have been waiting for one particular Wasm standard to mature — a standard describing garbage collection, the facility in a language runtime that allows memory to be cleaned up as the program executes. Our prediction is that the Wasm-GC proposal will be usable and supported early in 2023, and thus Kotlin and Dart will soon release Wasm compilers

Our last language, though, is so important that it deserves a special prediction.

5. JavaScript Will Become the Most Popular Wasm Language

Of any language, JavaScript has the most complex relationship with Wasm. As originally envisioned, Wasm would interact with JavaScript in the browser. In fact, the original promise of Wasm was that it would extend browser language support beyond JavaScript.

But assumptions have a way of fading in the face of real-world use cases.

With Wasm outside the browser, many developers want to be able to run their JavaScript code anywhere they can run Wasm. And this is best accomplished by making it possible to run JavaScript inside of a Wasm runtime (instead of next to it, as it does in the browser). In 2022, we saw several new Wasm projects focused on bringing JS to the new runtime. Most of these used a great open source project called QuickJS.

QuickJS has many virtues, the foremost being that it is fully compliant to the latest JavaScript standard. But it is not designed to be the fastest or most robust JavaScript engine. It is so easy to embed that many early Wasm projects have figured out ways to compile the interpreter to Wasm and then run JavaScript inside of a Wasm runtime.

But there is a mainstream JavaScript runtime entering the fray. The SpiderMonkey engine from Mozilla, known for its performance and robustness, is moving into the Wasm world. It is most famous for its usage in the Mozilla Firefox browser, but it can be used outside the browser as well. As a runtime that can continually optimize the scripts it executes, the SpiderMonkey engine will be the fastest JS engine in the Wasm world. Early data suggests that, because of optimizations that can be made in this environment, JavaScript run inside of the Wasm version of SpiderMonkey may execute as much as 13x faster than JS in the browser.

JavaScript is the world’s most popular programming language. And with Wasm runtimes like QuickJS and SpiderMonkey, the potential of Wasm is suddenly available to a huge developer community. Yes, C was the first programming language to support Wasm. And yes, Rust has a considerable foothold. Sure, we’re seeing Python and Ruby move, too. But JavaScript is going to shoot like a rocket into the Wasm stratosphere.

Conclusion: 2023 Is the Year of Wasm

I have made five bold predictions about what will happen inside of the Wasm ecosystem. And as these milestones come true, Wasm will become even more useful as a general-purpose technology beyond the browser. At the beginning of the article, I suggested that 2023 is poised to be the year of Wasm. Given these five predictions, it is easy to see why: new features, clever use cases, integration with Docker Hub and broad language support combine to make this a developer-friendly technology with huge promise.

Group Created with Sketch.
TNS owner Insight Partners is an investor in: Moment, fermyon, Docker, Kubernetes.
TNS DAILY NEWSLETTER Receive a free roundup of the most recent TNS articles in your inbox each day.