調査で分かった「一度書けばどこでも実行できる」WebAssemblyの魅力:最もよく使われる言語は3年連続でRust
ソフトウェアコンサルティング会社のScott Logicは、「WebAssembly」の使用状況に関する調査レポート「The State of WebAssembly 2023」を発表した。この調査は2021年から毎年実施されており、今回で3回目となる。
ソフトウェアコンサルティング会社のScott Logicは、2023年10月28日(米国時間)、「WebAssembly」の使用状況に関する調査レポート「The State of WebAssembly 2023」を発表した。この調査は2021年から毎年実施されており、今回で3回目となる。本記事では調査結果の概要を紹介する。
調査ではまず、WebAssemblyを利用するアプリケーションを開発するときにどの言語を使用するか、または使用しようとしたことがあるかを聞いた。
最もよく使われる言語は、3年連続でRustだった。JavaScriptは2番目に使われている。「WebAssemblyにコンパイルできないことを考えると、これは注目に値する」(Scott Logic)
上記グラフは、過去3回の調査結果に基づき、各言語の使用率の長期的な傾向を示している(使用率が10%未満のものを除く)。RustとJavaScriptの使用率が増加しているが、注目に値するポイントはSwiftとZigの採用率が大幅に増加していることだ。
今回の調査では「WebAssemblyとあなたの仕事上の関係は?」という質問が新しくアンケートに加わった。これにより、WebAssemblyのツールやプラットフォームを積極的に開発している人と、単にエンドユーザーである人との回答を分けることができる。
ツール開発者はRustを強く好み、またWAT(WebAssembly Text Format)を使って直接WebAssemblyをプログラミングしている。また、GoとPythonに対する強い嗜好も見られる。
将来どの言語を使いたいかについて聞いた質問では、今回もRustがトップで、JavasScriptが2位だった。使用率がやや低いZigは3位となっている。
一方のZig、Kotlin、C#では、使用希望が現在の使用状況を上回っているのに対し、C++、JavaScript、WATをあまり使いたくないと考えていることが分かる。
どんなランタイムを使用しているかを尋ねた質問では、Bytecode Allianceの「wasmtime」が最も広く使われており、「wasmer」が2位という結果になった。「Wazero」はGoで作られたランタイムで、今回新しく加わったものだ。
WebAssemblyを現在何に使っているかを聞いた質問では、Webアプリケーション開発が依然としてトップだが、その差は少し縮まっていることが分かった。以下のグラフは、前年比の傾向を示している。
2021年、2022年の調査では、wasmのバックエンド用途の選択肢は「サーバレス」のみだった。2023年の調査では、この選択肢は2つに分かれている。2つの選択肢を組み合わせると、バックエンドの利用はわずかに増加する。最も顕著な変化は、プラグイン環境としてのWebAssemblyの使用だ。
組織におけるWebAssemblyの採用状況を尋ねたところ、回答者の41%が本番環境で使用しており、28%が試験的に、または2024年中に使用する予定であることが分かった。
「WebAssemblyをさらに普及させるために何が必要か」という質問では、最も必要なものとして、「WASI(WebAssembly System Interface)を通じた、より良い非ブラウザ統合」が挙げられた。
WebAssemblyに最も望む機能を聞いた質問では、順にスレッド、コンポーネントモデル、ガベージコレクション、例外処理が上位に挙がった。そのうち、スレッド、ガベージコレクション、例外処理は3つとも使用する準備が整っており、最終化に近づいている。一方で、コンポーネントモデルは、初期段階の提案(フェーズ1)にとどまっている。
WASIの機能について最も望まれているものを聞いた質問では、上位の4つの提案は全てI/O関連のものだった。WebAssemblyモジュールが外部と通信するための標準的な方法を作ることが求められている。
最後に、WebAssemblyで最もワクワクすることは何かを質問した。同社がChatGPTを使って回答を要約した結果は以下の通り。
- 異なるプラットフォーム上でコードを実行する能力
- 異なる言語とウェブ間の相互運用性
- ネイティブのパフォーマンスと効率性
- 既存のコードやライブラリへのアクセス
- 新しい言語やツールの可能性
- セキュリティとサンドボックス機能
- コンテナを置き換え、ブラウザ上で複雑なスタックを実行する能力
- ユニバーサルバイナリフォーマットの可能性
- 一度書けばどこでも実行できる能力
- パフォーマンスとスピードの向上
- コンポーネントモデルとコードの再利用能力
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 利用者が増え続ける「WebAssembly」、ブラウザ実行できる4つ目の言語の魅力とは
ソフトウェアコンサルティング会社のScott Logicは、「WebAssembly」の使用状況に関する2回目の年次調査を実施、結果を発表した。WebAssemblyは「HTML」「CSS」「JavaScript」に続き、Webブラウザで実行可能なコードを作成できる4つ目の言語と位置付けられている。 - Bytecode Alliance、「WebAssembly」の最新ロードマップを発表 リリース予定の新機能も紹介
Bytecode Allianceは、開発者向けに「WebAssembly」(Wasm)の最新ロードマップを発表した。現在進められている開発と、近くリリース予定の新機能に焦点を当てている。 - WebAssemblyランタイム「Wasmer 4.0」公開 コマンド強化でパッケージ管理やアプリケーション公開が容易に
Wasmerは、WebAssemblyを実行するためのオープンソースランタイムの最新版「Wasmer 4.0」をリリースした。