- Watlings adalah proyek latihan untuk mempelajari WebAssembly Text Format sambil memperbaiki berbagai program kecil
- Setiap tugas diselesaikan dengan mengikuti instruksi di dalam direktori
exercises, lalu menguji jawabannya dengannpm start 001_hello - Untuk memeriksa solusi gunakan perintah
npm run show 001_hello, dan untuk menerapkan solusi langsung ke tugas gunakannpm run solve 001_hello - Kompilasi dan pengujian menggunakan Node 23+ serta wasm-tools, dan di dalam skrip memanggil
wasm-tools parse - Tugas setelah nomor 015 menggunakan fitur WebAssembly yang lebih baru seperti exception handling dan GC types, serta memerlukan flag
--experimental-wasm-exnrefyang hanya tersedia di Node.js 23 ke atas - Tersedia versi web yang bisa dijalankan di browser, dan editor yang direkomendasikan adalah VSCode dengan ekstensi wat-lsp
- Metode belajarnya menggunakan pendekatan berfokus pada menulis langsung, dengan memberikan tugas dan latar belakang lewat komentar per file, meminimalkan penjelasan, dan membuat pengguna berulang kali terpapar sintaks dalam konteks yang berbeda
- Sebagai contoh referensi struktur proyek, disebutkan rustlings dan Ziglings
1 komentar
Komentar Hacker News
Saya sering melihat ini di berbagai tempat, tetapi yang kurang dari WASM di browser bukan hanya akses DOM, melainkan hampir semua Web API, termasuk
fetchdanXMLHttpRequestDaftar Web API yang didukung browser tetapi tidak didukung WASM ada di sini, dan DOM hanyalah salah satunya: https://developer.mozilla.org/en-US/docs/Web/API
Namun, jika GC sudah dipastikan dan didukung di browser, ada kemungkinan antarmuka seperti ini bisa digunakan. Disebutkan bahwa jika GC didukung, kode WebAssembly dapat merujuk dan mengakses JavaScript, DOM, serta objek biasa yang didefinisikan WebIDL
Lihat paragraf terakhir: https://webassembly.org/docs/web/
Mengingat kemungkinan yang bisa dibukanya, progresnya terlihat terlalu lama
Terlihat sangat mirip dengan model Exercism. Exercism juga punya kursus WASM gratis yang diisi latihan-latihan kecil: https://exercism.org/tracks/wasm
Saya penasaran apakah penulis mempertimbangkan untuk berkontribusi ke kursus itu atau bekerja sama. Dengan begitu, ini bisa menjangkau pembaca yang lebih luas dan memanfaatkan tooling Exercism yang sudah ada
Dalam konteks tertentu itu model yang bagus, tetapi format repositori ini lebih dekat ke
rustlingsatauziglings, yang mempelajari sintaks dan fitur bersama contoh kodeModul Wasm di Exercism tidak benar-benar “rusak”, jadi saya tidak yakin kontribusi saya akan disambut
Dengan kata lain, lebih mirip kumpulan soal ala LeetCode yang diurutkan berdasarkan tingkat kesulitan
Untuk kursus yang benar, latihan seharusnya disusun berdasarkan fitur bahasa. Exercism sudah membuat antarmuka yang bagus untuk ini, tetapi sebagian besar bahasa tidak memanfaatkannya: https://exercism.org/tracks/csharp/concepts
Salah satu cara yang saya sukai saat mempelajari bahasa atau framework baru adalah koans, dan ini mengingatkan saya pada itu: https://github.com/ahmdrefat/awesome-koans/blob/master/koans...
Alurnya cocok untuk belajar: naik perlahan dari fitur dasar ke fitur lanjutan, melihat tes gagal, memahami alasannya, lalu memperbaikinya dengan gaya TDD. Juga memberi dopamin dari momen “aha!”
Untuk bereksperimen dengan fitur seperti GC di WASM, lebih baik memakai
wasm-optdari Binaryen daripada WABT.wasm-optmendukung jauh lebih banyak ekstensi WASMCukup keren
Saya belum pernah mengutak-atik WASM secara langsung dan mendalam, tetapi saya berencana mencoba panduan ini, dan menurut saya sekarang, setelah beberapa tahun berlalu, WASM sudah memberi manfaat besar bagi pengembangan web
Ini bukan “pembunuh JavaScript” seperti yang diharapkan sebagian orang, tetapi memang bukan itu tujuannya sejak awal. Sebaliknya, WASM terintegrasi cukup baik dengan ekosistem yang ada untuk mengoptimalkan use case yang sudah ada, dan ketika perlu komputasi berat, ia juga memungkinkan use case baru
Ini keuntungan bersih bagi semua web developer. Kita mendapat library yang lebih cepat, development tool yang impresif, dan binary Node yang lebih portabel
Saya penasaran apakah ada alasan lain yang saya lewatkan
Senang melihat adopsi WebAssembly terus maju. Microsoft sering dibahas sedikit di sini, tetapi jika tertarik dengan WASM, sangat disarankan mencoba Blazor WebAssembly
Ini framework yang sangat kuat yang memungkinkan C#, sebagian besar library .NET, bahkan paket NuGet, digunakan di browser sebagai WASM terkompilasi
Jika sebuah paket perlu bisa membaca file di disk, apakah langsung gagal, atau apakah antarmuka pembacaan file mengalihkan operasinya ke sesuatu seperti server-side rendering?
Proyek yang keren
Saya mengelola repositori yang agak terkait di sini: https://github.com/eliben/wasm-wat-samples/
Saya pernah mencoba WASM, tetapi mengalami masalah saat mengekspos koneksi database SQLite yang ingin saya hubungkan secara lokal
Penasaran apakah ada yang pernah melakukan hal serupa atau bisa menunjukkan materi yang bagus
Sangat menarik bahwa WebAssembly terlihat seperti bahasa sungguhan yang sampai batas tertentu bisa ditulis dengan tangan
Sepertinya ini akan cukup menurunkan hambatan masuk saat menjadikannya target
Karena WebAssembly menjadi bahasa bersama di berbagai ekosistem, makin layak menginvestasikan waktu untuk memahami cara kerjanya dengan solid