Recent years, we are building large scaled apps with Web technlogies. They consist of more millions lines of JavaScript code and various kind of assets to be managed by JS programs. This trend has continued since re-discovery of AJAX and Web APIs' evolution accelerate it.
In this context, we need the technologies which allows us to build and run such large scaled Web apps efficiently. asm.js and WebAssembly (WASM) are key technologes for it. asm.js is a simplified subset of JavaScript, which offers us near native speed code execution on the Web browers. WASM is a portable and size / loadtime effective binary format for browsers to generate native codes, of which capabilities are equivalent to asm.js code fr now. These are too complicated to be hand-written, so we will generate them with compilers.
Emscripten is the most famous tool to generate asm.js / WASM. It is a tool based on LLVM, so we can build programms running on the top of web browsers, which are written in C / C++. This means not only that we can port C / C++ to the Web easily, but also we can utlize C / C++ developers' knowledge and tools to develop web apps.
In this talk, we will overview these fundamental technlogies: asm.js, WASM, and Emscripten. We will look the background to introduce these technolgies, as well as their current status. We will also close look at WASM specs.