EJBとかXDocletとか

EJBは面倒だから敬遠されているのか
(from http://sgtpepper.net/hyspro/diary/20040213.html#p02)

EJBは面倒だからだめ」と言うとき、欧米ではEJBをやった人が「やっぱりだめね」というのに対し、日本では導入しようとしている人が「やっぱりだめね」ということが多いように感じます。

EJBって嫌だという理由に

  • 書く手順や手間がめんどくさい
  • 設計の自由が減っていやだ

という理由があると思います。おそらく導入に挫折した日本人は前者で、導入後否決した欧米人は後者なんでしょう。



私もいくぶん前者なんですが、EJBってやっぱり名前規則や設定ファイルを多用しすぎの印象はあります。でも、最近大分楽にはなりました。
EJBコンテナのバリデータ(?)も賢くなって、仕様違反のエラーはちゃんと、「ここはEJB仕様なんとかに反していておかしい」というのをちゃんと伝えてくれます(昔はデプロイしてみて何だかNullPointerだけでど、どうすればいいのだろう?という状況がよくあった)。
デバッグの手間もかなり軽減され、ホットデプロイやホットコードリプレースで、一度デプロイしてしまえば、ちょこっとした変更はほんんどノータイムで修正、実行可能になりました。ツールがこなれてくることで、「書く手間」はどんどん減っていくんだろうと思われます。


ところで、「書く手間」を減らすツールの1つとしてXDocletがあります。ささらに、XDoclet語を覚えるのも大変な人のために、ウィザードでXDocletソースを吐き出してくれるツール、ドラッグ&ドロップでlookup部分を生成してくれるツールなどもあるようです。


EJBが普及しない理由
(from http://dann.dyndns.info/diary/20040218.html#p01)

XDocletを使うには、DD書くだけの知識がないとダメ。だから、XDoclet使うにはEJBに対する理解がないとまず使えない

書く手間は省けても、「何を設定すべきか」の理解については、サーバーサイドの知識や経験が必要になってきます。


EJBが普及しない理由のもうひとつとして、既に以前の「めんどくさい」「おそい」といった印象が定着してしまったため、EJB2.0以降になっても、なかなかその印象が拭いきれないのかなぁ、、、と。


金魚は空を飛ぶか
(from http://d.hatena.ne.jp/neverbird/20040218#p2)

現在のEJBは水槽の中の金魚のように、コンテナの外の世界では生きられません。それがとても不自由です。

フレームワークは自由度を減らすことで生産性を上げますが、それがよいと感じるか不自由と感じるか。Javaを使うことでポインタ操作ができないことで不自由を感じる人はそれほどいなかったと思います(そうでもない人もいるでしょうが、結果的にはその方がよいということに落ち着く)。金魚のようにきれいな水と餌をあげれば簡単に飼える生き物ならいいけど、飼うのが難しい、ホゲホゲフィッシュ(仮)のように、設定を下手するとすぐ死んじゃうというのはやっぱり、エキスパート向きの生き物かなぁと思います。


入り口やさしく奥深くっていうのがいいなぁ。


例えば、こんな感じでもよかったのになぁ(以下妄想)。JSPやJWSみたい「hello.ejb」とかいうファイル(以下)を作って、デプロイディレクトリに置くと実行可能。

public class HelloEJB{
    public String sayHello(){
        return "hello";
    }
}

あ、少なくともクライアント側にインターフェイスはいるか。


読み返してみると、参照元の方の意見とはあまり関係ない(単に気に入った文言を抜粋しただけ)みたいな気もしましたが、まあいいか。