(Bilde: digi.no)

WebAssembly

WebAssembly skal få virkelig fart på weben

Støttes av «alle» og kan allerede testes.

Webplattformen utvides stadig med ny teknologi, men ofte tar det lang tid før den faktisk kan tas i bruk, fordi noen nettleserleverandører venter i det lengste med å bygge støtte for teknologiene.

Men dette ser ikke ut til å gjelde WebAssembly, en kommende teknologi som skal kunne gi webapplikasjoner bortimot den samme ytelsen som tilsvarende applikasjoner som kjøres lokalt på enheten. Utviklingen av teknologien skjer i en W3C-gruppe som ledes av Apple, Google, Microsoft og Mozilla. Initiativet ble første gang omtalt i fjor sommer.

Kombinerer sikkerhet og ytelse

I likhet med vanlige webapplikasjoner, skal WebAssembly-applikasjoner kjøres i et sandkasse-basert kjøremiljø, men samtidig skal de kunne utnytte visse typer utbredt maskinvare langt mer direkte, uten at det går ut over flyttbarheten.

Ifølge Mozilla er tanken bak WebAssembly noe av den samme som med JavaScript-baserte asm.js, men teknologien tar flere skritt videre. Gjennom et standardisert, binært format skal applikasjonsfilene kunne gjøres mindre og dekodingen raskere enn det som er mulig med JavaScript.

Det vil også være mulig å se en tekstbasert representasjon av WebAssembly, slik at alle kan se kildekoden til modulene.

C/C++

Men i likhet med asm.js er tanken at utviklere skal benytte et annet språk, i første omgang C/C++, til programmeringen. Dette kompileres så til WebAssembly, som er en lavnivå og flyttbar bytekode som nettleserne skal kunne kjøre.

En fordel med WebAssembly, sammenlignet med plugin-baserte teknologier, er at det har tilgang til eksisterende web-programmeringsgrensesnitt og er tett integrert med JavaScript, noe som åpner for kall mellom de to teknologiene. Dette skal gjøre det enklere å integrere WebAssembly i JavaScript-baserte applikasjoner og -biblioteker.

Det finnes i alle fall én offisiell demo av WebAssembly. Den kan testes i svært tidlige utgaver av Chrome og Firefox. WebKit-prosjektet, som Apple Safari er basert på, opplyser at WebAssembly-støtte er under utvikling, men ingen testversjoner tilgjengelig.

Demoen fungerer også i en testversjon av Microsoft Edge, men denne er ikke offentliggjort. Kjøringen vises derimot i videoen nedenfor.

Det er mulig å teste den samme demoen også i dagens nettlesere, men da er den basert på asm.js.

Fortsatt uferdig

Selv om WebAssembly altså til en viss grad fungerer, så er det fortsatt mye arbeid som gjenstår før teknologien er klar for bruk. Dette inkluderer blant annet mer optimalisering og standardisering av formater. Det er uklart når dette vil bli ferdig,

Hvor mye rask WebAssembly vil bli, sammenlignet med asm.js, er det trolig for tidlig å si. I tester Mozilla har gjort på en relativt kraftig pc, blir kompileringstiden mer enn halvert. Dekodingen av WebAssembly skal kunne utføres omtrent ti ganger raskere enn parsingen av asm.js, men med mer optimalisering av andre deler av kompileringspipelinen kan trolig lastetiden ved første gangs kjøring reduseres betydelig.

Bruksområder

Selv om den første demoen er et spill, så vil WebAssembly kunne gi høyere ytelse også i forbindelse med mange andre bruksområder og applikasjoner. Blant dem som nevnes av WebAssembly-gruppen, er bilde- og videoredigering, musikkapplikasjoner, bildegjenkjenning, utvidet og virtuell virkelighet, DAK-applikasjoner, simuleringer, virtuelle maskiner, fjernstyring, kryptering, utviklingsverktøy og «fete» klienter til bedriftsapplikasjoner.

Men gruppen mener at teknologien også vil kunne brukes på serversiden, blant annet for å kjøre upålitelig kode, samt i hybride applikasjoner i mobile enheter.

Til toppen