Mirko Sertic Thalia Bücher GmbH

„Ich persönlich finde das WebAssembly MVP sehr gelungen. Auch wenn die Spezifikation ein paar Ecken und Kanten hat, zeigt sich sehr deutlich das Potenzial eines binären, von allen Browsern und nativ verstandenen Formats. Von besonderer Bedeutung ist es für die ganze Entertainmentbranche, da hier besonders hohe Anforderungen an Größe und Laufzeit der Programme gelten.“

WebAssembly ist ein relativ neues, binäres Format für ausführbaren Programmcode im Web. Dieser Artikel beschäftigt sich mit der Motivation hinter WebAssembly, dem aktuellen Stand der Implementierung sowie den zukünftigen Erweiterungen.

Mehr als nur statische HTML-Seiten im Browser anzuzeigen, hat eine lange Tradition. Der Wunsch nach dynamischen Inhalten ist so alt wie das Internet selbst. Als mit dem Netscape Navigator Version 2.02 im Jahr 1995 die Skriptsprache LiveScript der breiten Öffentlichkeit zugänglich gemacht wurde, war auch der Wunsch nach dynamischeren Inhalten plötzlich ein Stückchen näher an der Realität. LiveScript wurde später in JavaScript umbenannt und entwickelte sich zu einem Fundament des Internets wie wir es heute kennen.

Die Entwicklung von immer dynamischeren Inhalten nahm dann ihren Lauf. Im Jahr 2005 prägte James Garret in seinem Aufsatz den Begriff AJAX und zeigte, wie es in Verbindung mit XML und Backend-Logik möglich ist, noch interaktivere Anwendungen zu bauen. JavaScript wurde immer beliebter.

Richten wir nun unseren Blick in die etwas jüngere Vergangenheit, nämlich auf das Jahr 2010: JavaScript als Laufzeitumgebung ist überall. Webbrowser sind überall. Ein weltweit etablierter Standard. Daraus entsteht die Idee, genau diese Laufzeitumgebung auch für mehr als nur Webseiten zu nutzen. Aus einer Zusammenarbeit der Mozilla Foundation und dem Spiele-Studio Epic entsteht das Projekt Emscripten. Emscripten ist ein C- bzw. C++-Compiler, der als Ergebnis JavaScript erzeugt. Mit diesem Compiler war es möglich, die Unreal-Spiele-Engine komplett nach JavaScript zu übersetzen und im Browser laufen zu lassen. Das beeindruckende Ergebnis war die Unreal-Cathedral-Demo.

Die Epic-Tech-Demos zeigten es ganz deutlich: die JavaScript Engines in den Browsern sind dank Just-in-Time-Kompilierung leistungsfähiger als viele dachten, und man kann damit wesentlich mehr machen, als nur div-Tags ein- und auszublenden. Durch den Einsatz von Cross-Compilern wie Emscripten ist es möglich, bestehenden Quellcode in Form von C oder C++ ohne größere Umbauarbeiten in neuen Umgebungen laufen zu lassen. Dies eröffnet für bestehende Lösungen und Produkte komplett neue Kundensegmente und Verteilungsmöglichkeiten für lauffähige Software.

Der Trend ist eindeutig. Der Anteil an JavaScript in Webseiten und Webanwendungen steigt stetig an, im Extremfall auf mehrere Millionen Zeilen Quellcode. Die Größe der Anwendungen nimmt teilweise schneller zu als die zur Verfügung stehende Rechenleistung auf mobilen Geräten oder die nutzbare Netzwerkbandbreite für den Download auf das Zielgerät. Daraus ergeben sich zwei Lücken, eine offensichtliche und eine vielleicht weniger offensichtliche.

Die offensichtliche Lücke ist die erwähnte Größe der Anwendungen, die Downloadkapazität und die Netzwerkbandbreite. Zugegebenermaßen kann der Größe und hohen Ladezeit durch eine geschickte Modulstruktur im JavaScript ein Stück entgegengewirkt werden. Trotzdem muss der Programmcode zum Nutzer übertragen werden, und die zur Verfügung stehende Kapazität der Funknetzwerke ist auf den Vertrag des Kunden mit dem Mobilfunkanbieter bzw. auch durch den noch schleppenden Breitbandausbau in Deutschland limitiert.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Entwickler Magazin 2.19 - "WebAssembly"

Alle Infos zum Heft
579881940Quo vadis WebAssembly?
X
- Gib Deinen Standort ein -
- or -