Intersim AG – Zur Startseite
Kontakt

JavaScript vs WebAssembly

Angus Young auf Tastatur

Heute ist JavaScript die noch dominierende Websprache. Eine Alternative bietet hier «WebAssembly»: WebAssembly ist ein Bytecode (Sammlung von Befehlen für eine virtuelle Maschine) zur Ausführung in Webbrowsern. Ziel der Entwicklung ist eine schnelle Ergänzung zu JavaScript, sowohl was die Ladezeiten als auch die Ausführung betrifft. Das Projekt wird von allen grossen Entwicklern von Browserengines, also Mozilla, Microsoft, Google und Apple, betrieben und soll gegenüber asm.js (Zwischencode) eine weitere Optimierung der Lade- und Ausführungszeiten erreichen.

Autor:in
Ilija Tovilo
Veröffentlicht

JavaScript

Wir alle wissen, dass wir einen Webbrowser benötigen, um Webseiten auf dem Internet zu besuchen. Aber was macht ein Webbrowser überhaupt? Kurzgesagt kommuniziert er mit dem Webserver und interpretiert dessen Antwort. Hier handelt es sich mehrheitlich um:

Inhalt (HTML) Styling (CSS) Funktionalität (JavaScript) Heute befassen wir uns mit JavaScript.

JavaScript ist eine Programmiersprache, welche verwendet wird, um das Verhalten einer Webseite zu definieren.

Einige Beispiele sind:

Wenn der Benutzer zum Ende der Seite scrollt, lade weitere Elemente. Beim Klick auf einen Knopf, öffne ein Popup mit einem bestimmten Inhalt. Beim Tippen in ein Suchfeld, öffne ein Dropdown mit Suchvorschlägen. Die Anwendungsfälle sind unendlich.

Spezifikation

JavaScript ist die einzige Programmiersprache, die direkt von allen gängigen Browsern interpretiert werden kann. Die Sprache erschien erstmals im Jahr 1995 im Browser Netscape, welcher damals über 50% des Marktanteils besass. Ein Jahr später adaptierte der Internet Explorer von Microsoft eine eigene JavaScript Variation, genannt JScript. Unterschiede in den zwei JavaScript-Implementationen erschwerte die Entwicklung von Webseiten, da die Entwickler viele Teile der Webseite doppelt entwickeln mussten. Um weitere Diskrepanzen zu vermeiden, erstellte Brendan Eich, der ursprüngliche Entwickler der Sprache, eine Spezifikation (genannt ECMAScript), an die sich alle Browser halten sollen. Diese Spezifikation wird noch heute verwendet und seit 2015 jährlich erweitert.

Limitation

JavaScript ist keine perfekte Sprache, aber sie ist grundsätzlich gut genug. Eine neue Sprache zu definieren ist schwer, da sich alle Browser auf eine Spezifikation einigen müssen. Aus genau diesem Grund wurde in den 25 Jahren keine Alternative entwickelt.

Es gibt viele Sprachen, welche sich zu JavaScript übersetzen lassen. Man schreibt den Code in einer anderen Sprache (z.B. TypeScript, CoffeeScript) und lässt den Code von einem sogenannten Transpiler wieder zu JavaScript umschreiben, welcher dann vom Browser interpretiert werden kann.

Einen ähnlichen Ansatz verwenden nun die Browser mit WebAssembly, damit beliebige Programmiersprachen im Browser verwendet werden können.

WebAssembly

WebAssembly ist keine Programmiersprache. Ähnlich zu Assembly Sprachen (zumindest heutzutage) dient es als «Compilation Target», oder Kompilierungsziel. WebAssembly Code soll somit nicht von Menschen sondern von Maschinen geschrieben werden. Vergleichsweise mit einer Programmiersprache ist die Spezifikation simpel, damit sie einfacher von Browsern implementiert werden kann, und um Diskrepanzen zwischen den Implementationen zu vermeiden. WebAssembly ist auch dafür gemacht, schnell zu sein.

Anwendungsfälle

Ein grosser Vorteil dieses Ansatzes ist, dass Entwickler keine neue Sprache lernen müssen, wenn sie sich bereits gut mit einer auskennen, welche sich zu WebAssembly kompilieren lässt.

Da die Sprachentwicklung nicht mehr abhängig von den Browsern ist, können die Programmiersprachen auch einfacher erweitert werden, ohne dass viele Jahre gewartet werden muss, bis das Feature auf allen gängigen Browsern verfügbar ist.

Es gibt bereits viele Sprachen, welche sich zu WebAssembly übersetzen lassen und somit als Programmiersprache im Browser einsetzbar sind. Ein Beispiel hier ist C# mit Blazor.

Aber auch die Millionen von Programmen, welche in anderen Programmiersprachen geschrieben sind, können plötzlich vom Browser ausgeführt werden.

Zukunft

WebAssembly steckt noch in den Kinderschuhen. Es ist bereits möglich, die Technologie zu verwenden, da sie in allen gängigen Browsern unterstützt wird. Es wird jedoch wahrscheinlich noch einige Jahre dauern, bis JavaScript nicht mehr als «die Websprache» angesehen wird.

Verwandte Themen

Weiterführende Projekte und Inhalte zum Thema

Website Coaching