BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News WebAssembly 1.0 Becomes a W3C Recommendation and the Fourth Language to Run Natively in Browsers

WebAssembly 1.0 Becomes a W3C Recommendation and the Fourth Language to Run Natively in Browsers

This item in japanese

Lire ce contenu en français

Bookmarks

The World Wide Web Consortium (W3C) recently announced that the WebAssembly Core Specification is now an official web standard. Following HTML, CSS and JavaScript, WebAssembly thus becomes officially the fourth language to run natively in browsers.

The WebAssembly Core Specification describes WebAssembly as a safe, portable, low-level code format designed for efficient execution and compact representation. WebAssembly seeks to be hardware-independent, language-independent, and platform-independent. WebAssembly thus may target all modern architectures, desktop or mobile devices and embedded systems alike. WebAssembly programs may be embedded in browsers, run as a stand-alone VM, or integrated in other environments.

To encompass the variety of use cases, the WebAssembly specification is split and layered into several documents. The core specification relates to the WebAssembly JS Interface which provides an explicit JavaScript API for interacting with WebAssembly, and the WebAssembly Web API which focuses on the integration of WebAssembly with the broader web platform.

At its core, WebAssembly is a virtual instruction set architecture (ISA). The core specifications thus tackles the core ISA layer of WebAssembly, defining the instruction set, binary encoding, validation, and execution semantics, as well as a textual representation.

Philippe Le Hégaret, W3C project lead, explains the potential of WebAssembly:

The arrival of WebAssembly expands the range of applications that can be achieved by simply using Open Web Platform technologies. In a world where machine learning and Artificial Intelligence become more and more common, it is important to enable high performance applications on the Web, without compromising the safety of the users.

WebAssembly usage in the wild can be observed in utility software such as the Google Earth port, iconic games such as Doom3, and heavy desktop applications such as game editors or design tools such as Figma.

Chun Gao, senior architect at Agora, shared his enthusiasm for the technology:

WebAssembly makes it possible to provide strong computing capabilities on Web. It will exceedingly expand the application scenario of Web Apps, and rapidly increase the chance of developing compute-intensive Apps including real-time video/audio processing, hardcore games and AI with Web technologies. As an RTC service provider, Agora is devoted to deliver services with better real-time performance. We have released products based on WebAssembly, which enhances the performance and compatibility of video stream processing. We belie[ve] WebAssembly will be the most important option for Web developers to implement high performance Web Apps.

With the 1.0 specifications now released, future versions of WebAssembly are already in the work, including features such as threading, fixed-width SIMD, reference types, tail calls, or ECMAScript module integration.

The mission of the World Wide Web Consortium (W3C) is to lead the Web to its full potential by creating technical standards and guidelines to ensure that the Web remains open, accessible, and interoperable for everyone around the globe. W3C is jointly hosted by the MIT Computer Science and Artificial Intelligence Laboratory (MIT CSAIL) in the United States, the European Research Consortium for Informatics and Mathematics (ERCIM) headquartered in France, Keio University in Japan and Beihang University in China.

Rate this Article

Adoption
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Welcome to WebApps!

    by José Ferreira,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Cool

  • Slight misstatement

    by Jeff Jones,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Webassembly (wasm) is not a language. It is compiled intermediate code, like MSIL and others, that an OS-specific (or in this case a browser-specific) engine runs. No one is writing wasm. They use languages like C#, Rust, and others (except JavaScript, which is not supported) which trhen compile to wasm doe execution in the browser by the wasm engine.

  • Re: Slight misstatement

    by Daniel Bryant,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I hear you Jeff, but I think that technically the Wasm open standard defines a portable binary code and corresponding assembly language -> en.wikipedia.org/wiki/WebAssembly

  • game changer

    by Lio Mendonça,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    This is truly a game changer for the web. Looking forward to it!

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

BT