良い悪いは置いておくとしてRubyOnRailsはStrutsになるのだなと感じています(エンタープライズ開発でデファクト・スタンダードになって一定のポジションを獲得する)。先日のRubyKaigiでの話し、あるいは最近のエンタープライジーな企業のプレスリリースを見ていると着実にその道を歩んでいるようにみえます。特にSUNがJRubyへのコミットメントを強めている中でJava環境でもRailsが使えるという期待感が強まっており、この傾向に拍車をかけているようです(既にJRubyの上で動きます)。
背景としては金融・内部統制景気が続く一方で、中大規模のSIerでも小粒案件(1-4千万円)をちゃんと利益出してやっていこうよ、みたいな流れがある気がします。これまではプロダクトなどでカバーしていましたがOSSの発展や顧客ニーズの多様化によってSI案件化せざるをえなくなってきた。でも社内の標準フレームワークでは鈍重すぎて利益がでない、かといっていまさら作り直すのかよといったレポートがあり手詰まり気味。
一方ではRailsが彗星のように現れ「圧倒的な生産性」という謳い文句で広くメディアに取り上げらています。そこで「そんなに簡単なフレームワークなら別にJavaでも.Netでもなくていいよ(仕事が取れれば)」という認識が出てきたのではないでしょうか。
僕はスクリプト言語がJava開発に組み込まれてくると考えていますが、それが*Ruby* On Railsになるとは去年の段階では思いもよりませんでした。なぜならJavaエンジニアがRubyistに"ちゃんと"転職するには難しいからです。Rubyの良さである1つのことを表現するのに多様な記述手法があるのはメンテナンスの混乱をもたらします。そんなRubyを使ったRailsがエンタープライズの開発で役立つとは考えていなかったのです。
かつRailsの特徴であるActiveRecordにはJavaの世界にいくらでも競合がいます。さらにWebBeans(JBoss Seam)のようにRailsをまねてテーブル項目をそのままエンティティとしてエクスポーズ(露出)するようなフレームワークもあります。
ですが、世間の見た目は別のようです。Railsの威力をJavaに取り入れようとしたら、なんだかRailsそのものがエンタープライズに入ってきそうな勢いです。
ところで僕はRailsの話をしています。Rubyの話ではありません。ファウラー氏はRailsが影響を強めているのは
RubyでWebアプリケーションといえばRailsになったという事実があるからだ。エンタープライズアプリケーションでもRailsかもしれない。RailsConfにはRubyConfよりも多くのエンタープライジーな人間が参加しているのではないだろうか。 Railsがそれほど注目を集めているからだ。
と述べています(エンタープライズRails)。さらに
そのため、Railsのこだわりの特性が、Ruby自体の声明だと受け取られてしまう危険性がある。これではRubyはエンタープライズのグルーには適していないと受け止められてしまうかもしれない。それは残念なことだ。
と述べていますがRailsがエンタープライズに受け入れられてしまうと、よりRubyの良さがエンタープライズで認められなくなってしまいそうです。単純な処理をするための言語としてRubyが考えられてしまうわけです。LLはエンタープライズが求める複雑さを解決しうる可能性を持っていると感じているので、僕も残念です。
あと普通ならRubyのスレッドはぁ、言語仕様はぁ、Railsのセキュリティはぁとか言いたくなるわけですが、ま、これも普及にはほとんど関係ないでしょう。僕はStrutsで育った世代なのでStrutsは便利だと思っているのですが「あんなセキュリティもへったくれもないフレームワークが流行るなんて思ってなかった」と言われた経験があります。だからRailsも同じことだろうなと。オールドタイプは常に否定的です(w。
Railsをベースにしたフレームワークも大量に出てくるはず。Railsには意図的な限界があり、それだけではエンタープライズの要件がこなせません。Strutsの初期にあったような、混乱からラッピングフレームワークの登場、そしてまた混乱という歴史が繰り返されるのかなと。
というわけで、肯定的だろうが否定的だろうがRailsブームがやってくるという心構えを少しもっておこうと思います。Java+LL(Java言語とJavaで動くLLの組み合わせ)という案件は既に1年以上こなしているので様子はわかっていますが、Railsと組み合わせるとなるとちょっと違う可能性があります。
余談ですが、ここらをMDA的な流れ(自動生成、コンパイル時解決、ランタイム解決)とかと組み合わせて考えるとすごい面白い。はてさて、どうなることやら。楽しみですねぇ。
