Skip to content

Instantly share code, notes, and snippets.

@tonidy
Last active January 1, 2026 16:04
Show Gist options
  • Select an option

  • Save tonidy/6347653d346ac35f06b274b3bb4ce1b4 to your computer and use it in GitHub Desktop.

Select an option

Save tonidy/6347653d346ac35f06b274b3bb4ce1b4 to your computer and use it in GitHub Desktop.
100 Hari Nulis - Day 2

TL;DR: WebAssembly lahir untuk solve performa JavaScript di browser. Tapi dengan WASI, sekarang jadi teknologi portable & secure yang bisa jalan dimana aja. Think of it as "universal binary format" untuk era cloud native.


Ketika JavaScript Mulai Kewalahan: Kisah Lahirnya WebAssembly

Apakah kamu inget pertama kali main game 3D di browser? Atau pas buka Google Maps versi web di tahun 2015? Mungkin kamu mikir "wah keren nih, lancar banget di browser". Tapi di balik layar, para developer yang bikin aplikasi itu lagi "perang" sama keterbatasan JavaScript.

Masalahnya itu simpel: JavaScript itu bahasa yang "interpreted". Setiap baris kode dibaca, diterjemahkan, terus dijalankan. Untuk aplikasi kecil? No problem. Tapi untuk aplikasi berat seperti video editing, image processing, atau game engine di browser? JavaScript sudah mulai ngos-ngosan.

Dulu, ada Asm.js (2013)

Para engineer di Mozilla (si pembuat browser Firefox) punya ide: bagaimana kalau kita bikin "subset" JavaScript yang super ketat, tanpa dynamic typing, jadi browser bisa optimasi lebih cepat? Lahirlah asm.js di 2013.

It's worked! Tapi tetap ada masalah: ukuran file jadi gede banget (karena masih text-based), parsing lambat, dan tetep ada overhead dari JavaScript.

Lahirlah WebAssembly (2017)

WebAssembly (Wasm) datang dengan pendekatan berbeda: binary format. Bukan lagi text yang harus di-parse, tapi instruksi biner yang langsung dijalankan mesin.

Analoginya kayak gini:

  • JavaScript itu kayak resep masakan dalam bahasa Indonesia yang harus dibaca sama chef dulu
  • Wasm itu kayak makanan frozen yang tinggal dipanaskan microwave

Hasilnya? Performa mendekati native code (hampir secepat C/C++), ukuran file lebih kecil, dan yang paling penting: kamu bisa nulis aplikasi web pakai bahasa apapun (Rust, C++, Go, C#, python, ruby, dll), terus semuanya di-compile jadi Wasm.

  • Figma rebuild app mereka pakai Wasm, loading jadi 3x lebih cepat.
  • AutoCAD versi web? Pakai Wasm.
  • Google Earth di browser? Wasm juga.

Plot Twist: Wasm Kabur dari Browser

Tapi ceritanya nggak berhenti di browser.

Ada engineer yang mikir: "Tunggu deh, kalau Wasm ini format biner yang portable, secure by design, dan fast, kenapa cuma dipake di browser?"

Muncullah WASI (WebAssembly System Interface) di 2019.

Ini game changer. WASI bikin Wasm bisa jalan di mana aja: server, edge computing, IoT devices, bahkan smartphone, semuanya tanpa perlu browser.

Kenapa Ini Revolusioner?

Bayangin:

1. Write Once, Run Anywhere

Compile sekali jadi Wasm, jalan di Linux, Windows, Mac, browser, bahkan Raspberry Pi. Nggak perlu VM berat macam Docker untuk portability.

2. Security by Default

Wasm jalan di sandbox. Nggak bisa akses file system atau network sembarangan kecuali dikasih izin. Perfect untuk plugin systems atau untrusted code.

3. Startup Time Super Cepat

Container Docker butuh 1-2 detik, Wasm cuma milliseconds. Ini kenapa Cloudflare Workers, Fastly Compute@Edge, sama Wasmer.io adopsi Wasm.

Contoh Real-World

Ini aku ada buat project menggunakan python dan di-compile ke Wasm sehingga python bisa berjalan di browser. Nggak percaya? Coba deh kamu akses di sini https://tonidy.github.io/gen-secp

Masa Depan Wasm

Docker container akan tetap ada, tapi Wasm jadi alternatif untuk lightweight workloads. Plugin systems bakal makin banyak pakai Wasm (lihat Envoy Proxy, Shopify Functions). Semakin banyak Wasm yang berjalan di semua tempat baik itu frontend maupun backend.


#100harinulis

#100harimenulis

Day-2/100

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment