Binær kode oversat fra C++ på vej til browseren med WebAssembly

Webapplikationer med kode, der minder mere om Assembler end om Javascript, ser ud til at blive klar til browserne allerede i år.

Javascript bliver presset til det yderste i mange moderne webapplikationer, og de forskellige browsere har i en årrække konkurreret om at have den kraftigste Javascript-motor. Men nu kan Javascript blive afløst af mere maskinnær kode, når den første understøttelse for WebAssembly dukker op i browserne.

Det kan ske allerede i år, skriver Infoworld. De fire største browsere Chrome, Firefox, Edge og Safari har allerede fået understøttelse på testniveau for WebAssembly.

WebAssembly er en anden tilgang til at afvikle mere krævende applikationer i browseren end eksempelvis oversættelse af Javascript til et binært eksekverbart format. Med WebAssembly vil en applikation kunne kodes i C eller C++ og oversættes til et Assembler-lignende format, der i tekstformat kan redigeres direkte.

Med tiden er det også tanken, at WebAssembly vil kunne udvides til at understøtte sprog som C# eller Java.

Man skriver altså først en applikation i et af de gængse højniveausprog, som så oversættes til WebAssemblys format. Det vil kunne give fordele til den type applikationer, hvor Javascript ikke er oplagt, som eksempelvis videoredigering, hvor mange parallelle tråde kan være en fordel.

WebAssembly er beregnet til at være mere generelt anvendeligt end den afart af Javascript, som også kan arbejde med C-kode, asm.js.

Der vil fortsat være tale om applikationer, der distribueres via web til browseren. Men det maskinnære format fylder mindre end tilsvarende Javascript-kode. Applikationerne vil afvikles i en sandkasse med beskyttelse mod klassiske sikkerhedsbrister i forhold til håndtering af hukommelsen.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk

Kommentarer (10)

Ditlev Petersen

"og oversættes til et Assembler-lignende format, der i tekstformat kan redigeres direkte."
Jeg kan godt se fidusen ved at få tingene til at køre hurtigere eller med mindre træk på batteriet, men hvornår har man et stort behov for at rette direkte i "assembler"-koden? Det lyder ikke som et indlysende fremskridt. Det næste skal måske være op-koder i binær eller oktal?

Martin Kirk

Koden eksekveres i et runtime, så dermed er det platforms uafhængig...

lidt i samme grad som IL, som eksekveres direkte når der er tale om native cpu instruktioner (Matematik osv)

Log ind eller opret en konto for at skrive kommentarer