24 ポイント 投稿者 GN⁺ 2023-11-17 | 1件のコメント | WhatsAppで共有

WebAssembly(Wasm)の紹介

  • WebAssembly(Wasm)は、Web 上で実行される汎用的な低レベルバイトコード
  • Rust、AssemblyScript(TypeScript に類似)、Emscripten(C/C++)、TinyGo(Go)など、さまざまな言語のコンパイル対象となる
  • 現在はすべての主要ブラウザで提供されており、サーバー上で実行したり、WASI を使ってシステムとインターフェースするためのランタイムも備えている
  • Wasm は小型のバイナリ形式を提供し、JavaScript や他のホスト言語とともに実行できる、予測可能な性能と移植性を備えている

「Wasm By Example」とは?

  • 「Wasm By Example」は、コードスニペットと注釈付きの WebAssembly サンプルプログラムを用いて、WebAssembly の簡潔で実践的な入門を提供する
  • WebAssembly の基本概念を説明する例と、それらを活用してより大きなアプリケーションの共通機能を構築する方法を示す例が含まれている

WebAssembly(Wasm)の主要概念の例

  • WebAssembly の主要な基本概念を表す例を提供している。
  • これらの例は、WebAssembly でプロジェクトを構築する最も便利または生産的な方法とは限らないが、学習やアプリケーションの単純または低水準な部分の開発には適している。
    • Hello World
    • Exports
    • WebAssembly Linear Memory
    • Importing Javascript Functions Into WebAssembly

概念を適用した例

  • 概念的な例を拡張し、こうした単純な例がどのようにより大きなアプリケーションの一般的な機能の構築に使われるかを示している
    • Reading and Writing Graphics
    • Reading and Writing Audio

エコシステムのツールと言語機能の例

  • 選択したプログラミング言語のツール、ライブラリ、機能を強調する例を提供
    • Passing High Level Data Types with wasm-bindgen
  • こうしたエコシステムの構成要素は、強力なアプリケーションの構築に大いに役立つ可能性がある。

Web ブラウザ外での WebAssembly(Wasm)の例

  • WebAssembly System Interface(WASI)、スタンドアロンの WebAssembly ランタイム、WASI を使用するアプリケーション向けのツール、さらにクラウドコンピューティングや IoT デバイスのような用途を強調する例を提供している
  • WebAssembly はブラウザ向け Web に適した主要機能を備えており、こうした機能によりブラウザ外でも人気のある選択肢となっている
    • WASI Introduction
    • WASI Hello World

GN⁺の見解

この記事で最も重要な点は、WebAssembly(Wasm)がさまざまなプログラミング言語のコンパイル対象であり、Web ブラウザだけでなくサーバーや多様なシステムでも利用できる汎用性を持っていることだ。『Wasm By Example』は、初級ソフトウェアエンジニアが WebAssembly を容易に理解し、実際に応用してみられる実践的な例を提供することで、この技術がなぜ興味深く魅力的なのかをよく示している。WebAssembly の移植性と性能は現代の Web 開発において重要な要素であり、この記事はその技術を学びたい人に有益な情報を提供している。

1件のコメント

 
GN⁺ 2023-11-17
Hacker Newsの意見
  • WASMを使ってさまざまな言語で書かれたライブラリを作成し、それを別の言語から取り込んで利用するのは興味深い事例である。
  • すべての主要ブラウザでサポートされているWASM命令セットは魅力的だが、単純なhello_worldデモですら数MBのページを生成することには疑問がある。
  • WASMの構造と使い方に関する概要や説明は、例とともに提供されるべきだという意見がある。また、Cloudflare Workersがエッジサーバー上でWASMを実行でき、SwiftコミュニティもWASMコンパイルをサポートしている点にも言及している。
  • WebAssemblyのS-expr構文の理解を助けるために、そのカテゴリを追加すると有用ではないかという提案がある。
  • VSCodeでWASMデバッグを動作させる方法についてのガイドを書いた人がおり、これは新しいWASM DWARFデバッグ拡張機能を使用している。
  • 自作コンパイラを作りながらWASMを学ぶ本『WASM from the Ground Up』が進行中で、現時点でも有益な情報を提供しているという。
  • WASMがいつかブラウザでJavaScriptを置き換えるのではないかと気になっている意見がある。
  • UnityデモがWASMとWebGPUを使って動作する例がHacker Newsに投稿されている。
  • WASMアセンブラ/コンパイラに関する情報を探すのに苦労している人がいる。
  • WASMを使って非JavaScript言語で書かれた単純なaddの例が、実行時に引数を受け取れるインタラクティブな機能を備えていることに驚きを示している。