Competing browser makers, led by Mozilla’s Firefox engineers, made a surprising revelation last week: They’ve been secretly working on a joint project that could vault the Web into its next stage of evolution.
“I’m happy to report that we at Mozilla have started working with Chromium, Edge and WebKit engineers on creating a new standard, WebAssembly,” Luke Wagner, one of the project’s leaders, wrote in a blog post.
The immediate effect of WebAssembly (known as “wasm” for short) is that it should make online browsing faster. But that may be its least exciting benefit.
The standard could give developers the ability to take powerful, processor-hungry experiences—the type that has been primarily restricted to desktop software—and make them work well online. WebAssembly shouldn’t overcomplicate development, either. On the contrary, it streamlines the process, making Web-app creation easier.
See also: How Asm.js Could Transfigure PC Gaming
That has deep implications in today’s app-obsessed world. All too often, developers and users are forced to pick hardware-oriented sides—Apple’s iOS and OS X, Google’s Android, Microsoft’s Windows, or another platform. If WebAssembly works to usher in powerful Web apps, developers tired of making (or remaking) apps to suit specific platforms could have a way off the porting merry-go-round.
The most promising aspect thus far: The standard won’t have to fight for support. Thanks to its origins as a collaboration between Web-standards rivals, the project will arrive with support from the major browsers already baked in.
Crossing The Wasm
When it comes to technical standards, adoption is no small matter. Some standards can age or even die on the shelf, waiting for widespread support. Take wireless charging, for instance.
Fighting between three major organizations, each championing a different approach, has kept the tech makers from rallying behind a particular one. Although two consortia have merged recently, the fight’s still not over.
See also: NPM Wants To Push JavaScript Developers To Make Lego-Like Web Apps
In contrast, WebAssembly has a dream team of Chromium, WebKit and Edge browser engineers behind it, making it destined for widespread support from the world’s leading browsers—namely Google’s Chrome; Apple’s Safari; and Microsoft’s Internet Explorer replacement, Edge; as well as Mozilla’s Firefox.
Such collaboration among rivals seems remarkable, especially in the highly competitive world of technology. But it also reminds us what can be accomplished when smart people put their minds together. WebAssembly stands to offer Web applications with desktop-class performance across categories—from advanced gaming, video editing, even virtual-reality (VR) activities. And users would be able to access those apps from anywhere, without fussing with downloads or software installations.
That could give a big boost to technologies like virtual reality. Developers would have numerous ways to bring their projects to the public, while users get more to enjoy. (That’s one reason for YouTube’s new support for 360-degree videos.)
WebAssembly’s technical underpinnings could give developers even more reason to cheer.
No JavaScript Killer—More Like A JavaScript Booster
On his blog, JavaScript expert and author Axel Rauschmayer describes WebAssembly as “a new feature of JavaScript engines that builds on their infrastructures.”
Let’s unpack that a little: Much of today’s Web was made with JavaScript, the Web development language created in 1995 by Brendan Eich, formerly of Netscape and Mozilla. Without it, static webpages would stretch out endlessly before our bored eyeballs. Instead, we now have dynamic features, from simple games and animations, to bookmark applets and full-blown Web apps.
JavaScript is not the only game in town, but it has been the most popular. Now WebAssembly aims to improve upon it, both in power and ease. In that regard, it’s tempting to call the new standard a Javascript killer. But that’s not quite accurate. WebAssembly doesn’t replace, but adds to JavaScript, filling in some important gaps—oddly enough, by drilling down to some basics.
See also: Can We Please Stop Fighting The Native vs. Web App Wars?
Mozilla and its new pals have given developers a binary format for the Web. They get access to low-level building blocks, so they can essentially construct whatever they want.
The further you dig into the technical details, the better WebAssembly seems. For example, it offers developers a better way to compile code without wanting to pull their hair out. Compilers act as translators for source code, making it understandable for other languages and letting it be acted upon, as in executable programs. It’s a critical part of development, and WebAssembly can step in as the compilation target, easing JavaScript’s load. Rauschmayer explains that WebAssembly may be most useful “for performance critical code and to compile other languages (especially C/C++) to the web platform.”
Eich weighed in on WebAssembly on his blog, where he also argued that JavaScript is far from dead, and will keep progressing alongside this new technology:
[W]ith co-evolution of JS and wasm, in a few years I believe all the top browsers will sport JS engines that have become truly polyglot virtual machines. I predict that JS over the same timespan will endure and evolve to absorb more APIs and hardware-based affordances — but not all, where wasm carries the weight.
WebAssembly may still be in its early stages, but its potential already seems big. Hopefully the reality will match the promise, because a faster, more efficient—and more powerful—Web just can’t get here fast enough.
Photo courtesy of Shutterstock