July 7, 2015

WebAssembly: Running Byte Code in the Browser

Currently, all of the major browser vendors are collaborating together on a new standard called WebAssembly, which is a compilation model for the web using compressed binary AST encoding. This will allow engineers to run code written in different languages directly in the browser.

One immediate effect of WebAssembly is that it should bring about a faster online browsing experience. It would also provide C/C++ support to begin with and streamline the internal development process to make Web-app creation easier, according to a study by ReadWrite.

Does this mean that JavaScript is dead? Absolutely not. In fact, WebAssembly was designed to be a complement to JavaScript, as well as work together with JavaScript on a number of configurations, which are outlined on the WebAssembly repository. There already existed an MVP for WebAssembly in asm.js, so these new developments will allow this to be taken through the next step. As the syntax continues to improve, JavaScript can begin to be used as a more high level language.

Though WebAssembly is a new standard being developed, Mozilla, Chromium, WebKit, and Edge browser engineers are working together on it with the WebAssembly engineering team. The WebAssembly team is also writing a polyfill to allow it to work on current browsers, meaning that anyone can begin prototyping with this new development and witness how revolutionary it can become.

Embedded below is a Unity 5.0 game that runs using WebGL, a web graphics library, and asm.js. The game is able to be played in the browser without any separate plugins or extensions.

This game was developed over a year ago, and is only a basic example of what WebAssembly can support. There is a complete list of use cases and projected high level goals available on the WebAssembly repository.

The development of WebAssembly brings a single code base solution for new and developing browser-based apps. This will allow native code to be run directly in a browser without any performance, service, memory, or other loss, and hopefully usher in a new era of web development. You can test out WebAssembly for yourself with its polyfill, and see just how innovative it is becoming.