Render 3D dari demo Zen Garden di Firefox 52 dengan dukungan WebAssemblyMozilla telah merilis
Firefox 52 , browser terbaru dengan dukungan untuk sistem operasi Windows XP. Sejumlah
perubahan penting telah dibuat : koneksi ke hotspot telah disederhanakan, di mana Anda harus terlebih dahulu masuk ke browser, peringatan bahaya muncul jika halaman meminta kata sandi untuk koneksi tidak aman (bukan HTTPS), dukungan untuk plugin NPAPI telah hilang (kecuali Flash, dan dukungan penuh akan tetap ada dalam build ESR) menutup
28 kerentanan .
Tetapi tidak ada yang bisa dibandingkan dengan inovasi utama dan mendasar -
dukungan untuk bahasa pemrograman tingkat rendah WebAssembly (wasm) seperti assembler, yang
disebut sebagai salah satu inovasi paling signifikan dari platform web dalam dekade terakhir. Inilah yang hilang dari JavaScript.
Perakitan web
Pengembang menjelaskan mengapa ada kebutuhan untuk membuat
WebAssembly . Faktanya adalah bahwa JavaScript pada awalnya dipahami sebagai bahasa yang ringan untuk skrip sederhana. Tidak ada yang membayangkan apa yang akan tumbuh dan bagaimana itu akan mulai diterapkan. Itu diciptakan untuk pemula dalam pemrograman - untuk hal-hal sederhana seperti menulis formulir di halaman web.
Sejak itu, banyak yang berubah. Aplikasi web modern adalah program komputer yang kompleks dengan kode klien dan server, yang sebagian besar ditulis dalam JavaScript. Terlepas dari kemajuan dalam pengembangan JavaScript itu sendiri dan semua upaya pengembang untuk menciptakan mesin yang efektif untuk eksekusi JavaScript yang cepat, tidak ada yang terjadi, secara fisik tidak mungkin. JavaScript memiliki batasan yang melekat. Browser tidak bisa mengeksekusi kode ini setidaknya secepat kode asli di sistem operasi.
Mozilla adalah yang pertama menjadi matang sebelum mengembangkan semacam mesin virtual di browser tempat Anda dapat menjalankan kode tingkat rendah - dan beberapa tahun yang lalu
asm.js dirilis sebagai demonstrasi (Google bereksperimen dengan
Native Client API ). Subbahasa asm.js terbukti sangat bagus sehingga menjadi jelas: kita perlu menggabungkan kekuatan dengan semua perusahaan pengembangan terbesar untuk proyek bersama yang akan memajukan web.
WebAssembly bahasa tingkat rendah dapat bekerja bersama dengan JavaScript dan memungkinkan aplikasi web berjalan dengan kinerja yang jauh lebih besar - hampir seperti aplikasi asli dalam sistem operasi.
Sekarang di peramban Anda dapat menjalankan game 3D berkinerja tinggi, sistem desain berbantuan komputer (CAD), editor video, editor grafis, visualisasi ilmiah, komputasi intensif sumber daya, pengkodean video - apa pun.
Seiring waktu, banyak aplikasi web yang ada - mail, jejaring sosial, editor teks - dan kerangka kerja JavaScript lebih mungkin untuk mulai menggunakan WebAssembly, yang secara signifikan akan meningkatkan kecepatan pengunduhan dan sangat meningkatkan kinerja mereka saat bekerja.Tidak seperti pendekatan lain seperti Flash, yang memerlukan menginstal plug-in di browser untuk menjalankan aplikasi pada kecepatan yang sebanding dengan aplikasi asli, WebAssembly sepenuhnya cocok dengan platform web standar. Ini adalah standar terbuka dan kompatibel yang terintegrasi ke dalam browser. Ini berarti bahwa pengembang dapat mengintegrasikan pustaka WebAssembly untuk komputasi intensif CPU (kompresi, deteksi wajah, fisika) langsung ke aplikasi web yang ada yang menggunakan JavaScript.
WebAssembly adalah standar terbuka yang dikembangkan oleh Mozilla, Google, Microsoft dan Apple. Seperti yang Anda lihat, grup ini mewakili pengembang dari empat browser yang paling umum, sehingga Anda dapat mengandalkan menjadi wasme sebagai standar universal. Google berjanji untuk menerapkan dukungan untuk WebAssembly di versi Chrome berikutnya (57), Microsoft sudah mengerjakan implementasi di Edge.
Bahasa tingkat rendah akan menjadi semacam tambahan untuk JavaScript, dan pada akhirnya harus bekerja di mana saja di mana JS bekerja: di semua browser dan di semua lingkungan runtime seperti Node.js.
Siapa yang akan mendapat manfaat dari menggunakan WebAssembly? Ini bukan hanya tentang menulis aplikasi baru dalam wujud. Melalui kompiler seperti
Emscripten, seluruh game dan aplikasi asli yang sudah jadi dapat dikirim ke web. Kode C / C ++ porting menggunakan kompiler ini akan mengeksekusi di browser pada kecepatan yang hampir sama dengan aplikasi asli. Selain C / C ++, Rust juga menyediakan dukungan awal untuk WebAssembly.
Misalnya, Anda dapat memainkan
demo Zen Garden (membutuhkan browser Firefox 52, hanya versi desktop yang saat ini didukung).
Fungsi JavaScript akan memanggil fungsi WebAssembly dan sebaliknya. Artinya, Anda dapat menulis dalam satu program dalam bahasa JavaScript tingkat tinggi dan kadang-kadang beralih ke C / C ++ / Rust sesuai kebutuhan.
Pengembang akan mulai mendistribusikan dan menggunakan kembali modul WebAssembly tingkat rendah tanpa harus memahami perangkat mereka, karena mereka sekarang menggunakan perpustakaan JavaScript yang diperkecil.
Mozilla mencatat bahwa dengan tingkat penggunaan kembali kode dan arsitektur perangkat lunak, tembok antara aplikasi asli dan web mulai runtuh, dan ini baru permulaan. Alat pengembang, debugger, dan penyusun akan terus berkembang, seperti halnya kompatibilitas, kinerja, dan fungsionalitas WebAssembly. Sebagai contoh, rencana Mozilla sekarang adalah untuk mengimplementasikan dukungan untuk multithreading dan konkurensi SIMD.
"Dalam arti tertentu, WebAssembly mengubah apa yang dimaksud pengembang web," kata David Bryant, manajer pengembangan platform di Mozilla, "karena ia mengubah sifat dasar web."Bahkan, sekarang sudah memungkinkan untuk mem-porting program C / C ++ untuk dieksekusi di browser, dan dalam waktu dekat hal yang sama dapat dilakukan untuk bahasa-bahasa di mana aplikasi mobile ditulis - Java, Swift, C #. Semuanya akan kompatibel dengan platform web standar. Ternyata dalam arti tertentu, semua programmer pada akhirnya akan menjadi pengembang web.