Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
State of WebAssembly
Search
Sendil Kumar N
February 19, 2020
Technology
87
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
State of WebAssembly
Sendil Kumar N
February 19, 2020
More Decks by Sendil Kumar N
See All by Sendil Kumar N
[Heapcon-2023] Building High Performance Web Applications
sendilkumarn
0
130
Building Reactive Microservices with Kotlin & running on Kubernetes
sendilkumarn
0
240
Building Reactive Microservices with JHipster & K8s
sendilkumarn
0
63
Designing High Performance React Applications
sendilkumarn
1
210
Batching, Suspense, and Server Components
sendilkumarn
0
93
DevNexus_Building_with__Zero_Trust_Architecture_Copy.pdf
sendilkumarn
0
100
Lessons Learnt with Visual Testing and Snapshots
sendilkumarn
0
160
Easy Microservices with K8s & Istio
sendilkumarn
0
130
KHipster - Kotlin Hipster
sendilkumarn
0
280
Other Decks in Technology
See All in Technology
安心して変更できるWebフロントエンドの作り方
pirosikick
4
2.2k
10分で知る最近のOmarchy
komagata
0
310
あるけみー式LTスライド作成術
alchemy1115
1
210
Geolonia の開発現場における AIの活用について
miya0001
0
100
幾何アルゴリズムで なめらかなピン操作を / iOSDC Japan 2026 / smoothpin
kazumanagano
0
340
家のリアーキテクト・リファクタリング
suguruooki
0
150
DEFCON_CHV_CTF_Write-up.pdf
bata_24
0
150
20260912_スクフェス三河
kgnkhkr
0
350
[2026-09-11]SREは誰のもの?運用エンジニアが始める 「SRE領域への越境」とチームの進化の軌跡 〜Road to NEXT CRE
tosite
0
220
DEFCON34-Write-up_HYCu-MYCu
daikiokazaki
0
160
おい、エージェントを使って終わらせろ
nwiizo
0
200
人間はどの意思決定を手放せるのか
kawasima
14
5.8k
Featured
See All Featured
Embracing the Ebb and Flow
colly
88
5.2k
Ethics towards AI in product and experience design
skipperchong
2
370
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
840
Product Roadmaps are Hard
iamctodd
55
13k
How to Talk to Developers About Accessibility
jct
2
550
Amusing Abliteration
ianozsvald
1
300
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
540
Color Theory Basics | Prateek | Gurzu
gurzu
0
460
The Cult of Friendly URLs
andyhume
79
7k
Transcript
@sendilkumarn Hoi Nederland !!!
@sendilkumarn Languages are built for a purpose. Choose & Use
them wisely…
The state of WebAssembly Sendil Kumar N
@sendilkumarn Sendil Kumar
@sendilkumarn Hacking on WebAssembly
JavaScript is weird @sendilkumarn
[1, 2] + [3, 4] @sendilkumarn
1, 23, 4 @sendilkumarn [1, 2] + [3, 4]
1, 23, 4 @sendilkumarn [1, 2].toString() + [3, 4].toString() “1,2”
+ “3, 4”
JavaScript is weird* * - sometimes @sendilkumarn
@sendilkumarn JavaScript Execution
@sendilkumarn Load JavaScript
@sendilkumarn a.js AST 1001010010101101010 Execute Profiler Parse Interpret Compile 100101001010
Optimise 1010 GC
@sendilkumarn JavaScript Tuning
@sendilkumarn Css Tuning
JavaScript is awesome @sendilkumarn ~80% ~90% https://2019.stateofjs.com/opinions/
@sendilkumarn JavaScript is easy https://octoverse.github.com/ 6 years in row
@sendilkumarn https://2019.stateofjs.com/opinions/ ~59% ~40% JavaScript is evolving
So what is the problem? @sendilkumarn
@sendilkumarn Types Polymorphism Unpredictable Performance Runtime exceptions
@sendilkumarn Types 66% users interested to use TypeScript https://2019.stateofjs.com/javascript-flavors/
@sendilkumarn Predicatble Performance Types Unpredictable Performance Typed
WebAssembly @sendilkumarn
Yet Another Frontend framework?
@sendilkumarn 00 61 73 6D 01 00 00 00 Native
Code Binary JavaScript Javascript Engine Runtime
@sendilkumarn 00 61 73 6D 01 00 00 00 Native
Code Binary JavaScript Javascript Engine
WebAssembly is not a language @sendilkumarn
@sendilkumarn func add is called Stack get_local $lhs LHS RHS
get_local $rhs i32.add SUM Structured stack machine
@sendilkumarn 00 61 73 6D 01 00 00 00 Size
& Load time efficient
@sendilkumarn What WebAssembly provides?
@sendilkumarn Speed
@sendilkumarn Near Native perf. ~30% faster than JS
@sendilkumarn secure
@sendilkumarn Linear Memory Model
@sendilkumarn Shared Array Buffer
@sendilkumarn Typed
@sendilkumarn i32 i64 f32 f64 00 61 73 6D 01
00 00 00 WebAssembly Binary JavaScript Javascript Engine Binding JS file
@sendilkumarn Boundary Crossing
@sendilkumarn Not always faster
@sendilkumarn How WASM works?
@sendilkumarn WebAssembly Execution
@sendilkumarn Load WebAssembly
@sendilkumarn Decode Compile Execute 00 61 73 6D 00 61
73 6D 00 61 73 6D
@sendilkumarn PARSE COMPILE OPTIMISE EXECUTE GC JavaScript execution DECODE COMPILE
EXECUTE WebAssembly execution
@sendilkumarn PARSE COMPILE OPTIMISE EXECUTE GC JavaScript execution DECODE COMPILE
EXECUTE WebAssembly execution I am faster
@sendilkumarn PARSE COMPILE OPTIMISE EXECUTE GC JavaScript execution DECODE COMPILE
EXECUTE WebAssembly execution Optimised already
@sendilkumarn Streaming compilation
What languages can do wasm? @sendilkumarn
C/C++ @sendilkumarn
@sendilkumarn ./emcc -O3 helloworld.c
Why C/C++? @sendilkumarn Tons of options All batteries included Verbose
Rust @sendilkumarn
@sendilkumarn $ wasm-pack build $ cargo install wasm-pack
Why Rust? @sendilkumarn Inbuilt into the compiler All batteries included
Best tooling support Sometimes bigger binaries
AssemblyScript @sendilkumarn
@sendilkumarn $ asc helloworld.ts -b helloworld.wasm -O3 $ npm i
--save-dev assemblyscript
Why AssemblyScript? @sendilkumarn Closer to JavaScript community Good tooling support
/ options
Go @sendilkumarn
@sendilkumarn $ GOOS=js GOARCH=wasm go build -o out/main.wasm go/main.go
Why Go? @sendilkumarn Easy & Concise TinyGo is awesome Reflections
& Proxies everywhere
@sendilkumarn Future
@sendilkumarn Interface types
@sendilkumarn Single Instruction Multiple Data
@sendilkumarn ♻ Garbage Collection
@sendilkumarn WASI WebAssembly System Interface
JavaScript with WebAssembly together makes web even more awesome &
faster @sendilkumarn
@sendilkumarn Thanks… @sendilkumarn dev.to/sendilkumarn sendilkumarn.com/blog Questions…