WebAssembly-概要

WebAssemblyは、Web用の新しいコンピュータープログラミング言語です。WebAssemblyコードは低レベルのバイナリ形式であり、Webと互換性があり、最新のWebブラウザーで簡単に実行できます。生成されるファイルサイズは小さく、ロードと実行が高速です。C、C ++、Rustなどの言語をバイナリ形式にコンパイルできるようになり、JavaScriptと同じようにWeb上で実行できるようになりました。

WebAssemblyの定義

WebAssemblyの公式ウェブサイトによると、 https://webassembly.org/、WebAssembly(Wasmと略記)はスタックベースの仮想マシン用のバイナリ命令フォーマットとして定義されています。Wasmは、C / C ++ / Rustなどの高級言語をコンパイルするためのポータブルターゲットとして設計されており、クライアントおよびサーバーアプリケーションのWebへのデプロイを可能にします。

Web Assemblyは開発者が作成する必要のあるものではありませんが、コードはC、C ++、Rustなどの言語で作成されており、WebAssembly(wasm)にコンパイルできます。同じコードをWebブラウザ内で実行できます。

Web Assemblyは新しい言語であり、コードは低レベルのアセンブリ言語ですが、テキスト形式の機能により、コードは読み取り可能であり、必要に応じてデバッグが可能です。

WebAssemblyの目標

WebAssemblyのオープンスタンダードは、すべての主要なブラウザの代表者とW3Cワーキンググループを含むW3Cコミュニティグループで開発されています。

WebAssemblyの主な目標は以下のとおりです-

  • FasterEfficient and Portable − WebAssemblyコードは、利用可能なハードウェアを利用して、さまざまなプラットフォームでより高速に実行することを目的としています。

  • Easy to read and debug −低レベルのアセンブリ言語であるWebAssemblyは、テキスト形式をサポートしているため、問題がないかコードをデバッグしたり、必要に応じてコードを書き直したりできます。

  • Security − WebAssemblyは、アクセス許可と同一生成元ポリシーを処理するため、Webブラウザーで安全に実行できます。

WebAssemblyの利点

WebAssemblyの利点は次のとおりです-

  • Run is Modern Browsers − WebAssemblyは、利用可能な最新のWebブラウザーで問題なく実行できます。

  • Multiple Language support− C、C ++、Rust、Goなどの言語で、コードをWebAssemblyにコンパイルし、Webブラウザーで同じように実行できるようになりました。そのため、ブラウザで実行できなかった言語でも実行できるようになります。

  • Faster, Efficient and Portable −コードのサイズが小さいため、ロードと実行が高速になります。

  • Easy to understand−開発者は、WebAssemblyでコードを記述する必要がないため、WebAssemblyコーディングを理解するのにそれほどストレスをかける必要はありません。代わりに、WebAssemblyでコードをコンパイルし、Web上で同じように実行します。

  • Easy to Debug −最終的なコードは低レベルのアセンブリ言語ですが、テキスト形式でも入手できるため、読みやすく、デバッグも簡単です。

WebAssemblyのデメリット

以下はWebAssemblyの欠点です-

  • WebAssemblyはまだ作業中であり、その将来を決定するには時期尚早です。

  • WebAssemblyは、ドキュメントオブジェクトモデル(DOM)と対話するためにJavaScriptに依存しています。