Abo
  • IT-Karriere:

Web-Bytecode: So sieht die Zukunft für Webassembly aus

Webassembly ist eine der vielversprechendsten Webtechnologien, doch noch fehlen wichtige Features. Die Mozilla-Entwicklerin Lin Clark erklärt, welche Entwicklungen bevorstehen.

Ein Bericht von Moritz Stückler veröffentlicht am
Lin Clark von Mozilla stellte auf der Github Universe Konferenz die Zukunftspläne für Webassembly vor.
Lin Clark von Mozilla stellte auf der Github Universe Konferenz die Zukunftspläne für Webassembly vor. (Bild: Moritz Stückler)

Webassembly ist aktuell eine der spannendsten Web-Technologien. Seit etwas mehr als einem Jahr wird sie von allen großen Browsern - Firefox, Chrome, Safari, Edge - unterstützt. Seither ist es um den neuen Standard relativ ruhig geworden. Ein großer Hype blieb bisher aus. Woran das liegt, wie es um das Projekt steht und wohin die Reise im Jahr 2019 gehen könnte, hat die Mozilla-Entwicklerin Lin Clark in einem Vortrag auf der Github Universe Konferenz und in einem zugehörigen Blogpost verraten.

Inhalt:
  1. Web-Bytecode: So sieht die Zukunft für Webassembly aus
  2. Web-Frameworks: Wann benutzen React, Angular und Co. Webassembly?

Webassembly, kurz WASM, ist ein Bytecode, der von Browsern direkt in einer virtuellen Maschine ausgeführt wird. Entwickler schreiben Programme aber nicht direkt in Webassembly, sondern es handelt sich um ein Compile-Ziel. Andere Programmiersprachen werden also nach WASM kompiliert. Es werden bereits viele Sprachen unterstützt, aber als Paradebeispiele gelten bisher C, C++ und vor allem die von Mozilla entwickelte Sprache Rust.

Webassembly soll die Monopolstellung von Javascript als der einzigen Sprache, die ein Browser ausführen kann, beenden. Im Gegensatz zu Javascript wird Webassembly vorab kompiliert und der resultierende, kompakte Bytecode zum Nutzer geschickt. Durch die geringere Dateigröße, den höheren Grad der Optimierung, statische Typisierung und viele weitere kleine Optimierungen verspricht WASM einen Geschwindigkeitsvorteil gegenüber Javascript, vor allem in rechenintensiven Anwendungsgebieten.

Heutige WASM-Implementierung ist nur eine Minimalversion

Was vielen Interessenten nicht klar ist: Die vor einem Jahr erfolgte Unterstützung von WASM in allen großen Browsern stellte nur den ersten Meilenstein der Entwicklung, ein Minimum Viable Product (MVP), dar, also eine minimale Variante. Webassembly ist keinesfalls fertig. Ganz im Gegenteil, die Sprache steht noch ganz am Anfang. Nach der Aufmerksamkeitswelle bezüglich der breiten Browser-Unterstützung folgten nur noch wenige Berichte über den produktiven Einsatz von Webassembly. Das liegt daran, dass der Sprache noch viele Teile fehlen um wirklich überzeugen zu können.

Stellenmarkt
  1. ASC Automotive Solution Center AG, Düsseldorf
  2. Stadtwerke München GmbH, München

Der Übersichtlichkeit halber hat Clark die einzelnen fehlenden Features inhaltlich gruppiert. Die erste Gruppe beinhaltet Features, die dafür nötig sind, um komplexe und große Desktop-Anwendungen (beispielsweise Photoshop oder CAD-Programme) einfach in Webassembly realisieren zu können.

Komplexe Anwendungen brauchen 64 bit, Threads und SIMD

Eine der größten Limitierungen von WASM für komplexe Anwendungen ist das Fehlen von Threads. Dieser Missstand soll schon sehr bald behoben werden, indem eine Thread-Unterstützung auf Basis von Web Workern - ähnlich wie bei Javascript - implementiert wird. Die Arbeiten an dem zugehörigen Proposal sind abgeschlossen, aber durch die Spectre-Sicherheitslücken mussten die Browser-Hersteller die notwendigen Shared Array Buffer temporär deaktivieren, die für die Umsetzung benötigt werden. Diese Unterstützung sollte aber bald wieder aktiviert werden. Die Einführung der Threads in der ersten Hälfte 2019 erscheint daher realistisch. Experimentierfreudige Nutzer können eine frühe Implementierung der WASM-Threads in der aktuellen Chrome Version 70 testen.

  • Lin Clark von Mozilla stellte auf der GitHub Universe Konferenz die Zukunftspläne für Webassembly vor. (Bild: Moritz Stückler)
  • Zu den wichtigsten Features für komplexe WASM-Anwendungen gehören Threads, SIMD und 64-bit-Support. (Bild: Lin Clark)
  • Vor allem die fehlende, browsereigene Garbage Collection ist momentan noch ein großes Hindernis für die Adoption von WASM. (Bild: Lin Clark)
  • Ein Überblick über die zukünftigen Features von Webassembly. (Bild: Lin Clark)
Zu den wichtigsten Features für komplexe WASM-Anwendungen gehören Threads, SIMD und 64-bit-Support. (Bild: Lin Clark)

Ebenfalls notwendig, um die Fähigkeiten und Performance von WASM für große Anwendungen anzupassen: SIMD und 64 Bit. SIMD bringt die Unterstützung für eine bestimmte Klasse von Prozessor-Opcodes, die es ermöglichen, gleichartige Rechenoperationen mit mehreren Operanden auf einmal auszuführen. Diese Art von Operationen wird häufig für Bild-, Ton- und Video-Bearbeitung gebraucht. Ebenfalls hilfreich für komplexe Anwendungen ist die Unterstützung von 64 Bit Wortlänge. Damit können Webassembly-Anwendungen auch mehr als 4 Gigabyte Speicher addressieren. Die SIMD-Implementierung ist schon relativ weit gediehen und wird voraussichtlich auch im Jahr 2019 fertiggestellt werden. Die Arbeiten an der 64-Bit-Unterstützung befinden sich dagegen leider noch im Anfangsstadium.

Web-Frameworks: Wann benutzen React, Angular und Co. Webassembly? 
  1. 1
  2. 2
  3.  


Anzeige
Top-Angebote
  1. (u. a. Fire HD 8 für 69,99€, Fire 7 für 44,99€, Fire HD 10 für 104,99€)
  2. (aktuell u. a. X Rocker Shadow 2.0 Floor Rocker Gaming Stuhl in verschiedenen Farben je 64,90€)
  3. 337,00€
  4. (u. a. HP 34f Curved Monitor für 389,00€, Acer 32 Zoll Curved Monitor für 222,00€, Seasonic...

Gamma Ray Burst 14. Nov 2018

Lässt sich weiterführen zu Alle Computer sind unsicher und die Welt ist unsicher ... das...

Andreas.Kreuz 05. Nov 2018

Wer spricht denn hier von asm.js? Mir ging es um einen WASM polyfill, siehe hier...

gfa-g 04. Nov 2018

Und du keine Ahnung von Kulturunterschieden. Webanwendungen können lokal und unabhängig...

schnedan 04. Nov 2018

ein Linux im Browser fährt hoch, öffnet per Start Script ein Linux im Browser, das fährt...

lala1 02. Nov 2018

Ist mit wesentlich weniger Aufwand machbar ... wenn auch anstrengend.


Folgen Sie uns
       


Ghost Recon Breakpoint - Fazit

Das Actionspiel Ghost Recon Breakpoint von Ubisoft schickt Spieler als Elitesoldat Nomad auf eine fiktive Pazifikinsel.

Ghost Recon Breakpoint - Fazit Video aufrufen
Atari Portfolio im Retrotest: Endlich können wir unterwegs arbeiten!
Atari Portfolio im Retrotest
Endlich können wir unterwegs arbeiten!

Ende der 1980er Jahre waren tragbare PCs nicht gerade handlich, der Portfolio von Atari war eine willkommene Ausnahme: Der erste Palmtop-Computer der Welt war klein, leicht und weitestgehend DOS-kompatibel - ideal für Geschäftsreisende aus dem Jahr 1989 und Nerds aus dem Jahr 2019.
Ein Test von Tobias Költzsch

  1. Retrokonsole Hauptverantwortlicher des Atari VCS schmeißt hin

Linux-Kernel: Selbst Google ist unfähig, Android zu pflegen
Linux-Kernel
Selbst Google ist unfähig, Android zu pflegen

Bisher gilt Google als positive Ausnahme von der schlechten Update-Politik im Android-Ökosystem. Doch eine aktuelle Sicherheitslücke zeigt, dass auch Google die Updates nicht im Griff hat. Das ist selbst verschuldet und könnte vermieden werden.
Ein IMHO von Sebastian Grüner

  1. Kernel Linux bekommt Unterstützung für USB 4
  2. Kernel Vorschau auf Linux 5.4 bringt viele Security-Funktionen
  3. Linux Lockdown-Patches im Kernel aufgenommen

Alexa: Das allgegenwärtige Ohr Amazons
Alexa
Das allgegenwärtige Ohr Amazons

Die kürzlich angekündigten Echo-Produkte bringen Amazons Sprachassistentin Alexa auf die Straße und damit Datenschutzprobleme in die U-Bahn oder in bisher Alexa-freie Wohnzimmer. Mehrere Landesdatenschutzbeauftragte haben Golem.de erklärt, ob und wie die Geräte eingesetzt werden dürfen.
Von Moritz Tremmel

  1. Digitaler Assistent Amazon bringt neue Funktionen für Alexa
  2. Echo Frames und Echo Loop Amazon zeigt eine Brille und einen Ring mit Alexa
  3. Alexa Answers Nutzer smarter Lautsprecher sollen Alexa Wissen beibringen

    •  /