WebAssembly: wereldspelers werken aan een sneller internet
Uiteraard is het de grote spelers in het internetwereldje erom te doen om je zoveel mogelijk te binden aan hun eigen besturingssysteem en het omringend ecosysteem. Daarom is het zo verheugend te vernemen dat zij nu samenwerken aan een nieuw script voor de webbrowser dat die grenzen moet doorbreken: WebAssembly.
JavaScript, de bouwsteen
Google, Apple, Microsoft en Mozilla slaan de handen ineen voor een gezamenlijke inspanning om websites niet alleen sneller te laden maar ook meer interoperabiliteit te creëren. Het hele internet draait rond standaards die het mogelijk maken om websites, of ze nu simpel of complex en super-interactief, vol rich media zijn, correct te laten weergeven op elke browser, op elke computer, ongeacht het besturingssysteem.
Momenteel is JavaScript de cement van deze interoperabiliteit, maar de programmeertaal heeft zijn beperkingen. Al enkele jaren werken ontwikkelaars aan manieren om die beperkingen te overstijgen; zij bouwen compilers die code van andere talen omzetten naar JavaScript. Voorbeelden daarvan zijn TypeScript van Microsoft en het asm.js project van Mozilla.
Binary code
Die inspanningen lijken nu uit te monden in een gezamenlijk project: WebAssembly. Kort samengevat komt het erop neer dat JavaSript bestanden gewoon tekstbestanden zijn, die van de server gedownload worden en dan geparsed en gecompileerd worden door de JavaScript engine in de browser. Bij WebAssembly worden niet langer gewone tekstbestanden doorgestuurd, maar binaire bestanden. De code kan hierdoor nog meer gecomprimeerd worden en de JavaScript engine kan het binaire formaat tot 23 keer sneller decoderen dan momenteel het geval is.
Er zou zelfs een "polyfill library" komen, waardoor WebAssembly code omgezet wordt in JavaScript, zodat die in elke browser kan draaien zelfs indien die geen native WebAssembly ondersteunt.
Het uiteindelijke idee is niet om JavaScipt te vervangen, maar om veel meer programmeertalen te compileren voor het web. Het is dan ook hoogstwaarschijnlijk dat zowel JavaScript als WebAssembly zij-aan-zij zullen bestaan op het internet. Bij een bepaalde applicatie zullen sommige onderdelen gebruik maken van de WebAssembly modules, bijvoorbeeld animatie weergave compressie enz. Andere delen zullen echter nog altijd geschreven worden in JavaScript zoals bijvoorbeeld de gebruikersinterface.
Het belangrijkste dat je moet onthouden uit deze evolutie, is dat WebAssembly webapps -apps die dus in de browser draaien en per definitie platformonafhankelijk zijn- meer mogelijkheden geeft. Meer apps in de browser betekent meer interoperabiliteit. En dus minder werk voor de ontwikkelaar die zijn applicatie opnieuw moet schrijven voor de verschillende besturingssystemen (iOS, Android, Windows Mobile, ...). Een positieve evolutie!
Wil je meer te weten komen, dan verwijzen wij je naar de WebAssembly pagina bij Git-Hub en een interview bij Medium.com met BrendanEich. Een heldere uitleg over de werking van WebAssembly vind je bij ModusCreat.