ひがやすを技術ブログ

電通国際情報サービスのプログラマ

DIのゆくえ

Springが今後どこへ向かうのか。もちろん、私がそんなことは分かりませんが、2.0のスペックを見るとある程度予想ができます。2.0のポイントは、

だというふうに私は思っていて、設定ファイルを重視する方向性は変わってないと判断しています。
設定ファイルはできるだけ書きたくないというのが、ユーザの大きな声だと思っていますが、「設定ファイル重要」はどうしても変えられないポリシーなんでしょう。
ユーザのニーズにこたえられないプロダクトは、使われなくなっていくだろうと予想できますが、今、急にそうならないのは、他に代替が無いので、移行しようがないということと、現在Springに慣れているのでわざわざ移行したくないという気持ちがあるためでしょう。
ただし、日本は別です。Seasar2があり、設定ファイルを書かないLess Configurationがあるため、Seasar2に流れてくるユーザがいるわけです。デファクトとLess Configurationのどちらを重要視するかでSpringとSeasar2を選ぶのかが決まってきます。現在のシェアは分かりませんが、Goolgeのヒット数を見てもSeasar2のシェアが増えつつあるというのが現状ではないでしょうか。
だからといってLess Configurationだけで優位になるとは思っていません。特に海外では、Springに慣れているユーザが多いので、現状のままだと、そのままSpringを使いつづけるユーザが多いのではないかと予想します。
DIにおけるユーザのニーズは、Less Configuration以外に「標準化」があるでしょう。この標準化を実現するのがEJB3です。使いにくい標準化だと以前のEJBのように使われないこともありますが、EJB3はそれなりに良くできているので、標準として使うに値すると思っています。
デファクトを使うのは、安心感から来ることも多いと思いますが、標準化されたものはさらに安心です。log4jJavaのLoggingのようにデファクトが標準に勝っている場合もありますが、それはデファクトが標準より勝っている場合です。SpringとEJB3を比べた場合、Less Configurationを実現している分、EJB3のほうが使いやすいと思います。そうなれば、Less Configurationと標準化のどちらも実現しているEJB3のほうが、Springよりシェアを取る、あるいはほとんどシェアをとると考えるほうが妥当なのかなと思います。
というわけで、わたしが今Springをあまりライバル視しないのは、そのうちEJB3に負けるだろうと思っているためです。また、だからこそ、Seasar2EJB3対応を急ピッチで進めているわけです。
SpringとEJB3のシェアがいつ逆転するのかは分かりません。EJB3のファイナルリリースはJavaOne(5/16)の前になりそうですが、その後、各実装が出てきてこなれるまでみんなが様子見しているかというと実はそうではなく、結構早いうちから使ってくるのではないかと思っています。あなたは、数ヵ月後にはもう使われなくなるという技術を採用するでしょうか。
それでは、Seasar2EJB3の世界で生き残るためにどう考えているか。それが、次のエントリで書く「Lightweight EJB3」です。