I over to tiår var JavaScript det eneste programmeringsspråket som kunne kjøres i nettlesere. Andre språk som Python, C++ og Go var hovedsakelig for å bygge serversiden til webapplikasjoner og tjenester.
JavaScript gjorde det ganske bra, men mange andre programmeringsspråk er raskere. Det er mange fordeler som nettapper kan dra nytte av ved å kjøre andre, mer effektive programmeringsspråk direkte i nettleseren.
WebAssembly tilbyr et effektivt, åpent og trygt alternativ som er en del av den åpne nettplattformen. Du kan bruke den til å bygge applikasjoner som kjører på nettlesere, servere og i andre miljøer.
Vi introduserer WebAssembly
WebAssembly (WASM) er et effektivt, lavt nivå, bærbart W3C-standardisert språk. Den definerer et kodeformat og grensesnitt for programmer som kan samhandle med plattformer på nettet.
Du kan kompilere de fleste programmeringsspråk til WebAssemblys binære kodeformat. Nettlesere kan tolke og kjøre den resulterende WASM-koden akkurat som de gjør med vanlig JavaScript. Du kan også kjøre WebAssembly sammen med JavaScript-kode for høyere appytelse og interoperabilitet mellom de to.
WebAssembly ble en W3C-standard i 2019, med støtte i mange programmeringsspråk. I følge Laget med WebAssembly, er det allerede mange populære prosjekter som bruker WebAssembly for å sende rask, sikker programvare til brukerne.
Mange programmeringsspråk, inkludert de som er spesifikke på serversiden, støtter WebAssembly. Disse inkluderer Rust, Go, Python, C++, TypeScript, Java, PHP og Ruby. Sjekk ut awesome-wasm-langs ressurs for å lære om de WebAssembly-støttede språkene og pakkene du kan bruke med dem.
Her er et eksempel WebAssembly-program fra Tutorials Point som returnerer maksimalt to heltall:
WebAssembly-syntaksen er relativt detaljert sammenlignet med JavaScript, men det burde ikke være et problem. Du trenger ikke å lære syntaksen siden WebAssembly vil være samlingsmålet for programmene du skriver på ditt foretrukne språk.
Hvordan WebAssembly fungerer
WASM eksisterer som et samlingsmål for andre programmeringsspråk å transpilere til. Du kan skrive inn ditt favoritt programmeringsspråk og kompiler kildekoden til WASM bytecode som kjører på klienten. Å oversette den til innebygd maskinkode betyr at den kan kjøre med høy hastighet, vanligvis raskere enn JavaScript.
En av de kritiske funksjonene til WASM er JavaScript-interoperabilitet. Du kan importere WASM-moduler til en nettapplikasjon og eksponere WASM-funksjonene for bruk i JavaScript-kode. JavaScript-rammeverk kan dra nytte av WASM for høyere ytelse.
WASM bruker en utførelsesmodell i sandkasse som ligner på JavaScript. WASM samhandler med vertsmaskinen ved å bruke ABI-er (Application Binary Interface) som WebAssembly systemgrensesnitt som gir tilgang til ressurser og andre systemtjenester basert på programmets krav.
Mange moderne nettlesere støtter WASM, inkludert Chrome, Microsoft Edge, Mozilla Firefox, Opera og Safari. Språk som Go og Ruststøtte WASM ut av boksen.
Hvorfor nettet trenger WebAssembly
JavaScript har begrenset funksjonalitet ved design. Det er ikke en av de raskeste eller mest presterende språk siden det startet som et skriptspråk for nettet. Selv om det er mange kjøretider der JavaScript kjører med varierende hastighet, er det raskere og flere ytelsesspråk som WebAssembly kan bringe til nettet for brukstilfeller som spill, videoer og musikk.
WebAssembly tilbyr også mer portabilitet og fleksibilitet til språk som ikke kjører på nettet. Å introdusere flere språk på nettet (den mest populære åpen kildekode-plattformen) bør resultere i en forbedret opplevelse totalt sett.
Adopsjon av WebAssembly er raskt
Mange bedrifter og utviklere bygger applikasjoner med WebAssembly. Google, Dropbox og Cloudflare bruker WebAssembly aktivt i noen av applikasjonene deres.
WebAssembly er populær blant Python-, C++- og Rust-utviklere. Python-utviklere bruker vanligvis Pyoidide og PyScript, C++-utviklere og Emscripten, og Rust-utviklere med Percy, Yew, Sycamore, MoonZoon og Seed-rammeverket.