WebAssemblyアプリ開発で最も使われている言語は3年連続で「Rust」、Webアプリ開発が最多、欲しい機能はスレッド。The State of WebAssembly 2023
今回は「WebAssemblyアプリ開発で最も使われている言語は3年連続で「Rust」、Webアプリ開発が最多、欲しい機能はスレッド。The State of WebAssembly 2023」についてご紹介します。
関連ワード (一番人気、以上、実行等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
メールマガジン「WebAssembly Weekly」を発行しているScott Logicは、WebAssemblyの利用状況などに関する調査報告として「The State of WebAssembly 2023」を公開しました。
回答者はWebAssembly関連の技術者303人。
最も使われているのはRust、2位のJavaScriptの使われ方とは?
WebAssemblyのアプリケーションのコードを記述するプログラミング言語として何を使っているかを尋ねた質問への回答では、3年連続でRustがトップ。しかも利用率は上昇中です。
2位に入ったのがJavaScriptです。WebAssemblyバイナリはソースコードをコンパイルしてバイナリに変換することで生成されますが、JavaScriptはWebAssemblyへのコンパイルに対応していません。
WebAssemblyアプリケーションのコードとしてJavaScriptを使う方法は、WebAssemblyで構築されたJavaScriptエンジンをWebAssemblyランタイム上で実行し、そこでJavaScriptコードを走らせることです。
この方法ではWebAssemblyの高速な実行速度をアプリケーションの利点としては得られませんが、高度な分離機能やセキュリティ、そしてWebAssemblyランタイムがあればどこでもJavaScriptを実行できるという柔軟性などがメリットとして得られます。
代表的なのはCDNエッジでWebAssemblyによるJavaScriptランタイムを提供することでJavaScript対応を実現したFastlyの例などでしょう。
参考:Fastly、JavaScriptエンジンをWebAssemblyで実装。CDNエッジのサーバレス環境「Compute@Edge」でJavaScriptサポート発表
こうした使われ方でJavaScriptが2位に入ること自体、注目すべきトレンドでしょう。
下位に目を移すと、SwiftとZigが急上昇している点も注目です。
今後、WebAssemblyアプリケーションの開発でどのプログラミング言語を使ってみたいですか? という問いに関しても、1位はRust、2位がJavaScriptでした。3位にZigが入っているのが興味深いところです。
Webアプリ開発が最多、2位は以外にもプラグイン開発
現在、どのようなアプリケーションにWebAssemblyを利用していますか? という問いの回答には、Webアプリケーションが約70%と圧倒的に多くなっています。
そして2位に入ったのがプラグイン環境としての利用でした。Istioなどいくつかのソフトウェアでは機能拡張のためのプラグインとしてWebAssemblyが利用可能になっています。この用途でのWebAssemblyの利用は思った以上に広がっているようです。
参考:サービスメッシュのIstio、機能拡張にWebAssemblyを採用。EnvoyにV8エンジンのWebAssemblyランタイムを統合
昨年まではWebAssemblyをバックエンドで利用する場合の回答は「Serverless」だけが選択肢として用意されていましたが、今年は「Backend」と「Serverless」に分割されました。これにより、昨年は2位に位置していたSeverlessは、今年はBackendが3位、Serverlessは6位となりました。
これからWebAssemblyに欲しい機能は?
WebAssemblyとWASI(WebAssembly System Interface)の新機能として欲しいものはなにか、という問いには、Threads(スレッド)が1位、コンポーネントモデルが2位、ガベージコレクソヨンが3位、例外ハンドリングが4位という結果になっています。
その他にも多くの調査結果が示されていますので、詳しくはぜひ元記事をご参照ください。
過去のThe State of WebAssembly
- WebAssemblyアプリ開発ではRustが一番人気、用途ではサーバレスが急上昇、ランタイムはWasmtime。The State of WebAssembly 2022
- WebAssemblyアプリ開発で最も使われている言語はRust、注目の機能はスレッドなど。The State of WebAssembly 2021