Wasm adalah CGI baru
- Peran Wasm: Wasm (WebAssembly) siap membawa perubahan baru pada model aplikasi web. Fokusnya adalah memudahkan pembangunan dan pemeliharaan aplikasi berperforma tinggi.
- Model aplikasi web di masa lalu: CGI mengubah web dari arsip dokumen menjadi jaringan aplikasi. FastCGI dikembangkan untuk mengatasi masalah performa, lalu berkembang menjadi komputasi serverless.
- Komputasi serverless: Komputasi serverless seperti Amazon Lambda membuat kita mengelola "fungsi" alih-alih mengelola server. Ini memberi keunggulan berupa kemampuan untuk melakukan scale dengan cepat sesuai volume permintaan.
Wasm di server
- Skalabilitas Wasm: Wasm dapat dijalankan bukan hanya di browser, tetapi juga di server, sehingga menawarkan model isolasi yang lebih ringan untuk aplikasi sisi server.
- Lingkungan eksekusi Wasm: Modul Wasm berjalan di mesin virtual dan dapat dikompilasi dari berbagai bahasa. Ini dapat membantu meningkatkan performa di lingkungan serverless.
Trade-off Wasm
- Thread dan kompilasi JIT: Wasm tidak mendukung thread secara default, dan kompilasi JIT tidak dimungkinkan. Hal ini dapat memengaruhi performa.
- Antarmuka memori: Perpindahan data antara modul Wasm dan host mungkin memerlukan penyalinan, yang dapat memengaruhi performa.
Prospek ke depan
- Perkembangan Wasm: Seiring berkembangnya lingkungan eksekusi dan alat pengembangan Wasm, bahasa scripting akan memiliki runtime Wasm. Ini dapat sangat meningkatkan kecepatan eksekusi aplikasi.
- Edge computing: Wasm memungkinkan komputasi dilakukan dekat dengan pengguna melalui edge computing, yang meningkatkan performa.
# Ringkasan GN⁺
- Wasm sedang mendorong perubahan baru dalam model aplikasi web, sehingga memudahkan pembangunan dan pemeliharaan aplikasi berperforma tinggi.
- Kombinasi komputasi serverless dan Wasm mengurangi kompleksitas pengelolaan server, serta memberi keunggulan untuk melakukan scale dengan cepat sesuai volume permintaan.
- Wasm dapat dijalankan bukan hanya di browser, tetapi juga di server, sehingga menawarkan model isolasi yang lebih ringan untuk aplikasi sisi server.
- Perkembangan Wasm dapat membuat bahasa scripting memiliki runtime Wasm, sehingga kecepatan eksekusi aplikasi bisa meningkat secara signifikan.
- Melalui edge computing, komputasi dapat dilakukan dekat dengan pengguna, yang meningkatkan performa.
1 komentar
Komentar Hacker News
Amazon memulai era komputasi serverless dengan Lambda. Google App Engine dirilis 6 tahun lebih awal daripada Lambda.
Sulit memahami perbedaan antara WASM dan teknologi sebelumnya seperti Java Applets, ActiveX, Silverlight, dan Macromedia Flash. Rasanya kita sudah belajar pelajaran soal menjalankan kode terkompilasi pihak ketiga yang tidak tepercaya di browser web.
Kompilasi JIT tidak memungkinkan karena pembuatan kode WASM dinamis tidak diizinkan demi alasan keamanan. Ini adalah fitur penting untuk melakukan hal-hal seperti hot reloading kode dengan rapi.
Klaim keamanannya terasa tidak meyakinkan. Kita bisa melakukan hot reload JS atau menghasilkan kode di runtime, dan juga bisa memuat ulang runtime WASM secara dinamis sambil mempertahankan memori, tetapi pengalaman penggunanya akan terasa canggung.
Saya tidak menemukan alasan teknis mengapa hal itu mustahil. Jika ini adalah langkah keamanan, tampaknya akan mudah untuk dilewati.
Bytecode WASM secara konseptual mirip dengan hal-hal yang dirancang untuk kompilasi JIT seperti .NET IL dan Java bytecode.
Saya merasa proyek WASM kurang memiliki arah yang jelas dan kemauan untuk benar-benar berhasil. Fitur-fitur dasar masih banyak yang kurang.
WASM menggantikan VM milik bahasa tertentu dengan VM serbaguna. Artinya, hampir apa pun bisa dijalankan lewat compiler atau interpreter.
WASM diposisikan sebagai pengganti JavaScript, pengganti Docker, pengganti Java, pengganti CGI, dan seterusnya. Artinya: segalanya.
Saya pikir WASM seharusnya bisa di-host dan dideploy semudah aplikasi PHP. Sepertinya saat ini belum sampai ke sana.
Ini mengingatkan pada hukum lama dalam software: aplikasi yang cukup besar dan cukup tua pada akhirnya akan mengimplementasikan ulang seluruh stack software yang sedang dijalankannya.
Janji besar WASM di sisi server adalah menyediakan platform abadi yang tidak memerlukan pembaruan berkala.
Saya pikir local-first adalah masa depan. Aplikasi terutama berjalan di dalam browser pengguna dan hampir tidak membutuhkan bantuan server.
WASM bisa berhasil di browser pengguna. Microsoft menggunakannya untuk C#/Blazor.
Rasanya kita sedang menciptakan ulang JVM beserta ekosistemnya.
Saya pikir WASM akan bergerak ke arah menggantikan kode eksekusi fungsi lambda di cloud.
WASM secara tradisional dipahami berjalan di platform host, tetapi sebenarnya tidak harus begitu.
Berkat sifat sandbox WASM, ia bisa dijalankan di luar sistem operasi atau di ring0.