AjaxとFlash

 DHTMLの登場と同時期に急速に普及したのがMacromedia Flash (現在ではAdobe Systemsに吸収合併) です。少ないデータ量でアニメーションを行うことができ、ちょっとしたインタラクティブなことが手軽にできたため、急速に普及し現在は当たり前のように利用されています。Flashも進化しアニメーションだけでなく、より複雑な処理が可能になりました。Flashを使えば、ブラウザやOSの違いにあまり悩まされる事なく、高機能なページ/サイトを構築することができます。
 ブラウザとOS間の違いに悩まされるDHTMLと違い、プログラマでなくてもMacromedia Flashアプリケーションを購入すれば、手軽に高機能なページが構築できます。プログラム技術が必須なDHTMLと違いプログラムが分からなくても、ある程度のことができるFlashでは勝負になりません。
 では、DHTMLとFlashのメリットとデメリットを比較してみます。

●DHTMLのメリット
アプリケーションを買う必要がない(0円)
プラグインが不要
ブラウザに表示されている部分を全て利用できる
検索エンジンに語句が拾われやすい

●DHTMLのデメリット
ブラウザとOS間の動作の違いが大きい(検証に手間取る)
プログラム技術が必要


●Flashのメリット
自由度が高い
プログラムを知らなくてもダイナミックなページが構築できる
ブラウザとOS間の差異が少ない

●Flashのデメリット
プラグインが必要(プラグインが動作しないと見ることもできない)
アプリケーションが必要(Adobe Flash (旧Macromedia)本体は有料。特定機能に特化した無料のフリーウェアもある)
検索エンジンに語句が拾われにくい


 他にもあると思いますが、現時点(2005年)では、Webデザイナーが複雑なページを構築するのであればFlashを選択するのが妥当なところです。ところが、このFlashを扱うのはWebデザイナー、デザイナーであってプログラマではありません。システムエンジニア/プログラマとWebデザイナーの間には予想以上に深い溝があります。実際のところプログラマにとってはFlashは分かりやすいものではありません。既存のプログラマにとってはC言語系 (アルゴル系言語)がベースとなっているJavaまたはJavaScriptの方がとっつきやすく分かりやすいのです(*2006年7月現在、ActionScript 3搭載などによりプログラマよりになりつつある)。
 このため、プログラマはFlashよりもJava (サーブレット, アプレット) を使ってRIAを構築することになります。JavaもブラウザとOS間の差異が少ないため、DHTMLと比べても安全かつ安心して利用することができます。しかし、Flash、Javaとも難点があります。それはブラウザ内のHTMLページ内の一部として利用されるため、そこだけ全く異なる世界が存在していることになります。単純に言えば違和感があるということになります。

 それならば違和感の少ないDHTMLでページを作ればよいのですが、DHTMLのデメリット/トラブルの方が多くサーバーとの通信もフォームを介して行うため(同期通信)、データがサーバーから戻ってくるまで何もできない状態になります(このサーバーからの応答が戻ってくる時間に何度も送信ボタンを押してしまうユーザーが多くいます)。そのくらいならFlashかJavaを使おう、というのが2004年までの状態でした。

 しかし、Google Mapsの登場で状況が大きく変わりました。使い物にならないと思われていた(実際には使われなかった)DHTML + HTTP通信を実用レベルにまで引き上げたのです。また、登場から数ヶ月してGoogle MapsのAPIを使えば、自分のページに自由にGoogle Mapsの地図を組み込むことができるようになりました。今までは住所を示す場合には、地図サイトを利用する(別ページに移動する)必要がありましたが、そのような制約がなくなりました。また、機能が不足している部分は自分で追加することもできます。この部分ではFlashやJavaでは難しいところです。

 今までアプリケーションはパッケージやダウンロードして購入するものでしたが、Google MapsのようなAjaxを利用したアプリケーションではAPIが公開され自分の好きなようにカスタマイズすることが可能になります。この機能とこの機能が欲しい、不足分はどこかの誰かが用意したものを読み込んで利用するか、自分で追加すれば良いのです。今まではFlash、Javaのサービスはその中で完結していて外部から自由に利用することができませんでした。Ajaxでは、そのような束縛からは、かなり解放されることになります。

 しかし、Ajaxは万能ではありませんから、既存のアプリケーションがなくなることもありませんし、FlashやJavaで構築するサイトが消滅するわけではありません。Flash、Javaに加えてAjaxという選択肢が加わった、という見方が正しいのだと思います。(*1)

 それでは次にAjaxを扱うために、どのような知識が必要なのかを見てみましょう。

[4:Ajaxに必要な知識と技術へ]
[目次へ]

*1 現在、Ajax + Flashの組み合わせであるAdobe Flexが公開されています。これにより相互のメリットを教授できるようになっています。
(2005.12.14作成、2005.12.15修正、2006.1.17追加修正、2006.7.26追加)