Put WebAssembly on the front-end and back-end in 2023
Ratified in December 2019 by the W3C standards committee, WebAssembly has promised to change the way web applications are built and deployed.
While traditional web development requires knowledge of JavaScript, or a derivative such as TypeScript, WebAssembly enables developers to write browser-based applications in any compatible language, including C, Java, Rust or C++. Furthermore, WebAssembly apps are deployed as portable binary files which are incredibly efficient at runtime in comparison to JavaScript.
WebAssembly has been slow to gain traction on the client side, but that’s about to change in 2023. Organizations have begun to realize that they can homogenize front-end and back-end development through the use of WebAssembly on both sides of the software development stack.
WebAssembly on the client side
Let’s look at an example of how WebAssembly makes it easier to develop and deploy web-based applications.
Adobe, for one, uses WebAssembly to run its Acrobat tool directly within any modern web browser.
Acrobat is very powerful, but it requires using a lot of resources that are native to the host computer. Access to machine-level resources is typically limited when using a web browser. However, embedding Acrobat as a WebAssembly module within a web browser enables direct, native interaction.
Server-side WebAssembly
Components created with WebAssembly promise to operate at near-native speed, which puts them at a competitive advantage over components written in Python or Java.
Virtual machines take minutes to get up and running, while containers can take several seconds. A WebAssembly module can load into a server’s memory in milliseconds, if not microseconds. Thus, it’s possible to spin up a microservice when needed and then remove it from memory immediately once its job is done. The microservice does not hang around eating up resources that could be made available to other processes.
Another benefit of WebAssembly on the server side is that compiled code can run anywhere in a secure manner, regardless of the host operating system and CPU. It interacts with the underlying system via the WebAssembly System Interface (WASI).
WebAssembly and Docker containers
WebAssembly’s modularity and portability make the technology both a compelling alternative and a viable addition to the Linux container ecosystem.
Some projects already take advantage of this opportunity. For example, Krustlet lets developers run WebAssembly modules in a Kubernetes cluster. Also, startup company Fermyon supports a cloud-based ecosystem to run microservices-based applications constructed using WebAssembly.
The long and the short of it is that server-side technologies for WebAssembly are noticeably growing, and that growth will continue in 2023. And as server-side adoption increases, so will the share of client-side deployment.
2023 will be remembered as the year WebAssembly really took off. For developers who want to stay on top of the latest trends, it’s in their best interests to learn it.