Upgrade to Pro — share decks privately, control downloads, hide ads and more …

WebAssembly - ein Jahr danach

WebAssembly - ein Jahr danach

The slides of JavaLand 2018 session this year. I've been talking about WebAssembly and its usage scenarios. (German).

Mirko Sertic

March 13, 2018
Tweet

More Decks by Mirko Sertic

Other Decks in Technology

Transcript

  1. Mirko Sertic Software Craftsman im Web / eCommerce Umfeld Ich

    baue wirtschaftliche und moderne IT Lösungen @mirkosertic [email protected] https://www.mirkosertic.de https://github.com/mirkosertic
  2. NaN === NaN // false ??? data[[]] = “ Test“

    // {"": "Test"} WTF!!! 1995 JavaScript
  3. JavaScript int factorial(int n) { if (n == 0) return

    1; else return n * factorial(n-1); }
  4. JavaScript int factorial(int n) { if (n == 0) return

    1; else return n * factorial(n-1); } WAT get_local 0 i32.eqz if i32 i32.const 1 else get_local 0 get_local 0 i32.const 1 i32.sub call 0 i32.mul end
  5. JavaScript int factorial(int n) { if (n == 0) return

    1; else return n * factorial(n-1); } WAT get_local 0 i32.eqz if i32 i32.const 1 else get_local 0 get_local 0 i32.const 1 i32.sub call 0 i32.mul end WASM 20 00 50 04 7E 42 01 05 20 00 20 00 42 01 7D 10 00 7E 0B
  6. 2017 MVP nur lineares Memory, kein GC kein DOM /

    opaque Datatypes kein Threading
  7. 2017 MVP nur lineares Memory, kein GC kein DOM /

    opaque Datatypes kein Threading dynamic Linking
  8. Bootstrap request.onload = function() { var bytes = request.response; WebAssembly.instantiate(bytes,

    { // Imports mymodule: { add: function(a, b) { return a + b; } } } ); };
  9. Bootstrap WebAssembly.instantiate(… ).then(function(result) { // Zugriff auf Modul und Instanz

    var wasmModule = result.module; var runningInstance = result.instance; // Exportierte Funktion aufrufen runningInstance.exports.main(); });
  10. Gaming Interaktive Produktdemos Migration von „Legacy Code“ ins Web VR

    / Augmented reality Live video Simulationen Einsatzgebiete