著作一覧 |
secondlifeさんの『なぜ XXX がダメか』を読み、いろいろ去来するものがあるのだ。胸ではなく脳を。
特に、なぜMochiKitの選択で謝っているのかは知りたいところだ。進化が止まった点なのか、それとも別の問題なのか。前者なら、SI的な視点からは逆に安定性という意味で問題ない選択ということになるし(つまり、それはそれで参考になる選択であったわけだし)、後者ならそれはケーススタディとして知りたいところだ。
で、まあ過去10年以上、おれさまプロトコルかHTTPかとか、DCOMかおれおれXML-RPC over HTTPかとか、貴族なXMLとボヘミアンなXMLつまりDTDかWXSかRelax-NGか無手勝かとか、おれさまかStrutsかとか、おれさまかSpringかとか、ASP.NETのWebFormかMVCかとか、WFCかASMXかとか、XMLかJSONかとか、何度も選択の必要があり、勝ち残ったものを選んだこともあれば、消えたものを選んだこともあり、まだ様子見なものもありといろいろだが、今のところは、インフラの上に直接薄いおれさまを置くとか、仕掛けが薄くてエミュレートしやすいものを選ぶというのが、一番生き残って成長もしている(Strust1.2だか1.3だかも生き残っているようだが、これとインフラの上に厚いおれさまというのはいじってはいけないものっぽい。図版参照)、流行関係ないからだ。あと、HTTPは正解だったとつくづくと思う。
写真は4travel.jpへ直リンク
で、生き残ったもののパターンについて考えてみると、以下の共通点がある。
・コンパクト
・インターフェイス(界面)下の再実装がしやすい
・インフラが見えやすい=インフラの再構成または単純な拡張であって、インフラの再構築ではない
・インフラ自身がコアAPIに近い(DCOMは、DCOMというインフラそのものが分厚い。HTTP(をインフラとして考えた場合)はTCP/IPが透けて見える(0.9とか1.0は。1.1になると相当厚みが増しているけど)。
今となっては、いじってはいけないになっているが、Struts1.xはこの条件に適合している。
で、さらに考えると、Railsが見事に違うんだよな。
まずコンパクトではない。再実装するのは無理がある。しかもRubyの再構築だ(ActiveSupport)。でも、現在に至っても悪い選択には見えない。というよりも、良い選択肢のままだ。
理由の1つは、ユニットテストのサポートのために、それなりにモックしやすくできているの(に代表されるわけだが、ユニットテストを記述しやすく設計されている点)が、大きいのかも知れない。これが通っているので、他の難点を潰せている可能性がある。
ジェズイットを見習え |