消えたWebページ上でプログラムを実行するための技術
インターネットが普及して以降、Webは第2のデスクトップと言っても過言ではない状態になった。OSの他のアプリケーションを使う時間よりも、Webブラウザを使う時間の方が長いケースも多々あった。そうなるとWebページ上で動くアプリケーションの方が便利だと考えるのは自然な流れだ。またWebページを見ていて、サーバーと連動した操作をする際に、他のアプリケーションを立ち上げたくないというのも素直な思考になる。
そのため、Webブラウザ上でアプリケーションを動作させる仕組みは、昔から存在していた。登場当時、代表的な存在だったのは
Javaアプレットだ。最初の実装は1995年、Netscape Navigator に搭載されたのは1996年である。この年は、
Flash の登場時期と同じである。のちに
JavaScript となる LiveScript の開発は1995年。Internet Explorer 3.0 に
VBScriptセキュリティ上の問題を引き起こした。Webページを開くだけで実行できて、ローカルファイルにアクセスできるなら、悪意のある攻撃をやり放題になる。そうした問題を防ぐ仕組みが発達していったが、同時に脆弱性によって何度もその対策が突破された。メンテナンスにはお金がかかり、維持するのは企業の負担になった。
Java を保有するオラクルは、2017年9月22日にリリースされた Java 9 で Javaアプレットを非推奨にして、2016年1月27日に Java 11 では廃止することを発表した。 Adobe Flash では、2020年末にFlash Playerの開発と配布を終了すると発表している。VBScript は、2013年にリリースされた Internet Explorer 11 の時点で、セキュリティや互換性の設定によって実行しなくなった。Microsoft Edge ではサポート対象外になっている。
途中から参戦してきた Silverlight を含めて、Webブラウザ上でアプリケーションを構築する仕組みは、JavaScript 以外淘汰された。
プログラミング言語や開発環境には流行り廃りがあるが、Webブラウザ上の実行環境では、敗北は死を意味している。Webページを見るだけで実行されるプログラムは、セキュリティ的なリスクがあれば取り除かれる。メンテナンスされないものは排除される。
Webブラウザ上でプログラムを実行する方法は、最終的に JavaScript だけになってしまうのか? 実はそれ以外の動きも存在している。
wasm とも称される
WebAssembly という仕組みだ。Webブラウザ上でバイナリフォーマットの形で実行可能なものだ。この仕組みを利用すれば、JavaScript 以外のプログラミング言語でプログラムを書き、Webブラウザ上でプログラムを実行することができる。
ネットを見ていると、この WebAssembly を利用して、様々なプログラミング言語でWebアプリの開発をおこなう試みを見ることができる。現在ホットな領域だ。
パイが大きければ、そこを取ろうとするプレイヤーが必ず現れる。最終的に10年後、20年後にどのようになるのか、まだまだ予断を許さない。
<文/柳井政和>