What's the New features planned for WebAssembly?

WebAssembly is an offshoot of Mozilla research project, first announced in mid 2015; a low-level programming language for in-browser client-side scripting, designed to be faster to parse and execute than JavaScript.

It provides a binary code format that is smaller over the wire, loads faster, and has better performance than JavaScript as regards executing computationally intensive operations in a browser.

The emerging technology presents a road-map to improve its language support via garbage collection, threads, better debugging, and a SIMD (single instruction, multiple data) extension.

WebAssembly garbage collection

Garbage collection is currently in the proposal stage of the WebAssembly roadmap, and necessary to efficiently allocate and manipulate managed objects, while WebAssembly should allow tight integration with the Web, it should not bake in details or Web standards dependencies that prevent execution in a non-Web embedding.

To realize the high-level goals of (1) integrating well with the existing Web platform and (2) supporting languages other than C++, WebAssembly needs to be able to efficiently allocate and manipulate GC objects directly from WebAssembly code.

Thread support for WebAssembly

WebAssembly now offers basic debugging capabilities, but with the planned SIMD extension, it will gain support for instructions used in image and video processing and cryptography.

Additionally, the “zero-cost” exception-handling for C/C++ will eliminate overhead, and improve debugging, even as the developers are working on capabilities for source maps and memory inspection.

While it's possible to use other languages with WebAssembly, the languages cannot currently achieve the ideal performance, memory utilization, or DOM integration. As such it will require enhancements to support languages using higher level garbage collection, such as Java, C#, and Python.

WebAssembly currently can be used with JavaScript in applications, with JavaScript used for scripting and WebAssembly for computational performance. Now, what’s next for WebAssembly, the portable stack machine?
Next Post »