Webassembly kan blive webbets næste revolution og sætte Javascript på porten

16. november 2017 kl. 11:171
Webassembly kan blive webbets næste revolution og sætte Javascript på porten
Illustration: Bigstock/Iunewind.
Bytekode til browsere er nu inkluderet i alle de fire store browsere. Det giver bedre hastighed, kompilering på forhånd, understøttelse af moduler og mulighed for nye sprog på første klasse.
Artiklen er ældre end 30 dage
Manglende links i teksten kan sandsynligvis findes i bunden af artiklen.

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.

Artiklen fortsætter efter annoncen

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

Artiklen fortsætter efter annoncen

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:

  1. (module
  2. (func $i (import "imports" "imported_func") (param i32))
  3. (func (export "exported_func")
  4. i32.const 42
  5. call $i
  6. )
  7. )

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.

1 kommentar.  Hop til debatten
Denne artikel er gratis...

...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.

Debatten
Log ind eller opret en bruger for at deltage i debatten.
settingsDebatindstillinger
1
16. november 2017 kl. 22:13

Gad vide om der så kommer en Vulkan lignende udvidelse til webgl.