WEBASSEMBLY の 4 つの開発

Wasm は、主流の言語サポート、Kubernetes デプロイメント オプション、コンポーネント モデルの革新的な可能性などを備え、成熟しつつあります。

著者 Matt Butcher の「4 Big Developments in WebAssembly 」から翻訳されました。

WebAssembly (Wasm) のいくつかのアップデートが、バルセロナのWasm I/OとパリのKubeConで発表されました。その中で、4つの重要なパターンが浮かび上がってきました。

プログラミング言語のサポートが急増中

Wasm の創設以来、その成功に対する最大のリスクはプログラミング言語のサポートの欠如でした。最適なクロスプラットフォームのバイトコード形式であっても、コンパイルできる言語がなければ成功しません。

WebAssembly での言語サポートを追跡してきました。具体的には、 RedMonk によると、上位 20 言語のうち何言語が WebAssembly を採用しているかを追跡しています。 Python、JavaScript/TypeScript、Ruby、Rust、C/C++、Zig が Wasm を採用しており、他の言語も導入が進んでいます。

Wasm I/O では、JetBrains の Zalim Bashorov 氏が Kotlin の急速な進歩について報告しました。Kotlin は、それ自体が人気のある言語であることに加えて、Java の世界で最も先進的な要素を表しています。 Kotlin が WebAssembly のコア サポートと WASI 0.2 のサポートに近づくにつれて、開発者の新たな対象者が見つかり、この言語の人気が再び高まると私は予想しています。それだけでなく、より広範な Java コミュニティを WebAssembly に引き寄せることになります。

Dart には WebAssembly コンパイル ターゲットが同梱されるようになりました。 Wasm I/O で、Google の Kevin Moore は、Dart と Flutter の世界におけるエキサイティングな開発について共有しました。ムーア氏は、Dart がブラウザーやモバイル アプリのルーツを越えるという印象を与えていませんが、Wasm がその世界にもたらすパフォーマンスの向上は素晴らしいものです。ムーア氏は、Wasm が JavaScript ベースの実行時間より 50% 以上高速に実行できることを示すベンチマークを紹介しました。

最後に、Rajiv Singh 氏と Achille Roussel 氏が代表を務める Go チームは、Go における WebAssembly のサポートにおける新たな進歩を導入しました。 Go は、WebAssembly サポートの一部を TinyGo に譲りました (プロジェクトのリーダーである Ron Evans も Wasm I/O で発表しました)。しかし、Go コア チームは現在、ブラウザ内外の両方で Wasm をサポートすることに新たな関心を抱いています。

ただし、プログラミング言語でサポートされるもう 1 つの主要な機能はデバッグ可能性です。 Microsoft の Natalia Venditto と Ralph Squillace が、Visual Studio Code での Wasm デバッグをデモンストレーションします。言語に依存しない Wasm デバッグは、現代のソフトウェア開発にとって絶対に必要なものであり、Microsoft はそれを実現するために懸命に取り組んでいます。

Kubernetes は WebAssembly デプロイメントのターゲットです

Wasm I/O と KubeCon はどちらもKubernetes での Wasm の実行について議論しました Fermyon、Microsoft、SUSE、Liquid Reply などの企業は、Spin スタイルの Wasm Kubernetes アプリケーションを実行するためのオープンソース SpinKube プロジェクトを共同でリリースしました。 KubeCon では、国際的な光学企業 Zeiss Group が基調講演ステージで実用的な使用例をデモンストレーションしました。

SUSE は、K3s Kubernetes ランタイムを使用したRancher Desktop でのWebAssembly のサポートを発表しました。 Fermyon は、Kubernetes ノードごとに 5,000 の Wasm アプリケーションを実行できる、商用サ​​ポートされている超高密度Kubernetes Fermyon プラットフォームを発表しました。 Cloud Native Computing Foundation の wasmCloud プロジェクトが1.0 に達し、Kubernetes 統合をサポートしました。 NGINX Unit は、アプリケーション プラットフォームで Spin アプリケーションを実行するためのサポートを発表しました。

WebAssembly の KubeCon 基調講演後、EMA アナリストの Torsten Volk 氏は、Wasm がカンファレンスで最も議論されるトピックになったと指摘しました。

Wasm のどの機能がKubernetes に非常に適しているのでしょうか? Wasm のコールド スタート時間により、Wasm はラムダのようなサーバーレス関数にとって優れたプラットフォームになります。 Kubernetes ユーザーは、このようなワークロードをクラスター内で実行することに長い間関心を持ってきましたが、Kubernetes サーバーレス ソリューションの最初の波は、Wasm の密度、パフォーマンス、起動速度に匹敵することができませんでした。

コンポーネントモデルが現実のものになる

WebAssemblyのコンポーネント モデルには8 つのセッションがあります。 WebAssembly コンポーネント モデルは、今年の Wasm I/O で発表されました。昨年の Wasm I/O では主に理論的な観点からコンポーネント モデルを紹介しましたが、今年は 1 年間のコンポーネント開発の成果が見られました。

私が特に楽しんだのは、Fermyon の Thorsten Hans 氏がコンポーネントを使用した多言語プログラミングについて説明し、Ryan Levick 氏がコンポーネントの詳細を説明し、Luke Wagner 氏がコンポーネント間の非同期呼び出し(WASI の未完成部分) というテーマで 3 部作を締めくくった 3 回の講義シリーズでした。

他にも、コンポーネントを使用して特定のタスクを達成する方法に焦点を当てた講演があり、InfinyOn のSejyo Chang 氏、Design Systems のPierre Dureau 氏、Dilla.io のJean Valverde 氏、Cosmonic のTaylor Thomas氏などが講演者として参加しました。全体として、コンポーネント モデルの準備ができていることは明らかです。

しかし、最も重要なコンポーネント関連の開発は、F5 の Oscar Spencer と JAF Labs の Danny Macoveiによってもたらされました。コンポーネント レジストリを定義する取り組みは 3 年間継続していましたが、Wasm I/O の初日の終わりに、Macovei と Spencer は最初の Wasm コンポーネント レジストリである WA.dev を立ち上げました。 WA.dev を npm や Docker Hub と比較するのは公平です。開発者はコンポーネントを中央レジストリにアップロードできるため、誰もがコンポーネントを簡単に検出して管理できるようになります。

Wasm はまだ先駆的な言語です

おそらく、この最後の展開は逆の流れなのかもしれません。言語サポートは統合されつつあります。 Kubernetes と Wasm は進歩しています。 Wasm コンポーネント モデル仕様はユーティリティ ツールに統合されています。これらは成熟と安定の兆候です。ただし、Wasm は立ち止まっているわけではなく、引き続き探索段階にあります。

これを示す好例として、Wasm I/O の 2 日目に独立系開発者の Jeff Lindsay と Julian Del Signore が紹介したWanix プロジェクトほど優れたものはありません。リンジーは先見の明のある人物であり、彼のプロジェクトでは、ソフトウェア開発者が物事がどのように行われるかについての前提を再考することがよくあります。 Webhook の発明からコンテナへの初期の貢献に至るまで、Lindsay は常に限界を押し広げてきました。ワニックスも例外ではありません。

Del Signore と Lindsay は、GitHub に状態を同期できる CMS のようなシステムを強化する Plan9 からインスピレーションを得たブラウザ内オペレーティング システムをデモンストレーションしました。これは、Wasm の多用途性、パフォーマンス、クロスプラットフォーム機能を組み合わせて、現在名前のないクラスのツールを構築する方法を示す好例です。

同様に、元 VMware Wasm Labs 所長の Daniel Lopez 氏は、さまざまなデモを披露しながら、聴衆を楽しい旅に連れて行きました。ブラウザーでの Windows 95 の実行からAI 推論のデモンストレーションまで、ロペス氏はこの汎用性の高いテクノロジのさまざまな興味深いアプリケーションを指摘します。最もユーモラスな瞬間として、Lopez は Wasm で Docker を実行し、複数の仮想化レイヤーを追加する方法を示しました。しかし、彼のスピーチの要点は、Wasm を固定化すべきではないということでした。

Wasm I/O の最終日、TinyGo (とりわけ) の作成者である Ron Evans は、モノのインターネット (IoT) の組み込み開発のためのオープンソース フレームワークを紹介しました。Mechanoid はWasm を利用しており、Rust、Go、Zig などの複数のプログラミング言語を使用した組み込み開発をサポートしています。モノのインターネットは、WebAssembly の新興分野です。 Wasm はすでにエンターテイメント デバイスでの地位を確立していましたが、エヴァンスはマイクロコントローラーでの使用を模索し、Wasm をマイクロデバイス カテゴリに押し上げました。

結論は

Wasm は多くの点でその成熟度を示しています。ほぼすべての主要言語が WebAssembly をサポートするようになりました。 Kubernetes は、Wasm アプリケーションをホストするための一般的な環境であることが証明されており、WebAssembly コンポーネント モデルは、真の多言語プログラミングを含む WebAssembly の革新的な可能性を解き放っています。

しかし、Java が本来の目的を超えたユースケースを発見したのと同じように、Wasm がモノのインターネットなどの魅力的な分野や、Wanix などの新興分野でチャンスを切り開いていることもわかります。成熟とは停滞を意味するものではないことを思い出させてくれるでしょう。

この記事はYunyunzhongsheng ( https://yylives.cc/ ) で最初に公開されたもので、どなたでもご覧いただけます。

私はオープンソース紅蒙を諦めることにしました 、オープンソース紅蒙の父である王成露氏:オープンソース紅蒙は 中国の基本ソフトウェア分野における唯一の建築革新産業ソフトウェアイベントです - OGG 1.0がリリースされ、ファーウェイがすべてのソースコードを提供します。 Google Readerが「コードクソ山」に殺される Ubuntu 24.04 LTSが正式リリース Fedora Linux 40の正式リリースを前に、 Microsoft開発者ら:Windows 11のパフォーマンスは「ばかばかしいほど悪い」、 馬化騰氏と周宏毅氏が握手し「恨みを晴らす」 有名ゲーム会社が新たな規定を発行:従業員の結婚祝いは10万元を超えてはならない 拼多多は不正競争で有罪判決 賠償金500万元
{{名前}}
{{名前}}

おすすめ

転載: my.oschina.net/u/6919515/blog/11053996