それ、Flash?DHTML?どっちでやる?::草稿

Web上で使われる多くの技術は表現手法の一つでしかなく、じゃあなんでそれ使ってるの?って言われると色々理由があったり矛盾があったりするのは世の常だと思う。
その理由が正当なものならいいのだけど結構矛盾ってあると思う
例えば:

  • サーバサイドでやったほうがいい処理をわざわざクライアントサイドでやらせようとしてブラウザーの差異吸収にもだえたり。
  • ユーザ層を考えずにリッチコンテンツごりごりなトップページにしてしまって離客率があがっちゃったり。
  • そもそもWebで展開する必要のないものを展開してしまって費用ばっかり垂れ流したり。(これに関してはこっち側の生活にも関わるので以下略

と、まあ矛盾に関してはあげ始めたらキリが無いっていうか今回の目的じゃなかったのでこの辺にして。(このネタ面白そうだなぁ。

FlashとDHTMLの比較

表現手法の失敗で結構陥りやすいFlashとDHTMLの選択間違えを起こさないために両者のメリットとデメリットを列挙してみる。

Flashのメリット
  • 表現力が豊か
  • ビットマップ画像、ベクター画像、flvとほとんどのフォーマットに対応(一部HTMLもつかえるよ!
  • FPSをしっかり再現できるので駒ズレやらの矛盾がおきづらい(処理速度が遅いと駒落ちとかあるけど、それは別の問題
  • flash playerのバージョンさえ把握していればクライアントごとに差異を吸収したりしなくていい(Write once, run anywhere的な?
  • xdomainな通信が可能
DHTMLのメリット
  • ルールがしっかりしていれば更新が楽
    • オーサリングツールとかいらないしflaファイルみたいなプロジェクトファイルもなくてOK。(まぁPSDは欲しいけど
  • 各種ライブラリで実装がかなり楽になった
  • 機械にやさしい情報構造にしやすい(DHTMLだから機械にやさしい、となるわけではない
Flashのデメリット
  • 必ずしもユーザーのブラウザーすべてにFlashプラグインがはいっているとは限らない(でも普及率かなり高い。
  • 実は結構セキュリティ的なアレなバグがプラグインに見つかることがある。(たいていの場合は広く悪用されることはないみたいだけど?
  • 機械にやさしくするのがむずかしい
    • 技術次第では音声リーダー対応とかは出来るけど工数が。。。
  • 場合によっては専用にFlashオーサーが必要になるので一般的に工数or費用UP
DHTML
  • 表現力が乏しい
    • 要素の回転が出来ない
    • px単位でしか制御できない
    • ベクター画像の生成ができないから折れ線グラフとか厳しい(canvas属性はあるけどブラウザの対応が微妙。そもそも未勧告だった気が
    • 激しいレンダリングの変化には不向き(重くなりやすい
    • FPSの概念を忠実に再現できないので駒ズレは日常茶飯事
  • xdomainな通信が不自由(やりようによっては出来るけども。。。
  • クライアントの差異吸収が猛烈にめんどくさい

まとめ

これから書く。