Google,
Apple,
Microsoft, and
Mozilla have partnered to develop a new binary format code called
WebAssembly (wasm) that is aimed at increasing the speed and efficiency with which browsers compile, parse, and render Web applications and webpages as compared to text-based JavaScript and asm.js. Engineers from the companies have formed the informal W3C community group,
WebAssembly CG, to further development.
Not meant to replace JavaScript or asm.js, the WebAssembly bytecode or machine-level instruction set also allows developers to use a wider set of languages that can be compiled for browsers, and the two will work side by side in future browsers. Binary code is faster to decode than higher level, text-based code, and can also be better compressed. While WebAssembly may be used for parts of the Web applications that usually require compression, JavaScript and asm.js will continue to be used to write lighter elements like UI. Early tests of the binary format code show it is more than 20 percent faster at being decoded as compared to asm.js code.
There has long been a call for a bytecode machine-level instruction set for the Web, and WebAssembly is not the first bytecode system for the Web - with Microsoft's .NET and Oracle's Java other examples of bytecode runtimes. However, it is aimed to be the first widely-accepted bytecode to be directly integrated into the rendering engines of all browsers rather than requiring separate plugins. Google too had tried a hand at providing a way to run code natively in browsers with its Native Client, but this was not adopted by browser makers the world over.
The final aim with WebAssembly is to create a Web standard used by all browsers, both desktop and mobile, that will allow for decoding that's fast enough to enable Web applications to work with performance similar to native applications.