<<

HORIZONTERWEITERUNG FOR WEBASSEMBLY

1 / 21 2 / 21 3 / 21 SGML CSS ClojureScript SCSS

Flash TypeScript PHP LESS

C++ o React JavaScript RubyOnRails

Python

Vue WebAssembly gular Flask SASS

Rust XHTML HTML Pure Perl

4 / 21 JavaScript NaCl Wasm Ann. W3C-Draft 1995 2011 2015 2018

2013 2017 asm.js MVP-Wasm

2019 Wasm W3C Standard

5 / 21 well-defined safe portable fast hardware-independent parallelizable open efficient platform-independent streamable modular language-independent compact

6 / 21 7 / 21 Languages Format Runtime Targets C .wasm WebBrowser X86 C++ wasm-pack Wasmer AMD64 Rust ... Wasmtime ARM AssemblyScript NodeJS ... C# --- ....

8 / 21 extern "C" { int divideByTwo(int x) { return x / 2; } }

git clone ://github.com/emscripten-core/emsdk.git ./emsdk/emsdk install latest source ~/emsdk/emsdk_env.sh emcc divideByTwo.cpp -o build/divideByTwo.wasm

9 / 21 10 / 21 11 / 21 Qt 5.12 Qt 5.13 Qt 5.14 Qt 5.15 Qt 6.0 Nov 2018 Mai 2019 Nov 2019 Mai 2020 Nov 2020

Technology New Preview Platform

12 / 21 Link: https://msorvig.github.io/qt-webassembly-examples/slate/slate.

13 / 21 14 / 21 # qt 5.15 recommends emscripten 1.39.8 git clone [email protected]:emscripten-core/emsdk.git ./emsdk/emsdk install 1.39.8 ./emsdk/emsdk activate --embedded 1.39.8

source ~/emsdk/emsdk_env.sh mkdir build && cd build /opt/Qt/5.15.0/wasm_32/bin/qmake ../application.pro make

qtloader.js qtlogo.svg application.html application.js application.wasm

15 / 21 16 / 21 EXPERIENCES Qt: Work in Progress WebAssembly: Work in Progress Debugging vs. Logging to Console Separation Logic: Backend, Frontend Compilation: Backend, Frontend Wasm file size

17 / 21 AREA OF APPLICATION to the Independent Applications Serverless Edge Computing Internet of Things

18 / 21 RESOURCES Morten Sørvig - WebAssembly with Qt, Jonathan Beri - WebAssembly and the Internet of Things, Dan Callahan: Practical WebAssembly, Lin Clark — WebAssembly: Building a new kind of ecosystem, Wasm Specification, WebAssembly, WebAssembly: Disrupting JavaScript, Code Repository: Qt for WebAssembly

19 / 21 INSPIRATIONS Felgo, Qt, Autodesk AutoCAD, Adobe Lightroom, RIVE, envoy, jq, Earth, DIABLO, webassemblymusic, Tanks, Pyodide, Figma, Video Editor, Raytracing, more examples ...

20 / 21 MAKING VISIONS WORK

Andreas Heimberger bbv Soware Services AG Blumenrain 10 6002 Luzern Schweiz

21 / 21