Allgemein

WebAssembly – das performante neue Web

Bernhard Aichinger
Bernhard Aichinger

Google, Mozilla, Microsoft und andere Entwickler arbeiten fleißig an einem neuen Standard für Webbrowser – WebAssembly – welcher viele interessante Neuerungen für das Web mit sich bringt, vor allem im Bereich Performance.

Das Problem

Immer mehr transformiert sich das Web von simplen Websites zu komplexen „Rich Media“ Anwendungen, mit ausgefallener Darstellung und sich ständig bewegenden, rotierenden und skalierenden Elementen, vielen Farben und exotischer Benutzerinteraktion. Den Titel „Internetseite“ haben diese Websites gar nicht mehr verdient, viel mehr sollten man sie schon als eigene Kunstform anerkennen.

Die aufwendige Darstellung dieser modernen Seiten ist aber nicht gratis, sondern kommt mit einem hohen Preis in Bezug auf Performance bzw. der Ausführungsgeschwindigkeiten im Browser. Aber ist Performance überhaupt wichtig? „Ist es nicht egal, ob beim durch-scrollen von Inhalten meine Seite ein wenig ruckelt, anstatt flüßig meiner Fingerbewegung zu folgen?“ könnte man sich fragen. Natürlich liegt es im Auge des Betrachters, ob man dies als nervig empfindet, aber schlechte Performance zieht ein wesentlich unangenehmeres Problem mit sich: Stromverbrauch.

Zwingt eine Website den Browser zu sehr vielen Berechnungen, kann das schonmal viel Rechenleistung beanspruchen => der Prozessor muss stärker nachdenken und braucht mehr Strom, ergo mehr Stromverbrauch.
Für Desktopcomputern ist das zwar relativ egal, weil diese sowieso an einer ständigen Stromversorgung angeschlossen sind, aber für Mobilgeräte sieht es wesentlich anders aus aus, weil sie meist nur einen kleinen Akku zur Verfügung haben – besonders Tablets und Smartphones.

Wo liegt nun das Bottleneck? Warum sind Websites in der Regel langsamer als Native-Applikationen?
Alle Websites bauen auf denselben 3 standardisierten Technologien auf: HTML, CSS und JavaScript. Besonders Letzteres, JavaScript, machen sich moderne Seiten stark zunutze. Dieses JavaScript hat sich zwar im Laufe der Zeit immer weiter entwickelt und ist immer schneller geworden, doch kann es noch nicht ganz mit nativen Desktop Anwendungen mithalten.
(Stark vereinfacht gesagt)

Eine Lösung – WebAssembly

Was ist nun WebAssembly eigentlich? Einfach gesagt, WebAssembly kann man sich wie einen kleinen, abgespeckten virtuellen Computer im Computer vorstellen – nennen wir diesen mal abgekürzt Wasm. Dieser kleine virtuelle Computer versteht spezielle, auf Geschwindigkeit und Flexibilität optimierte, Befehle. Zudem kann Wasm eine Sache ganz besonders gut: Er kann eine Liste an Befehlen, die für ihn bestimmt sind, in eine Liste aus Hardware-Befehlen, für den Prozessor auf dem Wasm selbst ausgeführt wird, umwandeln.
Wasm kennt die Hardware, auf der er ausgeführt wird, in- und auswendig. Somit kann er seine eigenen Befehle in extrem schnelle Hardware-Befehle konvertieren. Zugleich kann Wasm auch Gebrauch von speziellen Features der unterliegenden echten Hardware machen, was ein noch schnelleres Endprogramm möglich macht (Stichwörter SIMD und multithreading).
Nach einem frühen Prototypen zufolge, waren bestimmte Testprogramme bis zu 23x schneller als mit herkömmlichen JavaScript.

Das ist aber noch nicht alles: WebAssembly Programme sind extrem abgespeckte, binäre Dateien.
Anders als bei JavaScript Programmen, welche in reiner Textform daher kommen, besteht ein WebAssembly Programm nur aus seltsamen, kryptischen Zahlen.
Das Ganze hat einen riesigen Vorteil: WebAssembly Programme sind wesentlich kleiner, als deren JavaScript Versionen. Somit wird die Ladezeit und Datenverbrauch beim Aufruf von Websites verringert, was besonders für Mobilnutzern ein dickes Plus ist.

Die neue Technologie hat noch einen weiteren Vorteil: Dadurch dass Wasm einen genormten Befehlssatz hat, kann der Source Code von sehr vielen Programmiersprachen in Wasm Befehle „kompiliert“ werden. Das heißt, dass anstatt wie aktuelle noch, alle WebSites in HTML + CSS + JavaScript, WebSites zukünftig in HTML + CSS +  ziemlich jeder Sprache programmiert werden können.
JavaScript hat bekannte „Designfehler“, ein paar Gravierende, ein paar eher unwichtige. Durch WebAssembly könnten Website-Entwickler Programmiersprachen verwenden, welche schon länger existieren und kampferprobter sind.

JavaScript selbst wird sich auch in WebAssembly Befehle kompilieren lassen, was eine komplette Rückwärtskompatibilität ermöglicht.

E-CONOMIX und WebAssembly

WebAssembly ist noch eine extrem neue Technologie (offiziell erstmals bekanntgegeben am 17. Juni 2015), und befindet sich immer noch in der Designphase. Es gibt zwar schon den ein oder anderen Prototypen, aber herauskristallisiert hat sich bis jetzt noch nichts.

Als professionelle Internetagentur bleiben wir der Entwicklung dieser Technologie dicht auf den Fersen. WebAssembly ist ein ernstes Projekt, welches zurzeit alle großen Browser-Entwickler beschäftigt, und wird in Zukunft sicher noch relevant bleiben.

Zusammenfassung

WebAssembly bietet sich als neue Platform für die Browser-seitigen Website-Entwicklung als extrem interessante Technologie an. Wann es denn für eine Version 1.0 endlich soweit ist, bleibt abzuwarten.

Bis zu 23x schnellere Ausführungszeiten und wesentlich weniger Speicherbedarf können der neuen Technologie zugeschrieben werden. Speziell für Script intensive Websites ist dies attraktiv.

Besucher werden das langsame Einspiel von WebAssembly in mehr und mehr Websites nicht merken, dafür sorgt die Rückwärtskompatibilität.

Teile diesen Artikel

Unsere Social Media Accounts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.