24 Punkte von GN⁺ 2023-11-17 | 1 Kommentare | Auf WhatsApp teilen

Einführung in WebAssembly (Wasm)

  • WebAssembly (Wasm) ist ein universeller Low-Level-Bytecode, der im Web ausgeführt wird.
  • Es dient als Kompilierungsziel für verschiedene Sprachen wie Rust, AssemblyScript (ähnlich wie Typescript), Emscripten (C/C++) und TinyGo (Go).
  • Es wird derzeit von allen wichtigen Browsern unterstützt und verfügt über Laufzeitumgebungen für die Ausführung auf Servern oder zur Interaktion mit dem System über WASI.
  • Wasm bietet ein kompaktes Binärformat sowie vorhersehbare Performance und Portabilität und kann zusammen mit JavaScript und anderen Host-Sprachen ausgeführt werden.

Was ist „Wasm By Example“?

  • „Wasm By Example“ bietet eine prägnante und praktische Einführung in WebAssembly anhand von Code-Snippets und kommentierten Beispielprogrammen für WebAssembly.
  • Es enthält Beispiele, die die grundlegenden Konzepte von WebAssembly erklären, sowie Beispiele, die zeigen, wie sich damit typische Funktionen größerer Anwendungen aufbauen lassen.

Beispiele zu den zentralen Konzepten von WebAssembly (Wasm)

  • Es werden Beispiele bereitgestellt, die die wichtigsten Grundkonzepte von WebAssembly veranschaulichen.
  • Diese Beispiele sind zwar nicht unbedingt der bequemste oder produktivste Weg, Projekte mit WebAssembly zu entwickeln, eignen sich jedoch gut zum Lernen oder für die Entwicklung einfacher bzw. Low-Level-Teile einer Anwendung.
    • Hello World
    • Exports
    • WebAssembly Linear Memory
    • Importing Javascript Functions Into WebAssembly

Beispiele zur Anwendung der Konzepte

  • Die konzeptionellen Beispiele werden erweitert, um zu zeigen, wie diese einfachen Beispiele zum Aufbau allgemeiner Funktionen größerer Anwendungen verwendet werden können.
    • Reading and Writing Graphics
    • Reading and Writing Audio

Beispiele für Ökosystem-Tools und Sprachfunktionen

  • Es werden Beispiele bereitgestellt, die Tools, Bibliotheken und Funktionen der gewählten Programmiersprache hervorheben.
    • Passing High Level Data Types with wasm-bindgen
  • Diese Bestandteile des Ökosystems können beim Aufbau leistungsfähiger Anwendungen erheblich helfen.

WebAssembly-Beispiele außerhalb des Webbrowsers

  • Es werden Beispiele bereitgestellt, die das WebAssembly System Interface (WASI), eigenständige WebAssembly-Runtimes, Tools für Anwendungen mit WASI sowie Anwendungsfälle für Aufgaben wie Cloud Computing und Geräte des Internets der Dinge (IoT) hervorheben.
  • WebAssembly verfügt über wichtige Eigenschaften, die gut zum Browser-Web passen, und genau diese Eigenschaften machen es auch außerhalb des Browsers zu einer beliebten Wahl.
    • WASI Introduction
    • WASI Hello World

Meinung von GN⁺

Der wichtigste Punkt dieses Artikels ist, dass WebAssembly (Wasm) als Kompilierungsziel für verschiedene Programmiersprachen dient und vielseitig einsetzbar ist – nicht nur im Webbrowser, sondern auch auf Servern und in unterschiedlichen Systemumgebungen. „Wasm By Example“ zeigt sehr gut, warum diese Technologie interessant und attraktiv ist, indem es praktische Beispiele bietet, mit denen Einsteiger in die Softwareentwicklung WebAssembly leicht verstehen und direkt anwenden können. Die Portabilität und Performance von WebAssembly sind wichtige Faktoren in der modernen Webentwicklung, und dieser Artikel liefert nützliche Informationen für alle, die diese Technologie erlernen möchten.

1 Kommentare

 
GN⁺ 2023-11-17
Hacker-News-Kommentare
  • Es ist ein interessanter Anwendungsfall, mit WASM Bibliotheken zu erstellen, die in verschiedenen Sprachen geschrieben sind, und sie dann aus anderen Sprachen zu importieren und zu verwenden.
  • Der von allen wichtigen Browsern unterstützte WASM-Befehlssatz ist attraktiv, aber es wird hinterfragt, warum selbst eine einfache hello_world-Demo mehrere Megabyte große Seiten erzeugt.
  • Es gibt die Meinung, dass ein Überblick und eine Erklärung zu Struktur und Nutzung von WASM zusammen mit Beispielen bereitgestellt werden sollten. Außerdem wird erwähnt, dass Cloudflare Workers WASM auf Edge-Servern ausführen können und die Swift-Community ebenfalls WASM-Kompilierung unterstützt.
  • Es wird vorgeschlagen, diese Kategorie hinzuzufügen, um das Verständnis der S-expr-Syntax von WebAssembly zu erleichtern.
  • Jemand hat einen Leitfaden dazu geschrieben, wie man WASM-Debugging in VSCode zum Laufen bringt; dabei wird die neue WASM-DWARF-Debugging-Erweiterung verwendet.
  • Das Buch WASM from the Ground Up, mit dem man WASM lernt, indem man selbst einen Compiler baut, ist in Arbeit und liefert bisher nützliche Informationen.
  • Es gibt die Frage, ob WASM irgendwann JavaScript im Browser ersetzen wird.
  • Auf Hacker News wurde ein Beispiel gepostet, bei dem eine Unity-Demo mit WASM und WebGPU ausgeführt wird.
  • Jemand hat Schwierigkeiten, Informationen über einen WASM-Assembler-Compiler zu finden.
  • Es wird Überraschung darüber geäußert, dass ein einfaches add-Beispiel, das mit WASM in einer Nicht-JavaScript-Sprache geschrieben wurde, eine interaktive Funktion besitzt, die zur Laufzeit Parameter entgegennehmen kann.