Flash排除に向かうEdgeブラウザの今後鈴木淳也の「Windowsフロントライン」(3/3 ページ)

» 2016年04月16日 06時00分 公開
前のページへ 1|2|3       
※本記事はアフィリエイトプログラムによる収益を得ています

Flash後のWebコンテンツ実行環境

 こうした流れの中でも、しばらくはFlashを活用したサービスがWeb上に残り続けるだろう。

 一方で、Flashの代替となるのが、HTML5+CSS+JavaScriptを使った、いわゆる「Web標準」と呼ばれる技術群だ。プラグインとは異なり、Webブラウザ上にネイティブで実装される仕組みで、Webブラウザ提供各社にとっても管理がしやすく(「サンドボックス化」と呼ばれる)、セキュリティやパフォーマンス面で有利となる。

 ただ、現状のJavaScriptはパフォーマンス面で大きな課題を抱えており、MicrosoftもEdgeのJavaScript実行エンジンである「ChakraCore」のオープンソース化施策を含めてテコ入れを行っているものの、限界が見えつつある。

 そこで現在、主要なWebブラウザを開発するApple、Google、Microsoft、Mozillaらが進めているプロジェクトが「WebAssembly」だ。源流となっているのはMozillaが進めている「asm.js」というプロジェクトで、通常のJavaScriptに対して専用のサブセットを用意することで、高速に実行可能なコードが生成可能になる。

 見かけ上はJavaScriptだが、asm.jsをサポートするブラウザ上で対応コードを動作させた場合、より高速に実行できるという仕組みだ。asm.jsは、CやC++言語で記述されるようなアプリケーションをWebブラウザ上で動作させることが念頭に置かれており、JavaScriptによるガベージコレクション(プログラムが動的に確保したメモリ領域のうち、使われなくなった領域を自動的に収集して解放する機能)の問題が発生することもなく、コード上からより厳密にメモリ管理が可能となる。

 ただし、asm.jsもJavaScriptと同様に「コードが肥大化する」という問題を抱えている。JavaScriptはインタプリタ方式の言語であり、コンパイル前の素の状態のコードがそのままWebブラウザ上へとロードされる。

 そのため、実行用のバイトコードに変換する際に時間的に大きなペナルティが発生する。asm.jsはその性質上、膨大なコードを抱えたアプリケーションがダウンロードされてくる可能性が高く、このペナルティは無視できないものとなる。

 そこで、JavaScriptをより高速に実行可能な形式に変換できる「中間コード」のようなものを構築し、asm.js対応のWebブラウザでこうした工程にかかる時間を大幅に縮小するのがWebAssemblyの役割となる。

 WebAssemblyそのものは、現在C/C++で記述されたコードのコンパイルを主眼に入れているようだが、今後はWebブラウザ上で高度な3D処理などを含んだゲームやサービスも増えてくるとみられ、プラグイン排除後のWeb業界をリードしていくのだろう。

関連キーワード

Flash | ブラウザ | JavaScript | HTML5 | Microsoft | Windows 10


前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

アクセストップ10

最新トピックスPR

過去記事カレンダー