Webassembly kan blive webbets næste revolution og sætte Javascript på porten
I løbet af de seneste uger har webbet undergået en stille revolution i al ubemærkethed.
Apple og Microsoft har nemlig udsendt nye udgaver af browserne Safari og Edge, med understøttelse af Webassembly. Det fremgår af et indlæg på Firefox-firmaet Mozillas blog.
Dermed er alle de fire store browsere med på vognen, der kan give helt nye muligheder for webudviklere og webapplikationer.
Webassembly er en ny standard for bytekode og en tilhørende virtuel maskine, som kan afvikles lige godt i alle de fire store browsere. Udviklingsarbejdet blev igangsat i 2015 og byggede videre på ideerne i Asm.js.
Den teknologi var en delmængde af Javascript, som browseren var finjusteret til at afvikle med høj ydelse. Asm.js blev anvendt som et slags ‘Javascript-assembler,’ der gav mulighed for nemmere krydskompilering af andre sprog til brug i webapplikationer.
Webassembly går skridtet videre og implementerer en standard for bytekoder, som det kendes fra Javas JVM og .Net-miljøet.
Ydelse en størrelsesorden hurtigere
Det giver en lang række fordele. Ifølge Mozilla kan indlæsning og udførelse af kode ende med at være en størrelsesorden hurtigere, end dagens Javascript, der skrives som kildekode og sendes over nettet, for så at blive fortolket i browseren.
Indtil videre er det C og C++, der tilbydes, og Rust er på vej. Garbage collection ligger umiddelbart i Webassemblys fremtid og vil give mulighed for understøttelse af sprog som Java, C# og mange flere. Det betyder også, at Javascript kan få nogle skrappe konkurrenter, der har klaret sig godt i andre sammenhænge
Det er blandt andet spilmiljøet, der har bakket omkring de nye muligheder.
»Asm.js og Webassembly var ret oplagt for spil-industrien, fordi de havde kæmpe investeringer i programmer skrevet i C++, som de ikke havde lyst til at skrive en gang til for webbet,« forklarer Mozilla-udvikleren Luke Wagner, der i sin tid opfandt Asm.js.
»Nu ser vi, at folk bruger Webassembly til alle slags projekter. Så nu er der et ægte løfte om at det en dag bliver muligt at køre stort set alle programmer på webbet og få en ydelse, ligesom hvis det kørte lokalt på din pc.«
Standard på vej
Det er meningen at Webassembly skal blive en vaskeægte standard, og der er nedsat en såkaldt ‘Community Group’ under W3-konsortiet med det formål for øje.
Koden kompileres til bytekode-formatet 'Wasm.' Webassembly har også fået sit eget 'dekompiler'-sprog, der oversætter de numeriske bytekoder til noget, der er nemmere at læse og forstå. Formatet benytter såkaldte S-expressions, som det kendes fra sprog i Lisp-familien.
Hvis et program importerer en funktion med navnet imported_func
fra et modul der hedder imports
, og eksporterer en funktion exported_func
, kan det se sådan ud i Webassembly text format:
(module (func $i (import "imports" "imported_func") (param i32)) (func (export "exported_func") i32.const 42 call $i ) )
Det er ideen, at dette er hvad der vises, hvis brugeren vælger 'vis kode' i en webapp, som bygger på Webassembly.
Eksemplet her stammer fra Mozilla.
Der er mere information om projektet på dets hjemmeside.

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.
Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.
Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.
Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.