WebAssemblyに注目すべき理由
(harshal.sheth.io)- WebAssembly(WASM)の紹介から、現在どこで使われているのか、そして今後使われる分野についての予測
WASMの特徴
-
ポータブル: 標準化されたバイトコードとして、ブラウザ/サーバーのどこでも実行可能
-
ユニバーサル: C、Rust、Go、Python、Rubyなど、さまざまな言語が Wasm にコンパイル可能
-
ネイティブ級の性能: 平均的にはネイティブより 1.45〜1.55 倍遅いが、JavaScript よりは常に高速
-
高速な起動時間: Docker コンテナより 10〜100x 高速で、ブラウザでも JavaScript のパース/インタープリートより高速
-
安全: Web を念頭に開発されており、メモリサンドボックス化や機能制限などによって安全
WASMが有用な分野
-
JavaScript の速度改善
-
プログラミング言語間の相互互換性を提供
-
多言語プラグインシステム向けランタイム
-
組み込みサンドボックスエンジンとして、さまざまなサードパーティライブラリを安全に取り込んで利用
-
Containerization の未来: Docker より高速で、フットプリントが小さく安全
-
FaaS/Serverless プラットフォーム
-
ブロックチェーン: スマートコントラクト実行のための高性能ランタイムとして活用可能
予測と機会
- 新しいアプリケーションアーキテクチャ
→ マイクロサービスをさらに小さなコンポーネントへ細分化可能
- Brownfield Deployment
→ オーケストレーションレイヤーで Docker と Wasm コンテナを統合
- 標準化された Serverless/Edge Framework
→ 現在は Fastly、Lambda、Fission などが独自にプラットフォームを構築しているが、標準化される可能性もある
→ "Terraform of Serverless"
- Package Management
→ すべての言語はパッケージエコシステムを持っている
→ WASM にはパッケージマネージャーが必要。WAPM はあるものの、ほぼ休眠状態
結論
- WebAssembly はこれほど優れているのに、なぜもっと広く使われていないのか?
→ マーケティングがよくない。Web や Assembly に限定されないため、名前の付け方からしてよくない
→ 主に Web 開発者向けにマーケティングされてきたが、実際のポテンシャルはブラウザを超えている
→ WebAssembly の標準がまだない
→ 言語間の相互互換性はまだ非常に不十分
→ 開発者体験が大きく不足している
-
しかし多くの部分が改善中であり、1〜2年以内に受け入れ可能な状態に達する見込み
-
WebAssembly 関連の活動、エコシステム、コミュニティは爆発的な成長期に入っている
1件のコメント
GeekNewsでWebAssembly/WASMを検索してみるだけでも、非常に多くの記事を見ることができます。
主な記事だけを並べてみます。
WebAssemblyがW3C勧告として正式発表 https://ja.news.hada.io/topic?id=1091
WebAssembly、ブラウザの外へ拡張可能か? Bytecode Allianceが登場 https://ja.news.hada.io/topic?id=901
MS/Google/ArmなどがBytecode Allianceに参加 https://ja.news.hada.io/topic?id=4172
→ WebAssemblyがブラウザを超えて使われることを目標に作られた非営利組織
2020年とそれ以降のJavaScriptの動向 - WebAssembly https://ja.news.hada.io/topic?id=2778
WebAssemblyはどのようにJavaScriptを高速に実行できるのか https://ja.news.hada.io/topic?id=5167
Amazon Prime Video、WebAssemblyを使用して8000種類のデバイスタイプをサポート https://ja.news.hada.io/topic?id=5858
WebAssemblyがネットワークプロキシに新たな拡張性をもたらす https://ja.news.hada.io/topic?id=1722
Wasmer 1.0 リリース https://ja.news.hada.io/topic?id=3540
WebVM、ブラウザで実行するサーバーレスx86仮想マシン https://ja.news.hada.io/topic?id=5893