Apa itu WASM (Perakitan Web)?

LanjutanDec 25, 2023
WebAssembly adalah kerangka pengembangan web sumber terbuka. Cari tahu lebih lanjut tentang apa itu, sejarahnya, cara kerjanya, dan manfaatnya.
Apa itu WASM (Perakitan Web)?

Industri Blockchain adalah industri yang selalu mencari pertumbuhan dan peningkatan. Industri ini berkembang pesat dan berkembang baru-baru ini setelah lahirnya Ethereum, yang didukung oleh Ethereum Virtual Machine (EVM). Meskipun EVM cukup efektif, pemain baru telah hadir dalam bentuk WebAssembly (WASM). Pada artikel ini kita akan melihat apa itu WebAssembly, cara kerjanya, dan hubungannya dengan industri Cryptocurrency.

Apa itu Majelis Web (WASM)?

Majelis Web, yang populer disebut sebagai WASM, adalah kerangka kerja sumber terbuka yang memungkinkan pemrogram menggunakan kode sumbernya atau memodifikasinya sesuai keinginan pengembang. WASM mengambil langkah lebih jauh dengan format instruksi biner untuk mesin virtual (VM) berbasis tumpukan. Ini digunakan sebagai target kompilasi portabel untuk bahasa pemrograman tingkat tinggi. Ini adalah opsi biner kecil dan cepat yang menjanjikan kinerja mendekati asli untuk aplikasi web.

WebAssembly dirancang untuk berfungsi sebagai target kompilasi untuk bahasa apa pun, termasuk JavaScript. Ini berarti pengembang dapat mengkompilasi beberapa bahasa pemrograman seperti C/C++, Go, Rust, dan masih banyak lagi ke dalam satu standar yang dapat dijalankan secara native di browser sebagai alternatif yang mirip dengan JavaScript.

Pengembang dapat menggunakan Web Assembly untuk kasus penggunaan berkinerja tinggi seperti game, streaming musik, pengeditan video, dan aplikasi Computer-aided design (CAD). Beberapa layanan web telah mengadopsi WASM, misalnya Google Earth dan Figma.

Sejarah WebAssembly

WebAssembly dikembangkan untuk memenuhi kebutuhan akan peningkatan kinerja web dan keinginan untuk memperkenalkan lebih banyak bahasa ke dalam platform web. Pada tahun 2015, Grup Komunitas WebAssembly, yang terdiri dari Mozilla, Google, Microsoft, dan Apple, membuat format biner baru. Pada tahun 2017, WebAssembly MVP (Produk yang Layak Minimum) dirilis untuk memberikan landasan yang stabil untuk format biner, model eksekusi, dan integrasi ke dalam platform web.

Rilis berikutnya adalah dukungan browser, dengan browser utama seperti Chrome, Firefox, Safari, dan Edge menggabungkan WebAssembly. Pengembang menemukan kegunaan teknologi di luar browser web dan mulai mengeksplorasi penggunaan WASM di bidang lingkungan sisi server untuk komputasi kinerja tinggi.

Bagaimana Cara Kerja Perakitan Web?

Untuk memahami cara kerja WebAssembly, Anda perlu memahami cara kerja mesin JavaScript. Untuk mengkompilasi kode JS, mesin melakukan beberapa hal, seperti meneruskan kode melalui Parser, yang merupakan alat yang menelusuri kode baris demi baris, memverifikasi sintaks yang valid serta jenis kode. Setelah selesai, Parser membuat struktur data pohon yang disebut Pohon Sintaks Abstrak (AST).

Setelah AST dibuat, juru bahasa mesin mengambil AST dan mengubahnya menjadi Bytecode, yang merupakan representasi perantara dari kode tersebut. Kompiler mesin kemudian mengambil Bytecode dan mengubahnya menjadi kode yang dapat dijalankan mesin pada prosesornya.

Fungsi WebAssembly berbeda dari JavaScript dan dikatakan lebih cepat karena kode WASM langsung menuju ke compiler, secara efektif melewatkan langkah satu dan dua dalam proses JavaScript. Alasannya adalah, tidak seperti JavaScript, yang merupakan bahasa yang diketik secara dinamis, WASM diketik secara statis, artinya saat bahasa sedang diketik, tipenya dideklarasikan terlebih dahulu; oleh karena itu, mereka diketahui dan diperiksa pada waktu kompilasi.

Jadi ketika menulis kode WASM, Anda menulis kode tersebut beserta tipenya, biasanya dalam bahasa yang diketik secara statis. Anda kemudian membuat modul WASM yang telah dikompilasi sebelumnya, dan terakhir, Anda menjalankan kode langsung oleh kompiler mesin, melewati tahap penguraian dan transformasi ke tahap Representasi Menengah.

Fitur WebAssembly

WebAssembly dikembangkan untuk mengkompilasi beberapa bahasa dan dikatakan lebih cepat dari JavaScript. Untuk dapat mencapai prestasi tersebut, telah dilengkapi dengan fitur-fitur tertentu yang tidak hanya menjamin keselamatan dan keamanan framework tetapi juga membuktikan bahwa framework tersebut dapat dipercaya.

Standar W3C

Setelah membangun keyakinan akan efektivitas dan kredibilitasnya, WebAssembly telah ditambahkan ke bahasa resmi web. Saat ini ada empat bahasa, HTML. CSS, JavaScript, dan sekarang WebAssembly. Jadi, WebAssembly sekarang dianggap sebagai standar WC3.

Kecepatan dan Efisiensi

Mesin tumpukan WebAssembly dibuat untuk bekerja pada format kode biner, sehingga sangat memengaruhi waktu dan ukuran pemuatan. Kecepatan dan efisiensinya menjadikannya bahan pokok dalam pengembangan blockchain, dan banyak pengembang kini menggunakan bahasa ini untuk ekosistem yang kuat.

Keamanan

Mesin virtual memindai kode WebAssembly, memvalidasinya, dan mengeksekusinya di dalam sandbox yang aman untuk memori. Lingkungan tertanam membatasi akses ke sumber daya lokal, termasuk sistem file atau port jaringan. Ini berarti kode WebAssembly yang diperoleh dari web dan dijalankan di browser sangat terbatas ketika berhubungan dengan sumber daya perangkat keras dan perangkat lunak.

Sumber Terbuka

W3C memiliki beberapa perusahaan browser yang mengerjakan proyek ini. Hal ini memungkinkan komunitas untuk berkontribusi, memungkinkan pembuatan aplikasi yang kompatibel dengan versi sebelumnya, tanpa fitur, dan aplikasi yang telah teruji fiturnya.

WebAssembly dan Ethereum

WebAssembly saat ini dipandang sebagai alternatif yang mirip dengan Ethereum Virtual Machine (EVM). Hal ini karena, melalui WebAssembly, pengembang kini dilengkapi dengan set instruksi efisien yang dapat dikompilasi dalam berbagai bahasa sambil memastikan kinerjanya efektif di berbagai platform. Kumpulan instruksi WebAssembly juga dapat dengan mudah ditentukan dengan menghapus instruksi floating point, yang akan menjadikannya pengganti EVM yang layak.

Ethereum telah menunjukkan minat pada WebAssembly dan mempelopori upaya untuk mengembangkan Ethereum WebAssembly (EWASM), usulan desain ulang Mesin Virtual Ethereum. Setelah berhasil, EWASM diharapkan menjadi lebih efisien dan memungkinkan pengembang untuk menulis kode dalam beberapa bahasa karena hubungannya dengan WASM. EWASM akan berfungsi seperti EVM sebagai bahasa bytecode yang telah dikompilasi sebelumnya yang akan diinterpretasikan dalam node Ethereum.

Dengan ini, dApps akan menjadi lebih efisien dalam produksi. Integrasi WASM akan membuat pengembangan kontrak pintar lebih mudah diakses oleh orang-orang yang sudah terbiasa dengan bahasa populer seperti Rust dan Go. Hal ini pada akhirnya menghilangkan kebutuhan pengembang untuk belajar bagaimana menulis dengan solid sebelum membuat aplikasi yang berguna di Ethereum.

Proyek Blockchain yang Memanfaatkan WebAssembly

Meskipun WASM belum sepenuhnya dikembangkan untuk aktivitas blockchain, beberapa proyek sudah memanfaatkannya untuk meningkatkan fungsionalitas platform mereka. Misalnya:

Kosmos

Cosmos adalah blockchain yang dikembangkan untuk memfasilitasi komunikasi antar buku besar yang terdistribusi tanpa harus menunggu di server pusat. Populer disebut Internet of Blockchains, mereka adalah salah satu blockchain pertama yang memanfaatkan WASM sebagai tumpukan bangunan utamanya. Mereka menerapkan CosmWASM, kerangka kerja untuk membangun kontrak pintar di WASM untuk Cosmos SDK, Tendermint BFT, dan protokol IBC untuk pengembangan blockchain asli mereka.

Bintik

Penggunaan WASM oleh Polkadot bergantung pada protokol meta, yang memungkinkan bahasa lain telah ditafsirkan atau dikompilasi di WebAssembly. Pemanfaatan WASM memungkinkan infrastruktur dan substrat tanpa fork untuk memungkinkan aplikasi lain melakukan penyesuaian pada rantai yang terhubung dengan sedikit atau tanpa koordinasi.

Dekat Protokol

Near Protocol adalah blockchain publik yang dibuat untuk membangun aplikasi terdesentralisasi menggunakan WebAssembly. Near menggunakan WebAssembly sebagai cara yang baik untuk memanfaatkan teknologi web untuk meningkatkan kinerja dan portabilitas. Mereka menerapkan MajelisScript untuk bahasa mereka karena mereka menemukan bahwa ini adalah pilihan yang lebih portabel dan juga menyediakan akses mudah ke pengembang web.

Perakitan Web vs JavaScript

JavaScript adalah bahasa pemrograman interpretasi tingkat tinggi yang telah mendukung pengembangan web selama beberapa dekade. Ini dikembangkan untuk menambah interaktivitas ke halaman web dan ditampilkan di sisi klien oleh browser web. Selama bertahun-tahun, popularitas bahasa ini semakin meningkat karena kemudahan penggunaannya dan penerapannya secara luas.

Sejak dimulainya World Wide Web, selalu ada JavaScript. Baru-baru ini muncul WASM (WebAssembly), dan meskipun banyak yang percaya keduanya terkait erat, WASM terdiri dari beberapa hal lain, termasuk JavaScript. WASM awalnya dikembangkan untuk membantu JavaScript agar berjalan lebih efektif di browser web.

Meskipun masih memiliki tujuan yang sama, WASM kini melampaui browser web dan telah merambah ke aplikasi edge dan server, dua area yang diketahui kurang dimiliki JavaScript. Hal ini dimungkinkan karena pada level CPU, WASM berjalan dalam format biner dan juga bukan bahasa pemrograman seperti JavaScript. WASM menyediakan fungsionalitas tambahan yang mengakomodasi sejumlah bahasa berbeda seperti JavaScript, Python, Rust, dan banyak lagi. Keunggulan WASM atas JavaScript tetap pada kemampuannya untuk berintegrasi dengan bahasa tersebut tanpa terbatas pada JavaScript. Integrasi ini memberi JavaScript peningkatan kinerja yang besar dengan mengkompilasi bahasa yang sudah diinterpretasikan dan runtime-nya ke dalam modul WASM.

WebPerakitan Vs Karat

WebAssembly dan Rust adalah dua teknologi yang sangat berbeda, namun pada saat yang sama sering dikaitkan satu sama lain. Rust adalah bahasa pemrograman populer yang terkenal dengan kecepatan, keamanan, dan kinerjanya yang tinggi. WebAssembly, di sisi lain, adalah kompiler yang mengubah kode menjadi mesin yang dapat dieksekusi. Selain definisinya, kedua teknologi ini berbeda dalam beberapa hal berikut.

Pengembangan web

WASM terutama digunakan dalam pengembangan web, memungkinkan eksekusi kode di browser web, termasuk JavaScript. Pada saat yang sama, Rust adalah bahasa serba guna yang memiliki beberapa aplikasi, termasuk pemrograman sistem, pengembangan game, dan banyak lagi.

Fitur Sintaks dan Bahasa

WASM bukanlah bahasa pemrograman tetapi merupakan format instruksi biner dan dapat ditargetkan oleh bahasa seperti C, C++, dan Rust. Rust, di sisi lain, adalah bahasa dengan sintaksis dan fiturnya sendiri seperti peminjaman, kepemilikan, dan banyak lagi.

Manajemen memori

WASM menggunakan model memori linier yang menyediakan ruang alamat linier yang mudah diakses oleh program. Manajemen memori ditangani secara manual oleh pengembang dan dijaga tetap eksplisit. Rust, di sisi lain, menekankan keamanan memori. Itu menggunakan pemeriksa pinjaman dan sistem kepemilikan yang menerapkan aturan ketat pada saat kompilasi yang menghilangkan beberapa bug yang diketahui mempengaruhi keamanan memori.

Konkurensi

Rust dilengkapi dengan dukungannya sendiri untuk pemrograman konkurensi melalui sistem kepemilikannya, yang memungkinkan pengembang untuk menulis kode yang aman dan konkurensi tanpa risiko perlombaan data. Berbeda dengan Rust, WASM tidak memiliki fitur seperti itu; namun, ini dapat memanfaatkan fitur konkurensi lingkungan host.

Sumber Daya Terbaik untuk Memulai WebAssembly

Saat mempelajari cara menggunakan WASM, kursus tertentu memberikan pengetahuan terbaik bagi pemula yang ingin membuat proyek WASM dengan berbagai bahasa. Beberapa kursus ini meliputi:

Udemy

Kursus ini memberikan panduan lengkap untuk mempelajari WebAssembly JavaScript API dan perangkat Emscripten. Setelah dibeli, kursus ini memberi pengguna akses ke lebih dari 2 jam video ceramah sesuai permintaan dan 17 sumber daya pendidikan yang dapat diunduh.

Kursus ini memberikan pemahaman kepada pemula tentang apa itu WebAssembly dan bagaimana pengaruhnya terhadap pengembangan web. Anda juga akan mempelajari cara memuat dan menjalankan modul WebAssembly menggunakan API browser Java Script asli.

pandangan jamak

Kursus ini membahas esensi WebAssembly dan mengapa itu penting. Kursus ini akan menunjukkan kepada Anda cara membuat aplikasi menggunakan WebAssembly dan cara membuat aplikasi web menggunakan bahasa lain seperti C/C++.

Kamp Kode Bebas

Kursus gratis di WebAssembly ini memberi pemula gambaran tentang WASM. Ini mengajarkan Anda cara menulis, mengkompilasi, memasukkan, dan membuat instance kode. Ini memberikan panduan langkah demi langkah tentang cara mengkompilasi kode C++ ke dalam WASM.

Kesimpulan

WebAssembly saat ini berada di garis depan pengembangan web dan kecepatan, keamanan, dan kemampuan beradaptasi adalah fitur utama yang diyakini pengembang akan mengantarkan dunia baru untuk Aplikasi Terdesentralisasi. Karena semakin banyak produk yang ingin memanfaatkan WASM, pintu masa depan di mana kontrak pintar dapat dengan mudah dikembangkan dan diamankan dengan bahasa yang diketahui oleh pengembang sudah dekat.

作者: Tamilore
譯者: Cedar
文章審校: Matheus、Wayne、Ashley He
* 投資有風險,入市須謹慎。本文不作為Gate.io提供的投資理財建議或其他任何類型的建議。
* 在未提及Gate.io的情況下,複製、傳播或抄襲本文將違反《版權法》,Gate.io有權追究其法律責任。
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!
立即註冊