Menu

React, etc. Tech Stack

React, Flux, GraphQL, Hack, HHVM...? All of this and more!

State of WebAssembly in 2018: Browser support, dev tooling and specifications on track

Building communications and computing technology is a painstakingly long task. The route from initial idea will typically take years first to spec, implementation and finally mainstream adoption. WebAssembly is now on this route, it is already usable - but the official specification work continues.

WebAssembly is an architecture where web developers compile binary payloadds that are executed by the browser. Instead of script format the binary format is on average smaller, and can take use of novel optimisations like streaming compilation to gain a perforemance advantage.

WebAssembly is the first real alternative to JavaScript in browser environments. Because it is a new format it does not need to take backwards compatibility into account the same way as JavaScript does. By nature WebAssembly is very different though, as developers will likely not write wasm code by hand.

Developers are more likely to write WebAssembly applications in other languages like Python or Rust (see State of WebAssembly and Rust). This opens up interesting opportunities for performance, as well as not being limited by the JavaScript format, or using it as a temporary transpilation target. Uses for the language are also more limited to high performance. WebAssembly will not replace JavaScript, per se.

WebAssembly embraced by browser vendors - Specs incoming

Any web technology needs implementations. But for WebAssembly this is looking good, the dark ages of proprietary web technologies like ActiveX and Adobe Flash are long gone. The community has learned to work together. At this early stage we've already had three implementations since early 2016:

The WebAssembly train is well on track, as tooling around Rust and other languages comes available. HTML5 underlined the need for specifications not only for web developers, but browser vendors as well. The WebComponents work and adoption has taken more time than expected, but eventually Web Components are likely to become the norm, and in the meanwhile developers are free to use technologies like React.js or Vue.js for Interfaces.

A formal specification for a technology of such low level core technology for the future of the web. WebAssembly standardization work is done by the World Wide Web Consortium (W3C). It is an community with member organisations, some full time staff and other employees. The organization is lead by Tim Berners-Lee on a mission to allow the web to reach it's full potential.

On February 15th 2018 the W3C working group on WebAssembly announced their first set of Web Assembly Drafts. The specification comes in three parts:

With this work moving forward and browser implementations coming, it is safe to say that WebAssembly now has the momentum that it needs to become a widely used standard. It has niche use as such, but in those areas can be a better tool than JavaScript - say writing an Adobe Flash plugin is feasible in WebAssembly.

WebAssembly is proceeding well in four key areas that are needed for long term success of any computing platform or component:

Written by Jorgé on Friday February 16, 2018

Permalink - Tags: javascript, webassembly

« Real world 4G LTE vs. 5G test benchmark: 14x bandwidth - Oracle to stop providing a free Java (JDK) with Long Term Support (LTS) »