WebAssemblyアプリ開発で最も使われている言語は3年連続で「Rust」、Webアプリ開発が最多、欲しい機能はスレッド。The State of WebAssembly 2023
メールマガジン「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
あわせて読みたい
さよならVMware。本日(10月30日)Broadcomによる買収完了で、企業としての存在に幕。VMwareブランドは引き続き残る
≪前の記事
アトラシアン、分散アプリケーションの開発体験を快適にする新コラボレーション基盤「Compass」正式リリース