What is WebAssembly?

For a little over two decades now, we’ve had only one programming language available to use natively in a web browser: the famous and infamous JavaScript. The slow death of third-party binary plug-ins has ruled out other languages, such as Java and Flash’s ActionScript, as the old first-class citizens for web development. Other web languages, like CoffeeScript, are just compiled to JavaScript at the end of the day.

But now we have a new possibility: WebAssembly, or Wasm for short.

WebAssembly is a small, fast binary format that promises near-native performance for web applications. Plus, WebAssembly is designed to be a compilation target for any language, JavaScript just being just one of them.

With every major browser now supporting WebAssembly, it’s time to start thinking seriously about writing client-side apps for the web that can be compiled as WebAssembly.

It is worth noting that WebAssembly apps aren’t meant to replace JavaScript apps — at least, not yet. Instead, think of WebAssembly as a companion to JavaScript. Where JavaScript is flexible, dynamically typed, and delivered through human-readable source code, WebAssembly is high-speed, strongly typed, and delivered via a compact binary format.

Developers should consider WebAssembly for performance-intensive use cases such as games, music streaming, video editing, and CAD applications. Many web services have already made the move, such as Google Earth. Figma, a collaborative drawing and diagramming app, turned to WebAssembly to cut load times and execution speed even when WebAssembly was relatively new.

Authentication is still a Nightmare in 2022
Authentication remains one of the most painstaking challenges faced by cybersecurity professionals and researchers. This ranges from a small startup all th way to the biggest organizations. This longstanding and even fundamental element of security continues to cause everyone to have a headache. For…

How WebAssembly works

WebAssembly, developed by the W3C, is in the words of its creators a “compilation target.” Developers don’t write WebAssembly directly; they write in the language of their choice, which is then compiled into WebAssembly bytecode. The bytecode is then run on the client—typically in a web browser—where it’s translated into native machine code and executed at high speed.