Kør C++ og C i browseren: WebAssembly er klar til test hos webudviklere

Alle de store browsere er på vej med understøttelse for WebAssembly, der skal give ydelse for kode i browseren, der nærmer sig en lokal applikation.

Nu kan webudviklere prøve kræfter med WebAssembly-teknologien i både Chrome og Firefox, hvor det første preview netop er frigivet. Det oplyser Googles Seth Thompson fra V8-Javascript-holdet i et blogindlæg.

WebAssembly er også klar i et foreløbig internt build af Edge, og Apples Webkit skulle også være undervejs med WebAssembly. Dermed forventer arbejdsgruppen for WebAssembly under W3C at være klar med en endelig udgave og officiel understøttelse i løbet af første kvartal 2017.

WebAssembly handler først og fremmest om ydelse. Der findes forskellige teknologier til at oversætte Javascript til mere maskinnær kode, men det foregår gennem Javascript-motoren i browseren. Foreløbig ser det ifølge arbejdsgruppen ud til, at WebAssembly vil kunne afvikles cirka 20 gange hurtigere i forhold til den tid det tager at parse Javascript og optimere det til det lokale system.

Dermed er Javascript ikke ude af billedet, for webudviklere vil også kunne bruge eksisterende biblioteker fra C++ og bruge dem sammen med Javascript ved hjælp af WebAssembly. Hvis man vil skrive direkte til WebAssembly, så vil det i første gang ske med C eller C++.

Nyder bred understøttelse

Fordelen ved WebAssembly er samtidig, at det er en standard, som alle browserproducenterne, inklusive Microsoft og Apple, støtter, og derfor vil der være bred understøttelse for den i browserne.

Selvom der bliver brugt C og C++ til at skabe maskinnær kode, så har arbejdsgruppen arbejdet på at gøre WebAssembly sikkert. Det vil køre i en sandkasse med de samme restriktioner, som gælder for al anden kode, der afvikles i browseren.

Det er heller ikke meningen, at WebAssembly skal erstatte Javascript. Tanken er, at man kan bruge WebAssembly til at skabe den type webapplikationer, der kræver mere af ydelsen, end Javascript kan levere, men uden at bruge plugins eller browserspecifikke teknologier.

Det kan eksempelvis være webapplikationer til videostreaming, billedredigering, virtual reality og andre beregningstunge applikationer, hvor mere maskinnær kode kan være med til at skabe både en bedre brugeroplevelse og lægge beslag på færre systemressourcer, fordi koden kan gøres mere effektiv.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (3)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Martin Jünckow

Kan godt være det ikke er populært at melde ud at målet er at erstatte javascript og der vil selvfølgelig også blive skrevet massere af javascript i mange år endnu.

MEN det bliver altså svært at se hvad vi skal med javascript når først WebAssembly har vundet nok indpas og flere sprog kommer til end blot C og C++.

imo kan det kun gå for langsomt.

  • 4
  • 1
Daniel Korsgaard

Jeg kan ikke undgå, at få tanken, at browseren "overtager" computeren, og bliver til OS'et.
Altså, det eneste OS, som bare ender med at køre alle applikationer, på alt consumer hardware.

Vi er der jo næsten allerede, lige på nær de mest krævende applikationer.

Så, i sidste ende, måske mere end bare en JS erstatning?

  • 0
  • 0
Lars Tørnes Hansen

Jeg kan ikke undgå, at få tanken, at browseren "overtager" computeren, og bliver til OS'et.
Altså, det eneste OS, som bare ender med at køre alle applikationer, på alt consumer hardware


Browseren bliver ikke et styresystem. Punktum.

Et styresystems kerne skal kontrollere adgang til hardwaren. Styre hukommelsen: Virtuel til fysisk hukommelse. Device drivere som udvider mængden af hardwaren en kerne kan "snakke" med.

Det er bare 1 af flere grunde til en browser aldrig kan blive et styresystem.
Jeg kan nævne flere: Filsystemer, netværksprotokoller, pre emptive scheduler, som bestemmer hvilket program der nu skal køre i hvor lang tid, og hvornår det må få køretid igen.

... og så har jeg ikke nævnt al den konfiguration af hardwaren en kerne laver når den starter.

Det er også en rigtig dårlig ide at f.eks. køre en FTP klient på nogen som helst anden abstraktion end kernens user space API, Tænk: en abstraktion oven på en anden abstraktion.

  • 1
  • 0
Log ind eller Opret konto for at kommentere
IT Company Rank
maximize minimize