岩本隆史の日記帳(アーカイブ)

はてなダイアリーのサービス終了をうけて移行したものです。更新はしません。

サーバサイドでSmalltalkのMVCパターンを使うのは無理があるかも

WebアプリでもSmalltalkのMVCパターンが使えるかも」という記事に書いたアイディアについて、ここしばらく考えていました。結果、より良いと思われるアイディアが見つかったため、捨てることにします。

リソースをHTMLでのみ表現するならば、ブラウザに表示されているビューと同じ意味を持つ仮想ビューをサーバサイドに作ることによって、美しいMVCが使えると今でも思っています。しかし、リソースをAtomやらRSSやらJSONやらで表現する場合を考えると、うまくいきそうもありません。

HTMLではデータとUIが混在する

HTMLには、それ自体にUI(フォーム)が含まれています。ひるがえって、AtomRSSJSONはデータそのものです。たとえばAtomPubクライアントに表示されているビューと同じ意味を持つ仮想ビューをサーバサイドで作ったところで、クライアントに返すべきはデータだけなのですから意味がないわけです。HTMLであれば、サーバサイドでMVCした結果のデータをUIを含めて返すことができます。

ここで、ある疑問が浮かびます。データとUIが混在しているHTMLは、Webアプリで扱う表現形式としてふさわしくないのではないでしょうか。控えめにいっても、美しいプログラムが原理的に書きづらい表現形式だといえるのではないか。

Vはクライアントにまかせたい

このような疑問は、あらためて表明するまでもないことなのかもしれません。XFormsやHTML 5をみれば、データとUIの分離が以前から望まれていて、Web標準がその方向へ進んでいるのは明らかだからです。私の気づくのが遅かったというだけでしょう。

XFormsやHTML 5が実際に使えるのがいつになるのかは分かりませんが、来るべき未来に備えて、ビューの処理はクライアントにまかせ、サーバサイドはデータ処理に専心するという方法を採ろうと考えています。ここでもAtomPubが示唆的です。