2008年のJavaScript動向
技術的観点から見るJavaScript
2008年はFirefox 3やGoogle Chromeなど注目の新Webブラウザが登場しました。これらのブラウザに共通した特徴が「JavaScriptの高速化」です。もともとAjaxはWebアプリケーションのユーザビリティを改善するために登場したものですが、JavaScriptのコード量が膨らむにつれ、アプリケーションの動作自体が重くなってしまうという問題がありました。Ajaxで凝ったユーザーインターフェースを提供したとしても動作が遅くなってしまうのであれば本末転倒です。
とりわけFirefox 3ではJavaScriptの動作速度が劇的に改善されており、Gmailなどでは実行速度がはっきりと体感できるほど向上していました。今後もさまざまなWebアプリケーションでJavaScriptが活用されていくことを考えると、JavaScriptのさらなる高速化も必要になるかもしれません。
また、JavaScriptによる非同期通信の新たな通信手段としてCometが取り上げられることもありました。従来のAjaxではサーバー側での状態変化をリアルタイムに検出することはできず、そのような場合はクライアントから定期的にポーリングを行う必要がありました。これは無駄な通信が大量に発生するためネットワークやサーバーの資源を無駄遣いしてしまうという問題があります。
Cometではクライアントからリクエストがあるとサーバー側ですぐにレスポンスをせず、いったん保留状態にします。その後、サーバー側で状態変化が発生したタイミングでレスポンスを行うことで、レスポンスのタイミングをサーバー側で制御することができるというものです。
Cometは通常のAjaxリクエストと異なり接続が長時間維持されるため、クライアント数が増えるとサーバー側の最大接続数をこえてしまう可能性があります。逆に通常のAjaxリクエストは1つのリクエストは短時間で処理されるため、接続数よりもいかに短時間でレスポンスを返せるかどうかが重要になってきます。アプリケーションの性質にあわせて最適な通信方法を選択するようにしましょう。
WebとデスクトップをつなぐJavaScript
2008年のJavaScript動向として外せないのが、Gears(Google Gears)やAdobe AIRの登場でしょう。
Gears(http://gears.google.com/)はオフラインでも利用可能なWebアプリケーションを開発するためもので、2007年5月にバージョン0.1がリリースされましたが、2008年に入りWindows Mobile対応版のリリースや、名称の変更(Google GearsからGearsに)などの動きがありました。GearsはWebブラウザのエクステンションとして動作します。
具体的にはWebブラウザにGearsをインストールすることで、JavaScriptでGearsのAPIが利用できるようになります。これらのAPIを利用することでクライアントサイドにデータを保存し、オンラインになったタイミングでサーバーと同期を取るようなアプリケーションを開発することができるのです。Gearsの登場はこれまでネットワークに接続していないと使えなかったWebアプリケーションに新たな可能性を提示したと言えるでしょう。
Adobe AIR(http://www.adobe.com/jp/products/air/)はAdobeが提供するリッチクライアントアプリケーションのためのプラットフォームで、2008年2月に正式にリリースされました。AIRではFlexもしくはHTMLでデスクトップアプリケーションを開発することができます。HTMLで開発する場合はJavaScriptを用いてAjaxを利用したりすることができます。Webアプリケーションがそのままデスクトップアプリケーションとして動作するようなイメージです。開発者にとってはこれまでのWebアプリケーション開発のノウハウを生かしてデスクトップアプリケーションを開発できるというメリットがあります。
GearsとAIRの例からもわかるとおり、JavaScriptがWebとデスクトップをつなぐ架け橋として、より広い領域で活用されるようになっていくのではないでしょうか。