JavaScript oli yli kahden vuosikymmenen ajan ainoa ohjelmointikieli, joka pystyi toimimaan selaimissa. Muut kielet, kuten Python, C++ ja Go, olivat pääasiassa verkkosovellusten ja -palveluiden palvelinpuolen rakentamiseen.
JavaScript onnistui melko hyvin, mutta monet muut ohjelmointikielet ovat nopeampia. Verkkosovellukset voivat hyödyntää monia etuja suorittamalla muita tehokkaampia ohjelmointikieliä suoraan selaimessa.
WebAssembly tarjoaa tehokkaan, avoimen ja turvallisen vaihtoehdon, joka on osa avointa verkkoalustaa. Voit käyttää sitä sellaisten sovellusten rakentamiseen, jotka toimivat selaimissa, palvelimissa ja muissa ympäristöissä.
Esittelyssä WebAssembly
WebAssembly (WASM) on tehokas, matalan tason kannettava W3C-standardoitu kieli. Se määrittelee koodimuodon ja rajapinnat ohjelmille, jotka voivat olla vuorovaikutuksessa verkon alustojen kanssa.
Voit kääntää useimmat ohjelmointikielet WebAssemblyn binäärikoodimuotoon. Selaimet voivat tulkita ja suorittaa tuloksena olevan WASM-koodin aivan kuten tavallisella JavaScriptillä. Voit myös käyttää WebAssemblya JavaScript-koodin rinnalla parantaaksesi sovellusten suorituskykyä ja yhteensopivuutta näiden kahden välillä.
WebAssemblysta tuli W3C-standardi vuonna 2019, ja se tukee monia ohjelmointikieliä. Mukaan Valmistettu WebAssemblylla, on jo monia suosittuja projekteja, jotka käyttävät WebAssemblya nopean ja suojatun ohjelmiston toimittamiseen käyttäjilleen.
Monet ohjelmointikielet, mukaan lukien palvelinpuoliset, tukevat WebAssemblya. Näitä ovat Rust, Go, Python, C++, TypeScript, Java, PHP ja Ruby. Tutustu awesome-wasm-langs resurssi oppiaksesi WebAssemblyn tukemista kielistä ja paketeista, joita voit käyttää niiden kanssa.
Tässä on esimerkki WebAssembly-ohjelma Tutorials Pointilta joka palauttaa enintään kaksi kokonaislukua:
WebAssembly-syntaksi on suhteellisen monisanainen JavaScriptiin verrattuna, mutta sen ei pitäisi olla ongelma. Sinun ei tarvitse opetella syntaksia, koska WebAssembly on käännöskohde ohjelmille, jotka kirjoitat haluamallasi kielellä.
Miten WebAssembly toimii
WASM on olemassa muiden ohjelmointikielien käännöskohteena. Voit kirjoittaa sisään suosikkiohjelmointikielesi ja käännä lähdekoodi WASM-tavukoodiksi, joka toimii asiakkaalla. Sen kääntäminen alkuperäiseksi konekoodiksi tarkoittaa, että se voi toimia suurella nopeudella, tyypillisesti nopeammin kuin JavaScript.
Yksi WASM: n kriittisistä ominaisuuksista on JavaScript-yhteensopivuus. Voit tuoda WASM-moduuleja verkkosovellukseen ja paljastaa WASM-toiminnot käytettäväksi JavaScript-koodissa. JavaScript-kehykset voivat hyödyntää WASM: ää suorituskyvyn parantamiseksi.
WASM käyttää JavaScriptin kaltaista hiekkalaatikko-suoritusmallia. WASM on vuorovaikutuksessa isäntäkoneen kanssa käyttämällä ABI: ita (Application Binary Interface), kuten WebAssembly-järjestelmän käyttöliittymä joka tarjoaa pääsyn resursseihin ja muihin järjestelmäpalveluihin ohjelman vaatimusten mukaisesti.
Monet nykyaikaiset selaimet tukevat WASM: ää, mukaan lukien Chrome, Microsoft Edge, Mozilla Firefox, Opera ja Safari. Kielet, kuten Go ja Ruostetuki WASM ulos laatikosta.
Miksi Web tarvitsee WebAssemblyn
JavaScriptin toiminnallisuus on suunnittelultaan rajoitettua. Se ei ole yksi niistä nopeimmat tai tehokkaimmat kielet koska se aloitti verkon komentosarjakielenä. Vaikka on monia ajonaikoja, joissa JavaScript toimii vaihtelevalla nopeuksilla, on olemassa nopeampia ja enemmän suorituskykyisiä kieliä, jotka WebAssembly voi tuoda verkkoon käyttötarkoituksiin, kuten pelaamiseen, videoihin ja musiikkia.
WebAssembly tarjoaa myös enemmän siirrettävyyttä ja joustavuutta kielille, jotka eivät toimi verkossa. Lisäämällä uusia kieliä verkkoon (suosituin avoimen lähdekoodin alusta) pitäisi parantaa yleistä käyttökokemusta.
WebAssemblyn käyttöönotto on nopeatempoista
Monet yritykset ja kehittäjät rakentavat sovelluksia WebAssemblyn avulla. Google, Dropbox ja Cloudflare käyttävät WebAssemblya aktiivisesti joissakin sovelluksissaan.
WebAssembly on suosittu Python-, C++- ja Rust-kehittäjien keskuudessa. Python-kehittäjät käyttävät yleisesti Pyoididea ja PyScriptiä, C++-kehittäjiä ja Emscripteniä sekä Rust-kehittäjiä Percy-, Yew-, Sycamore-, MoonZoon- ja Seed-kehyksen kanssa.