WebAssembly adalah jenis kode baru yang dapat dijalankan di dalam browser web modern. Bersama dengan kode rendah, hal ini berpotensi mengubah cara pengembang perangkat lunak membangun aplikasi untuk web.

Dominasi JavaScript

Menurut artikel di “Medium”, pada tahun 2019, terdapat lebih dari 1,6 miliar situs web di dunia. Dan JavaScript adalah bahasa pemrograman yang dominan, digunakan oleh 95% dari mereka. Ini bukanlah sebuah kejutan besar. Bagaimanapun, JavaScript adalah satu-satunya bahasa pemrograman yang secara intrinsik didukung oleh semua browser. Atau benarkah?

Berkat WebAssembly, hal ini telah berubah.

Apa itu WebAssembly?

Konsorsium World Wide Web (W3C) merancang dan mengembangkan WebAssembly. Demonstrasi ini pertama kali diumumkan pada tahun 2015 dan demonstrasi pertama terjadi dua tahun kemudian, pada tahun 2017.

Beberapa orang mengira WebAssembly atau Wasm adalah bahasa pemrograman baru. Tapi itu tidak sepenuhnya benar. Ini adalah jenis kode, tetapi bukan kode yang dimaksudkan untuk ditulis tangan oleh pemrogram. Sebaliknya, WebAssembly adalah target kompilasi untuk bahasa pemrograman yang umum digunakan, seperti Python, C, C++, atau Rust. Dengan menjadi target kompilasi, bahasa-bahasa ini kemudian dapat dijalankan di dalam browser, sehingga mematahkan dominasi JavaScript di web. Hal ini juga membantu mengatasi masalah kinerja JavaScript dengan membuat bahasa pemrograman yang biasanya digunakan untuk membuat sistem perusahaan berskala besar dan penting, seperti C++, dapat diakses di browser.

Bagaimana cara kerjanya?

WebAssembly mengambil kode sumber yang ditulis dalam bahasa lain dan membuatnya kompatibel untuk digunakan di dalam browser web. Prosesnya terlihat seperti ini:

  1. Kode sumber (misalnya, Python, C++, atau Rust): Anda memiliki aplikasi yang ditulis dalam bahasa kompatibel yang ingin Anda jalankan di browser.
  2. Bytecode WebAssembly: Anda memilih bytecode WebAssembly sebagai target kompilasi Anda. Hasilnya, Anda mendapatkan file .wasm.
  3. Kode mesin (opcode): Browser memuat file .wasm dan mengompilasinya ke kode mesin yang sesuai dengan sistem hostnya.

Jika Anda ingin mengetahui cara membuat aplikasi pertama Anda dengan Wasm, kami merekomendasikan artikel OpenSource.Com tentang “Cara menulis 'Hello World' di WebAssembly”. Untuk penjelasan lebih rinci tentang cara kerja proses kompilasi, lihat episode podcast luar biasa ini di Rekayasa Perangkat Lunak Harian.

Saya rasa saya mengerti. Tapi Bisakah Anda Memberikan Beberapa Contoh?

Jika semua ini terdengar terlalu abstrak, jangan khawatir! Kemungkinan besar Anda sudah menggunakan aplikasi web yang didukung oleh WebAssembly.

Dua contoh bagusnya adalah “Figma”, aplikasi desain online populer untuk membuat maket canggih, dan “Google Earth”, layanan pemetaan 3D Google.

Dalam postingan blog tahun 2017, CTO Figma menulis:

“Karena aplikasi yang dikompilasi ke WebAssembly dapat berjalan secepat aplikasi asli, hal ini berpotensi mengubah cara penulisan perangkat lunak di web.” — Evan Wallace, CTO Figma

Ia kemudian menjelaskan bahwa Figma ditulis dalam C++, yang merupakan salah satu bahasa yang dapat dikompilasi menjadi kode WebAssembly. Dengan melakukan hal tersebut, Figma dapat mempercepat waktu muatnya sebanyak 3x, sehingga mencapai performa yang mendekati aslinya.

Google Earth, di sisi lain, dulunya merupakan aplikasi khusus Chrome. Hingga tahun 2019, Google Earth tidak dapat diakses dari browser lain mana pun, karena menggunakan Native Client (NaCl), solusi khusus Chrome. Tim teknik di balik Google Earth kemudian mengadopsi WebAssembly. Karena semua browser mendukung WebAssembly, penerapannya memastikan bahwa Google Earth dapat diakses oleh siapa saja, apa pun browser yang mereka gunakan.

Dalam kedua kasus tersebut, WebAssembly adalah solusi tepat untuk masalah teknik (dan bisnis) yang kompleks: bagaimana Anda menghadirkan aplikasi besar ke web, tanpa mengorbankan kinerja atau harus menulis ulang seluruh aplikasi dari awal? Figma dan Google Earth adalah dua contoh bagus dari jenis kasus penggunaan yang dirancang untuk WebAssembly.

WebAssembly & Kode Rendah

Bagaimana semua ini berhubungan dengan pengembangan perangkat lunak berkode rendah? Keduanya merupakan teknologi yang berpotensi transformatif.

WebAssembly mempunyai potensi untuk mengubah masa depan pengembangan web dan memperluas jenis aplikasi yang dibangun untuk web. Sebaliknya, kode rendah berpotensi mengubah cara pengembang membangun perangkat lunak dengan mempercepat pengiriman aplikasi web khusus hingga 10x, menurut konsultan TI Forrester. Ini adalah cara baru untuk mengembangkan & menerapkan aplikasi web khusus dengan cepat.

Di Five, kami membangun lingkungan pengembangan dalam browser yang tidak bergantung pada bahasa dan mendukung Wasm. Di masa depan, pengembang perangkat lunak akan dapat menulis kode tidak hanya dalam JavaScript atau TypeScript, tetapi dalam hampir semua bahasa di dalam Five. Kode ini kemudian dikompilasi ke Wasm dan dapat digunakan untuk mengembangkan & menerapkan aplikasi web yang tidak bergantung pada perangkat. Di dalam Five, kami menggabungkan kekuatan WebAssembly dengan kode rendah dalam satu platform.

Penasaran untuk mencobanya? Mendaftarlah untuk mengunduh lingkungan pengembangan kami secara gratis melalui situs web kami!

TL; DR: WebAssembly & Kode Rendah

WebAssembly (atau Wasm) adalah target kompilasi untuk banyak bahasa pemrograman populer, seperti Python, Go, C#, C, Rust, dan C++. Semua browser utama (Firefox, Chrome, Safari, dan Edge) mendukung Wasm. Dua aplikasi populer yang menggunakan Wasm adalah Figma dan Google Earth.

Dengan mengkompilasi kode ke Wasm, pengembang dapat membangun dan menjalankan aplikasi web berkinerja tinggi di hampir semua bahasa pemrograman. Five, lingkungan pengembangan kode rendah, menggabungkan dua tren besar dalam pengembangan web, Wasm dan pengembangan kode rendah, dengan memungkinkan insinyur perangkat lunak menggunakan kode lengkap hampir di mana saja di dalam lingkungan pengembangan terintegrasi (IDE) Lima.

Awalnya diterbitkan di https://five.co pada 13 Oktober 2022.