クライアントサイドとサーバーサイドのMVCの雑感

Perlを書いていたときPerlのソースにHTMLコードが直接うまっていて自分好みのデザインにするにはPerlコードをハックするしかなかった。それに嫌気がさしてPHPを1から覚えてハックではなく1から掲示板などを制作しはじめた懐かしき日々。自分が1から書いているのでソースを読むんで脳内パース(ソース→ソースが何をやってるかの解析)しなくてもいい。ただPHPの関数の中にHTMLを埋め込むから無駄に長くなってしまう。echo や printの繰り返しはキライ。

そういうわけでPHPのコードの中に埋め込みたくないが為にデザインとロジックの分離を考えて(当時はMVCとかいう言葉すらも知らなかった)自分でPHPなテンプレートエンジンを組んだこともあった。PHPの世界にも色々なテンプレート(ex Smarty)とかがあるわけで今度はテンプレートエンジンの操作方法を覚えるのが必要が出てきた。サーバーサイドではMVCとかのフレームワークは1定の論理が確立してきた。ただAJAXが登場して今度はクライアントサイドの理論の確立が急がされているような気がする。

今のWEB系プログラマとかはサーバーサイドとクライアントサイドの技術を2つ覚える必要がある(場合がある)。分業すればいいという話もあるけど。ただ確実に言える事は全く異なる技術や論理を用いると覚える量やリソースは確実に倍化する。例えばクライアントサイドでSmartyを利用してクライアントサイドではJemplateとか使うと覚えるテンプレートエンジン×2。必要なテンプレート×2。という具合になって仕事量が増大する。

これってなんとか解消できないものなかぁと一人考える日々。言語(JavaScriptPHP|Perl etc)が違うからなぁ…ぶつぶつ。

余談ですがid:ysano2005さんのところの記事id:ysano2005:20060211:1139678697の図とか参考になりました。ありがとうございますm(__)m