Web assembly: a brief overview

PavloIatsiuk 152 views 11 slides Apr 02, 2020
Slide 1
Slide 1 of 11
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11

About This Presentation

A brief overview of what is web assembly and what was before


Slide Content

WebAssembly Brief overview

Problem Sell feature - Fast code execution Faster than JS Zero configuration Safe Cross platform Easy to use

Before WASM Winners JavaScript V8 HTML5 L osers ActiveX Flash Silverlight asm.js Native client Java applets

About Asm.js Wikipedia - asm.js is a subset of JavaScript designed to allow computer software written in languages such as C to be run as web applications. C/C++ => LLVM => Emscripten => asm.js

What is WebAssembly? WebAssembly is a binary instruction format for a stack-based virtual machine. Binary Virtual machine Stack-based (no heap)

WebAssembly High-Level Goals Define a portable, size- and load-time-efficient binary format threads, zero cost exceptions execute in the same semantic universe as JavaScript allow synchronous calls to and from JavaScript define a human-editable text format to support View Source functionality

Wasm Fiddle

WASM and Javascript Only JS loads and executes WASM WASM and JS share the same sandbox

Supported by browsers

Supported by languages C/C++ - emscripten Rust Java - TeaVM, JWebAssemly, Bytecoder Kotlin - Kotlin Native LLVM backend Go .Net, C#, F# - Blazor https://github.com/appcypher/awesome-wasm-langs

WASM frameworks Emscripten, Rustwasm - low level, not convenient to work with html and css. Good for heavy work. Not UI. Blazor - inspired by VueJS. Most complete solution for typical web applications.