Google, Mozilla, and Microsoft Team Up for WebAssembly

Google, Mozilla, and Microsoft Team Up for WebAssembly

Webassembly (wasm) is a new binary format formed in collaboration with tech giants Google, Microsoft, Mozilla and the engineers of the WebKit Project. WebAssembly is the new binary format for compiling applications on the web.

This binary format will be used for performance of the critical code and to compile other programming languages to be used for the web platform.

Mozilla Microsoft Google

JavaScript

The web thrives on standards and JavaScript is its programming language. Whether developers like it or not, they stick to this web standards. JavaScript engines have been a major focus on browser developers for quite some time now and as a result, there has been a substantial performance increase.

In spite of these improvements, there are still limitations to the programming language. The design of the programming language itself isn’t made for taking optimizing performance to the next level. JIT (Just In Time) compiler won’t be able to optimize aggressively as it would like and the ability to modify the behavior of built-in objects could be very problematic.

However, there are things in which JavaScript stands out. Unlike script files, the byte code represents a low level and very compact representation of the program. Bytecodes are also much easier to read and compile than script files.

Over the years, developers have found a for a workaround to these limitations by building compilers that compile code from other languages to JavaScript. Some of the known implementations of these are Microsoft’s TypeScript and Mozillas asm.js project. Now, these projects have come together in a form of WebAssembly.

The Benefits of WebAssembly

WebAssembly is a binary format for the web created by Google, Microsoft, Mozilla and others. This binary format will be used for performance critical code and to compile it in other languages, particularly in C/C++ to the web platform.

Initially, WebAssembly is a binary format for delivering asm.js code. The advantages of such format are:

Faster loading. This is very helpful for large code bases and mobile devices where parsing becomes a bottleneck. Web Assembly can be loaded 20 times faster as the work of parsing is only minimal.

JavaScript and WebAssembly

WebAssembly is meant to work hand in hand with JavaScript and not replace it. In fact, it is simply a new feature of JavaScript engines that builds on their infrastructures. This means that:

  1. Everything will always be backwards-compatible.
  2. It will run the same way as JavaScript runs.
  3. Security features will work like JavaScript.

The advantage of WebAssembly is that it removes the burden for JavaScript to be a good target for other languages.

How is WebAssembly Different

Before WebAssembly, there was Adobe Flash, Google Portable Native Client, etc. All of these have failed miserably so what makes this one different? First, is that it is a collaborative effort. Firefox, Chromium, Edge and Webkit worked together on this so this could also be the next standards of the web.

WebAssemble is not meant to replace JavaScript. It is more about adding new features to them. This will inevitably reduce the amount of work to implement WASM.

What’s In It For Developers?

WebAssebmly brings language diversity to the web. It adds things that most developers won’t agree it needs to be in JavaScript. It will get to support compiling from other languages that use them.

The result is an easier way to port code that relies heavily on features like shared memory threads. The process of writing a compiler for WebAssembly is simplified compared to writing a compiler for JavaScript simply because there is a better mapping from the source language features.

Old languages can now run on the web platform and WebAssembly can also be an open invitation to developers in building future programming languages.

The people behind WASM understand that JavaScript is widely accepted while WASM isn’t. Their plan is to fill this gap by converting wasm to asm.js for browsers that don’t have native wasm support.

What’s In It For Average Users?

WebAssembly is intended to be a portable bytecode that will be efficient for browsers to download and load. This provides a more efficient target for compilers compared to using JavaScript or asm.js alone. WebAssembly instructions operate on a native machine which means that it enables efficient compilation. WASM (WebAssembly) is also designed to be extensible.

This means that for an average web user, expect that web pages will load faster. Videos and games run on the web will run faster than before and is more optimized to work with all types of browsers and devices.

This also means that in the future, web browsers can run high-end games or even desktop apps like Adobe Photoshop or Adobe Premier Pro. Sure, there already applications on the web that does that; however, with WASM, people will have a near-desktop experience.

Early Stage

WASM is currently in the early stages of development. There isn’t any formal standards body behind it, just an informal community group. The specifications aren’t completed and the high level design is still being decided. However, with the tech giants working together, WASM will be in your web browsers in the near future.

Conclusion

WebAssembly is an attempt to provide a portable bytecode that aims to provide faster web browsers. This can enable applications to be run in the browser or a mobile device faster than it would with JavaScript.

It is not meant to replace JavaScript but to allow more languages to be compiled for the web. Developers can run legacy programming languages to a web browser and they can even create their own programming language.

Average users, on the other hand, will expect faster and better performing websites. In the future, most of programs in desktop will also run on the web in a close to native performance.

Currently, the companies are implementing and discussing the design ideas for WebAssembly. It will be very interesting to know how this project progresses and in the near future, we’ll see a much bigger and brighter web that we thought would never happen.

Natalie

My Name is Natalie Tracy by profession I'm designer, an editor, and occasional writer/interviewer. I'm resides in Phoenix, AZ and is an office drone at a web solutions company by day.

Leave a Reply

Your email address will not be published. Required fields are marked *