Information
2008-06-13
CTCと夜の決闘
昨日、CTCに「お前は最近、Railsに批判的でけしからん」ということで、呼び出されました。もちろん、「批判的でけしからん」というのは冗談ですが、私が、Railsを嫌っていると思っているRuby関係者は、実際多いようです。
「JavaからRubyへ」の本に対して、それはちょっとおかしいんじゃないのといったことはありますが、Railsを嫌いといったことはもちろんないはず。
呼び出されたのは、Rubyの話じゃなくて、Javaの社内フレームワークの話でした。
Struts、Spring、独自データアクセスフレームワークの生産性を何とかして改善したいという悩みでした。裏を返せば、今が低いと思っているということでしょうね。
あるいは、生産性が低いというより、大手SIerにとって必須の大規模開発をするのには、つらいということなのかもしれません。
CTCの話だと、SAStrutsを使えればいいんだけど、Springベースなので使えないとのことです。同じような話をおとといNTTデータともしたなぁ。NTTデータの場合は、Struts、Spring、iBatisです。
Struts、Springベースの社内フレームワークの生産性を改善しなければならないという悩みを大手SIerから二日連続で聞くことになるとは。
Struts、Springベースの社内フレームワークの生産性があがらない、大規模開発でつらいというのは、ある意味し方のないことです。もともと、生産性を上げるために作られたフレームワークじゃないから。
Strutsは、Servletベースの開発にMVCというアーキテクチャパターンを持ち込み、定型化しました。Struts以前のばらばらだった開発スタイルをMVCで定型化したのです。実際は、Sunのblueprintアプリケーションの中にすでにMVCは取り入れられていたので、それをフレームワーク化したというほうが正確かもしれません。
Strutsは、生産性を高めるために作られたものではないのです。
Springは、POJOベースの開発をもたらしました。EJBに苦しんでいた開発者を救ったのです。POJOベースの開発は、テストのしやすさというメリットをもたらしますが、生産性そのものは改善しません。普通のJavaのクラスでかけるようになっただけだから。EJBに比べると生産性はずっといいんだけど。
生産性を向上させるということを主目的としてフレームワークが作られたのは、基本的(もちろん例外はあるけど)にRails以降のフレームワークです。
Railsは、Struts、Spring、Hibernateへのアンチテーゼとして登場しています。裏を返せば、Struts、Spring、Hibernateを組み合わせても生産性は出ないということです。
じゃ、どうすればいいのかというと、SAStrutsをベースにSpringでも動くように修正するといいのではないでしょうか。SAStrutsは、実質的な(例外だとかアノテーションを除いた)クラス数は40位と小さいので、移植するのは難しくないはずです。
移植する中で疑問があれば、いつでも私が答えますよ。
Springは、2.5からコンポーネントの自動登録に対応したので、HOT deployができないことを除いては、Seasar2と同じように使えるはずです。
- 333 http://reader.livedoor.com/reader/
- 131 http://b.hatena.ne.jp/
- 120 http://b.hatena.ne.jp/entrylist?sort=hot
- 113 http://b.hatena.ne.jp/hotentry
- 104 http://d.hatena.ne.jp/
- 91 http://www.google.co.jp/search?q=ひがやすを&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a
- 69 http://www.google.com/reader/view/
- 58 http://www.google.co.jp/reader/view/
- 56 http://www.google.co.jp/ig?hl=ja
- 52 http://b.hatena.ne.jp/entry/http://d.hatena.ne.jp/higayasuo/20080612/1213241779