W3Cは、プログラミング言語「WebAssembly」の標準化を完了し、そのコア仕様をW3C勧告として公開した。高パフォーマンスWebアプリケーションを実現する助けになる。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
Web技術の標準化を行うWorld Wide Web Consortium(W3C)は2019年12月5日(米国時間)、プログラミング言語「WebAssembly」の標準化を完了し、コア仕様をW3C勧告として公開した。Webブラウザで実行できるコードを作成できる、「HTML」「CSS」「JavaScript」に続く4つ目の強力な言語だと、W3Cは述べている。
WebAssemblyは、ポータブルな低レベル言語であり、Webブラウザを含めモダンプロセッサに向けたもの。モダンプロセッサと組み合わせた場合、コードサイズが小さくなり、効率的に実行できるよう設計されている。
「WebAssemblyは、オープンWebプラットフォーム技術で実現できるアプリケーションの幅を広げる。機械学習やAIが一般化する中、ユーザーの安全性を損なうことなく、高パフォーマンスアプリケーションをWebでも使えるようにすることが重要になっている」と、W3CのWebAssemblyプロジェクトリードを務めるフィリップ・ル・エガレット氏は語る。
WebAssemblyは基本的に、Webで高パフォーマンスアプリケーションを実現する仮想命令セットアーキテクチャだ。もちろん、他の多様な環境でも動作する。
WebAssemblyを実装する場合、Webブラウザやスタンドアロンシステムなど、さまざまな対象がある。実際にWebAssemblyはビデオやオーディオコーデック、グラフィックスや3D、マルチメディアやゲーム、暗号計算、ポータブル言語の実装など、多様なアプリケーションに利用できる。
WebAssemblyは、ロードされたWebページをネイティブのコンパイル済みコードとして実行する仮想マシンと実行環境だといえる。このため、Webパフォーマンスを向上でき、電力消費量を削減できる。つまり、WebAssemblyはネイティブに近いパフォーマンスと最適化されたロード時間を実現できる。最も重要なのは、既存コードベースをターゲットにできることだ。
WebAssemblyは、数十年の蓄積があるコンパイル言語の最適化手法を利用している。WebAssemblyのバイトコードは、コンパクトであることはもちろんだ。だがWeb用途を重視して、ストリーミングを考慮した最適化を施す。なぜなら、Webページではコードの一部がダウンロードされた時点で実行が始まり、並行してコードの他の部分がダウンロードされるからだ。
WebAssemblyは付随するJavaScriptライブラリを使ってネットワークとAPIへアクセスする。セキュリティモデルはJavaScriptと同じだ。
既にWebAssemblyワーキンググループとコミュニティーグループは、WebAssemblyの将来版に盛り込むさまざまな機能の開発に取り組んでいる。次のような機能が検討に上がっている。
この他にも、WebAssemblyの使いやすさと可用性の向上を目的とした長期プロジェクトが多数ある。例えば、ガベージコレクションやデバッグインタフェースなどだ。ファイルアクセスやネットワークアクセスなどの低レベルのシステム機能に向けた一連のモジュールセットであるWebAssembly System Interface(WASI)もある。
Copyright © ITmedia, Inc. All Rights Reserved.