WebAssembly: The 4th Official Language of the Web
Insights on a new, powerful tool
By Shaun Walker, Technical Director and Enterprise Guildmaster, Cognizant Softvision
It can be argued that the web and browser ecosystem is the most powerful and universal technology platform available today. And the number of web technologies to choose from these days is enormous.
That being said, the demands of modern web experiences, particularly the requirements for performance and scalability, are pushing these technologies to their limits. So it should be no surprise that software developers have been searching for a holy grail, a new, cross-platform technology that offers near-native speed, is highly secure, requires zero configuration, and can be easily integrated into a wide variety of development platforms.
Technological innovations of this magnitude do not happen overnight. They take time to evolve and require a number of iterations to reach a state of industry acceptance and maturity that will lead to mass adoption. WebAssembly has emerged as the new kid on the block, offering superior performance, security, and portability. With such a powerful set of capabilities it makes complete sense why WebAssembly is now being positioned as the 4th official language of the web.
WebAssembly — The Background
WebAssembly — The Beginning
WebAssembly — Today
In 2019, Mozilla announced the WebAssembly System Interface (WASI) with the goal of standardizing how WebAssembly code interacts with operating systems outside of a browser context. Because WebAssembly is cross-platform, compiled binaries are able to run both inside and outside browsers, across different devices and operating systems, at near-native speeds.
Also in 2019, the ByteCode Alliance was formed by Mozilla, Microsoft, Google, Intel, and Fastly. It is a nonprofit organization dedicated to the ongoing development of WebAssembly and WASI. And in December 2019, the World Wide Web Consortium (W3C) announced that V1 of the WebAssembly Core Specification had become an official web standard.
WebAssembly — A Definition
So what exactly is WebAssembly? Well in technical terms, it’s “a binary instruction format for a stack-based virtual machine.” Since that includes a lot of technical jargon, let’s break it down by each section:
1. Binary instructions — binary encodings of the types of operations which can be executed by a virtual machine
2. Stack based — binary instructions manipulate values on a stack (push/pop)
3. Virtual Machine — a processor whose purpose is to compile code to real architectures, with portability in mind
And while these concepts are somewhat primitive and simple, it’s the application of them in WebAssembly that makes it new and exciting. Plus, there is extensive industry adoption already so you can write your source code in almost any language ( ie. .NET, Python, Perl, Go, Java, Rust, Ruby, etc… ) and then compile it to WebAssembly which will run natively within the browser.
WebAssembly — The Benefits
In comparison to other technologies, WebAssembly is still relatively new. It still has plenty of room to grow, and continues to gain momentum and adoption. It is not unreasonable to imagine that five years from now, WebAssembly-based frameworks will be just as common as React, Angular, and Vue are today. And if this prediction comes true, WebAssembly will certainly be worthy of the title of “4th official language of the web.”
Shaun Walker shared his insights on WebAssembly at Programmers’ Week 2021, Cognizant Softvision’s week-long event for developers and software engineers from around the world. Watch his presentation here.
Get more insights from our engineering and design experts on our website!