Die Kunst von WebAssembly

Aleksandr Shitik
Aleksandr Shitik

Ich schreibe meine eigenen Beiträge und Bücher und rezensiere Filme und Bücher. Experte für Kosmologie und Astronomie, IT, Produktivität und Planung.

Die Kunst von WebAssembly
Rick Battagline
Genres: Programmierung
Jahr der Veröffentlichung: 2022
Jahr der Lektüre: 2025
Meine Bewertung: Normal
Anzahl der Lesevorgänge: 1
Gesamtseitenzahl: 312
Zusammenfassung (Seiten): 14
Originalsprache der Veröffentlichung: Englisch
Übersetzungen in andere Sprachen: Russisch

Allgemeine Beschreibung

Ein 312-seitiges Buch mit 11 Kapiteln. Neben dem Text enthält es eine große Menge an Code sowie zahlreiche grafische Illustrationen, die verschiedene Beispiele veranschaulichen. Der Schwierigkeitsgrad ist hoch. Am Ende jedes Kapitels findet sich eine kurze Zusammenfassung.

Kurzübersicht

Die ersten beiden Kapitel dienen als Einstieg in die Technologie. Der Autor erklärt, warum WebAssembly benötigt wird, wo es eingesetzt wird und wie man damit interagiert. Das WebAssembly-Textformat (WAT) wird eingeführt, und das erste Programm „Hello, world!“ wird besprochen. WAT wird nahezu durch das gesamte Buch hindurch verwendet.

Das nächste Kapitel behandelt Funktionen und eine engere Integration mit JavaScript. Es werden Datentypen, Variablen (lokale und globale), bedingte Anweisungen (if/else), Schleifen und Verzweigungen behandelt. Einige dieser Themen werden bereits im zweiten Kapitel angeschnitten.

Es folgt ein überwiegend theoretisches Kapitel zur Zahlenverarbeitung. Falls Sie jemals mit Vorzeichen-Binärcodes wie Einer- und Zweierkomplement oder mit Bitoperationen (Verschiebungen, Masken, XOR) gearbeitet haben, wird dieses Kapitel vertraute Gefühle wecken – es wirkt leicht nostalgisch.

Danach wird ein Kapitel über Zeichenketten (Strings) behandelt: ASCII- und Unicode-Codierung, Speicherung von Strings im linearen Speicher und weitere Themen.

Das folgende Kapitel vertieft ausführlich die Nutzung des linearen Speichers. Darauf aufbauend wird ein interessantes Beispiel entwickelt – ein Programm zur Erkennung von Kollisionen zwischen Objekten. Dieses Beispiel wird später erweitert und verfeinert.

Es schließen sich mehrere Kapitel an, die der Entwicklung einer kompletten Mini-Webanwendung gewidmet sind. Ein Kapitel behandelt die Einrichtung eines Node.js-Servers und die Interaktion mit dem DOM, ein anderes die Arbeit mit Canvas.

Anschließend erläutert der Autor, wie man WebAssembly-Code debuggt, Fehler findet und behebt und ressourcenintensive Funktionen identifiziert. Diesen Themen sind zwei Kapitel gewidmet.

Das Buch schließt mit einem Kapitel über AssemblyScript – eine High-Level-Sprache, die speziell für WebAssembly entwickelt wurde. Außerdem wird ein Leistungsvergleich mit anderen Ansätzen vorgestellt.

Meine Einschätzung

Dieses Jahr feiert WebAssembly seinen 10. Geburtstag – ein Alter, das ausreicht, um zu bewerten, ob die Technologie ihre Erwartungen erfüllt hat und welche Rolle sie heute am Markt einnimmt. Sicher gibt es prominente Beispiele wie Google (Docs), Figma oder Photoshop, bei denen Leistungskritische Module oder sogar ganze Komponenten auf WebAssembly umgestellt wurden. Dennoch verläuft die Verbreitung in der Webentwicklung insgesamt langsam, und JavaScript beziehungsweise TypeScript bleibt weiterhin unangefochten führend.

Eine mögliche Ursache liegt im Fehlen einer eingebauten Garbage Collection, was WebAssembly für Sprachen wie Python oder Java weniger geeignet macht. Im Gegensatz zu C++ oder Rust, die von Anfang an für manuelles Speichermanagement konzipiert wurden, fällt es diesen Sprachen schwerer, sich effizient in WebAssembly einzufügen (obwohl hier in den letzten Jahren deutliche Fortschritte erzielt wurden). Hinzu kommt, dass direkter Zugriff auf das DOM fehlt. Der Versuch, WebAssembly über kompilierte Zwischenschichten zu nutzen oder über viele Aufrufe aus JavaScript heraus, kann sogar zu weniger effizienten Lösungen führen als nativer JS-Code.

Beim Lesen dieses Buches wird nach und nach klar, warum WebAssembly nach wie vor auf Nischeneinsätze beschränkt bleibt und in der allgemeinen Anwendungsentwicklung keine breite Verbreitung gefunden hat. Es handelt sich tatsächlich um eine anspruchsvolle Technologie. Stellen Sie sich eine Mischung aus Assembler und einer leicht höheren Programmiersprache vor – ergänzt durch eine Lisp-ähnliche Syntax. So ähnlich fühlt sich das Lesen des Buches an. Ich habe lange nicht mehr mit Low-Level-Code gearbeitet, daher fielen mir viele Kapitel schwer. Zwar gab es Momente, in denen ich den Ansatz schätzte und sogar Freude am Code-Verständnis hatte. Doch insgesamt empfand ich das Buch als ziemlich anspruchsvoll. Zum ersten Mal seit Langem verspürte ich den Wunsch, die Sätze des Autors in kürzere Abschnitte zu zerlegen, um den Inhalt besser erfassen zu können.

Für ein grundlegendes Verständnis von WebAssembly und den Einstieg in WAT ist das Buch hervorragend geeignet. Doch es reicht deutlich nicht aus, um die Technologie direkt nach der Lektüre in einem realen Projekt anzuwenden.

Вверх