昨年6月、本コラムでは流行り始めたAjaxを取り上げ、その有用性と課題を述べた。それから約1年、Ajaxは急速に普及が進んだ。今回はAjaxのこの1年間の進化とこれからの展望を論じてみたい。
多くの課題は解決へ向かう
まず、以前のコラムで指摘した課題の状況を整理してみよう。 コラムでは以下の3つの課題を指摘していた。
- 解説書や開発環境・フレームワークなどの整備不足
- JavaScriptの互換性に関する課題
- セキュリティに関する課題
最初の課題に関しては急速に整備が進んでいる。解説書こそAmazonで検索しても数件ひっかかる程度であるが、ネット上の解説はかなり多い。開発環境やフレームワークも次々に登場している。 IBMやZimbraなどはオープンソースコミュニティでのAjax採用を推進する団体”Open Ajax”を設立し、AJAX Toolkit Frameworkのようなツールキットを公開している。また、Adobeなどの企業もフレームワークや開発環境を無償もしくはオープンソースで公開し、利用者を囲い込もうと躍起になっている。
JavaScriptの互換性も解消の方向に向かっているといえよう。 prototype.jsやscript.aculo.usのようなライブラリを利用すれば、Internet Explorer, Firefox, Opera等のブラウザ間のJavaScriptの非互換性を意識せずにAjaxアプリケーションが開発できる。 従来型のウェブサイトでは特定のブラウザに依存したコンテンツであっても、デザインが崩れるのを我慢すればたいてい中身を読むことはできた(※)。しかし、Ajaxを使ったサイトではJavaScriptにブラウザ依存部分があると、そもそもコンテンツが見られないということも多い。開発者および企業はぜひ上記のようなライブラリを使った開発をしていただきたい。
(※)時には読むに耐えないほどデザインが崩れることもある。私たちはTouchUpWebという特定のブラウザに依存したコンテンツを修正するシステムを開発中だが、将来はこのようなシステムが不要になってくれることを願う。
セキュリティに関してはやや誤認識があったので訂正したい。IEやFirefox等ではバックグラウンドでの通信先は同一のサーバに限られるため、悪意のあるサーバに情報を転送することは難しいようである。
使い勝手は向上した。次なるアプリケーションは?
Ajax人気の源がGoogle Mapsであることは間違いない。従来の地図サイトよりも格段にスムーズな使い勝手を実現した。他のAjaxを使用したサイトでも、「あ、このサイト使いやすくなったな」と実感したことも多いだろう。筆者も以前のコラムでは使い勝手の向上を期待した。 それではAjaxを使う目的は、ウェブアプリケーションの使い勝手をオフィスソフトやメーラなどの通常のアプリケーションと同等にすることだろうか?もっとAjaxならではのことはできないだろうか?
個人的には場所・時間を問わないコラボレーション(ここではユビキタスコラボレーションと呼ぶことにする)に期待し始めた。 先月、Googleの開発した表計算ソフトGoogle Spreadsheetsが話題になった。筆者も早速試用して見たが、画面や使い方はExcelのような表計算ソフトと同様なものの、レスポンスが遅いためまだ実用は難しそうである。そんな中、今後が期待されると感じた機能は、複数のユーザが同時に編集できる機能である。
オフィス文書を複数人で編集することは多いが、現在主流のオフィスソフトは同一のファイルを同時に複数人で編集することはできない。たとえば、大きな文書を多人数で作成する時は細かく複数のファイルに分け、最後に結合するという無駄な作業を行っているのではないか?Google Spreadsheetではこのような作業は必要ない。ネットワーク越しに複数人で文書を作り上げていくことが可能になるのだ。また、ブラウザ上で動作するため近い将来家電や携帯からも使えるようになるだろう(そこまでして仕事をするかは別問題だが)。
私たちが使っているアプリケーションのほとんどは、ひとつのファイルはひとりしか編集できない仕様になっている。しかし、これは考えてみればおかしな話である。紙と鉛筆で文書を作成するならば一枚ずつ分業できるのに、コンピュータ上ではできなかったのである。さらにネットワークが利用できるのならばユビキタスコラボレーションができて然るべき。これまでも技術的には可能だったはずだが、おそらくコストと利便性を天秤にかけた結果、採用されてこなかった。
常時接続環境が普及した今こそ、ユビキタスコラボレーションが生かされる時期であり、Ajaxはそれを容易に実現する技術なのである。
本文中のリンク・関連リンク:
- AJAX Toolkit Framework
- Spry framework for Ajax(Adobe)
- オープンソースのJavaScriptライブラリ 〜 prototype.js, script.aculo.us
- TouchUpWeb Project 〜 特定のブラウザに依存したコンテンツを修正する仕組みを提供するシステム
- Google Maps
- Google SpreadsheetsとGoogle SpreadsheetsのITmediaによるレビュー記事