WebAssembly (https://github.com/WebAssembly/design) is a new format for native programs on the web. It aims to support everything that asm.js supports, but allows the VM to sidestep the JS parsing and profiling pipeline entirely. This is a good thing for the VM - less work to support native code.
Although WebAssembly will have polyfill to asm.js, we should support it natively by:
- Having a WebAssembly baseline JIT that's used for fast start-up and some basic execution count profiling.
- An LLVM backend that uses the FTL's LLVM glue and compiler plan scheduling for hot code.
This standard has broad support, and we should continue to participate in discussions about how to make it great.
https://blog.mozilla.org/luke/2015/06/17/webassembly/
https://brendaneich.com/2015/06/from-asm-js-to-webassembly/
http://blogs.msdn.com/b/mikeholman/archive/2015/06/17/working-on-the-future-o...
https://twitter.com/jfbastien/status/611201861245399041
Сейчас единственный способ писать client-side — использовать JS или любой другой язык, который будет транслироваться в JS. Что геморрно, ибо генерировать JopaScript не очень удобно, да и браузеры не в восторге его парсить. WebAssembly - бинарный формат, который проще как генерировать, так и парсить (Из FAQ: исходники по прежнему можно будет просматривать в читаемом виде в developer tools).
В краткосрочной перспективе (в качестве Proof of Concept или MVP) формат будет пригоден для использования под web С/C++ (языки без GC). При чём, (в том числе) можно будет линковать модули написанные на этих низкоуровневых языках из обычного JS. В дальнейшем планируется добавить поддержку других языков, реализовав garbage collected объекты.