Anda sudah dijelaskan apa yang . Penggunaannya adalah bahasa tingkat rendah yang bekerja di semua browser, cukup cepat di sebagian besar dan sangat cepat di beberapa browser . Apa yang Anda dapatkan dari ini sama terbuka dengan apa yang Anda lakukan dengan bahasa pemrograman lain.
Kasus penggunaan Mozilla tampaknya paling tertarik adalah ini: Sudah ada cara mengkompilasi bahasa dengan backend LLVM (yang paling jelas C dan C ++) ke JavaScript, melalui Emscripten. asm.js sangat dekat dengan Emscripten yang sudah dipancarkan, jadi ini memungkinkan kode Emscripten (yang sudah sangat cepat pada kompiler JIT JavaScript hari ini) menjadi lebih cepat, memajukan tujuan porting basis kode yang ada ke web. Sekali lagi, untuk apa tepatnya Anda menggunakan ini adalah keputusan Anda. Porting game adalah salah satu kasus penggunaan (yang tampaknya melibatkan Mozilla aktif), tetapi ada banyak hal yang ditulis dalam C dan C ++, beberapa di antaranya mungkin berguna untuk situs web seseorang. Beberapa yang pernah kulihat melayang-layang (ditambah beberapa rancanganku sendiri), tanpa jaminan tentang kemungkinan:
- Porting algoritma tujuan umum (mis. Zlib, libjpeg, openssl, implementasi FFT) untuk memberdayakan JavaScript / situs web untuk melakukan lebih banyak, tanpa harus membuat standar web baru dan bergantung pada masing-masing browser untuk mengimplementasikannya.
- Porting interpreter, sehingga bahasa selain JavaScript dapat berjalan di browser, dengan sedikit overhead dan upaya porting yang minimal.
- Menggunakan asm.js sebagai backend untuk lebih banyak kompiler, terutama yang tidak memetakan dengan baik ke JavaScript dan tidak memerlukan sebagian besar fitur dan overhead-nya. Contohnya bisa bahasa yang dirancang untuk pekerjaan numerik cepat tanpa alokasi memori.
- Menggunakan asm.js untuk membuat JIT dalam JavaScript. Ini dapat mengimplementasikan bahasa apa saja - misalnya ActionScript .
- Dalam nada yang sama, porting kompiler JIT yang ada untuk dijalankan di browser (lih. Porting interpreter, dengan efektif nil overhead di atas JS). Ini mungkin hanya layak ketika kompiler JIT dihasilkan secara otomatis, seperti pada PyPy.