Menelusuri perjalanan WebAssembly dari pengumuman pada 2015 oleh Mozilla/Google/Microsoft/Apple hingga menjadi W3C Recommendation pada Desember 2019, serta memahami mengapa performa near-native, sandbox keamanan, dan portabilitas lintas bahasa membuatnya kini juga tumbuh pesat di sisi server

Setelah di episode 0 kita menyiapkan environment — memastikan Node.js, Rust toolchain, dan wasm-tools siap — pada episode ini kita menarik napas sejenak dan memahami mengapa WebAssembly ada. Sejarah sebuah teknologi mungkin terasa tidak penting, padahal justru di sanalah letak alasan mengapa desainnya seperti sekarang.
Mengapa harus memahami sejarahnya? Karena WebAssembly tidak lahir dari ruang rapat perusahaan, melainkan dari frustrasi panjang para engineer browser yang ingin menjalankan kode berperforma tinggi di web — sesuatu yang selama bertahun-tahun mustahil dilakukan dengan JavaScript saja. Memahami asal-usulnya akan menjelaskan keputusan desain: mengapa ia berbasis stack machine, mengapa ia diisolasi dalam sandbox, dan mengapa ia kini merambah ke server.
WebAssembly diumumkan pada tahun 2015 sebagai upaya kolaboratif antara Mozilla, Google, Microsoft, dan Apple. Keempatnya menyatukan tiga pendahulu yang saling bersaing:
Alih-alih berkompetisi, keempat vendor menggabungkan sumber daya untuk membuat format bytecode yang disepakati bersama. Ini langkah langka — kompetitor browser bekerja sama dalam satu spesifikasi terbuka.
| Fakta | Detail |
|---|---|
| Pengumuman | 2015 (Mozilla, Google, Microsoft, Apple) |
| Pendahulu | asm.js (Mozilla) & PNaCl (Google) |
| Wasm 1.0 jadi W3C Recommendation | 5 Desember 2019 |
| Wasm 2.0 (Candidate Recommendation) | 16 Juni 2025 |
| Wasm 3.0 | Spesifikasi saat ini (2026) |
| Status | Standar web pertama untuk bytecode binary |
Sejak 2017, WebAssembly dikembangkan di bawah W3C WebAssembly Working Group, dan versi 1.0 resmi menjadi W3C Recommendation pada 5 Desember 2019. Ini bukan sekadar gelar formal — artinya empat engine browser utama (V8 di Chrome, SpiderMonkey di Firefox, JavaScriptCore di Safari, dan Chakra di Edge lama) berkomitmen menerapkan spesifikasi yang sama.
Dari sana spesifikasi terus bertumbuh. Wasm 2.0 menjadi Candidate Recommendation pada Juni 2025 dengan fitur seperti SIMD, reference types, dan bulk memory. Wasm 3.0 adalah spesifikasi saat ini pada 2026, dengan proposal besar seperti WasmGC, exception handling, tail-call, dan multi-memory — detailnya kita bedah di episode 9.
Wasm dikompilasi langsung menjadi kode mesin oleh JIT engine browser (V8, SpiderMonkey), tanpa proses interpretasi JavaScript yang lambat. Untuk workload komputasi berat — enkripsi, kompresi, image processing, machine learning — performanya bisa mendekati kode native. Inilah alasan utama ia dilahirkan.
Modul Wasm berjalan dalam sandbox yang terisolasi: ia tidak bisa mengakses memory proses host secara bebas, tidak punya akses sistem operasi langsung, dan hanya berkomunikasi dengan host lewat interface yang disepakati (imports/exports). Model keamanan ini yang membuatnya kini menarik untuk dijalankan di server dan edge — topik inti episode 16.
Karena outputnya berupa bytecode netral, satu modul Wasm bisa dikompilasi dari Rust, C/C++, Go, Kotlin, bahkan (dengan WasmGC) C# dan Python. Satu file .wasm yang sama bisa berjalan di browser, Node.js, atau runtime server — tidak seperti kode native yang terikat pada satu arsitektur CPU dan OS.
Wasm tidak lagi terbatas di browser. Dengan WASI (WebAssembly System Interface), modul bisa mengakses filesystem, clock, dan jaringan secara aman di luar browser — membuka jalan untuk serverless, plugin systems, dan edge functions dengan cold start hitungan milidetik. Kita membahas WASI dan Component Model di episode 10, dan ekosistem edge-nya di episode 12.
| Tahun | Tonggak |
|---|---|
| 2015 | Pengumuman kolaborasi empat vendor browser |
| 2017 | Dukungan pertama di browser utama (Chrome 57, Firefox 52) |
| 2019-12-05 | Wasm 1.0 jadi W3C Recommendation |
| 2024 | WASI 0.2 stabil (Component Model) di Node.js & runtime server |
| 2025-06-16 | Wasm 2.0 Candidate Recommendation |
| 2025-2026 | Wasm 3.0, WASI 0.3 (native async), wasi-http matang |
| 2026 | Wasm hadir di edge functions, plugin systems, dan FaaS besar |
Pada episode 1 ini, kalian telah menelusuri perjalanan WebAssembly dari pengumuman 2015 hingga menjadi standar W3C dan merambah dunia server-side.
Inti yang harus dibawa pulang:
Di episode 2 selanjutnya, kita akan membedah konsep dasar dan arsitektur utama WebAssembly — stack-based virtual machine, format binary .wasm vs teks .wat, model linear memory 32-bit, serta komponen inti seperti functions, tables, globals, dan memories. Sampai jumpa di episode 2!