歩いてきた道を少し振り返りつつ、Seasar2を見つめてみる。

自分に辿れる軌跡は2つある。「プログラミング系」と「サーバー系」。ここでは前者について、Webアプリとの出会いからSeasar2との出会いまで*1振り返ってみる。

  • PHPとファーストコンタクト
    • フレームワークも知らず、HTMLの途中にひたすらコードフラグメントを埋め込む日々…
  • テンプレートエンジン(Smarty)との出会い
    • ぁ、HTMLを組み上げてから最後に出力すればいいのか、と学ぶw
  • フレームワークとの出会い
    • SmartyMojaviを組み合わせると、おおこれは! と学ぶw
    • ただ、Mojaviの情報がひたすら少なくて苦労した記憶がある。開発も止まってた?
  • Javaとの出会い
    • やっぱりstaticな言語が性に合っていると再認識、そしてJavaに惚れ込む。
    • 構造化で止まっていた脳ミソに、オブジェクト指向を取り入れる決意をする。
  • Servlet & JSPとの出会い
    • おお、JavaでWebアプリ書けるやんかすげー。JSPってPHPっぽいー。超無邪気。
    • この辺で本気モードに入る。
  • そしてJavaフレームワークと出会う
    • ほう、MojaviStrutsの影響を受けていて、Mojaviを知ってるから理解しやすい。
    • Hibernateとな。そうか、インピーダンスミスマッチングね。音響用語でもあるw
    • Spring…。当時AOPやらDIやらの概念を全く知らなかった為、ひとまずスルーw
  • J2EEの認識
    • 今まで「Java」と一括りだった概念が、J2SEJ2EEに分かれてくる。
    • この頃、「仕様」と「実装」の意味を理解するw
  • EJBの悪評判をひたすら耳にする
    • EJBなんて覚えても使わないしね、という話をあちこちから。
    • そうか、じゃぁ要らない。← コレが間違い。
    • 使わなくても知ってないと理解しづらい話が今後わんさか出てくる事も知らず…。
  • AOPとDIにリベンジ
    • フレームワークはS,S,Hと揃えてナンボだろう、と何故か思った。
    • というわけでSpringを学び始める。
  • Seasar2との遭遇
    • すげー、DIコンテナ,Presentation FW,O/Rマッパを一つの組織で提供してるぞ。
    • 中を見て驚愕。何だこれは。何だこの尖った技術のラインアップは。
    • この頃、ブログを書き始める。
    • 当時、コミッタになれるとは微塵も考えてはいなかったw
  • Seasar2インデプス
    • S2絡みのブログを読み漁る。特にひがさんのエントリー
    • そう、この時にEJBの知識が必要だったんだ。永続化コンテキストとかしらねーよ。

さて、この辺で。コレがいつ頃だったっけなぁ。ブログ掘り返すと、2007/03頃だな。約一年前。ここでこの本を読んでおけばよかったんだ。まだ発売してなかったけど。でも発売してても手に取らなかったと思う。

マスタリングJavaEE5 (CD-ROM付) (Programmer’s SELECTION)

マスタリングJavaEE5 (CD-ROM付) (Programmer’s SELECTION)

EJBを知らないのに、こんなの読んでたんだ、俺変態。→ http://d.hatena.ne.jp/cepoc/20070326/1174918155

ほら、超苦しんでるw → http://d.hatena.ne.jp/cepoc/20070327/1175000982

それでも、あんまり誤解していなかった過去の自分を褒めてあげたいw

まぁ、何が言いたいかと言うと…。

EJBを使わなくても、仕様は知っとけ

ちなみに、上記書籍はまだ半分弱しか読めていないんですが「あぁ、EJBってv3.0ならば、そんなに悪くないじゃないか」と思ってます。EJB2が糞過ぎたということかw

JavaEEJ2EE)ってのは、仕様先行なのが良いところですかね。とか言っちゃうと、時代逆行*2してるっぽい発言だけどw 実装はともかく、とりあえず考え抜いて仕様を固めちゃう。そうすると、標準であるが故に、実装と平行してドキュメントがいっぱい出てくるんですよ。俺が今読んでる本とか。仕様が変る心配がないから、体系的ですごい分かりやすい資料が出来上がる。それを覚えてしまえば潰しがきく。

つぅかね、この本すげーですよ。分かりやすい。

はい、閑話休題。ただ、JavaEEの弱点としてはやっぱり、アジャイルなスタイルがとれない事か。さらに改善したいと思ったら、JavaEE6の仕様策定に走らないといけない。時間がかかる。リリーススパンが長い。そして時代に取り残される。

対するSeasar2(のSuperAgile系)のメリデメは上記の反対。アジャイルスタイルが取れるので、どんどん進化できる。リリーススパンを短くとって、どんどん尖れる。先端にキャッチアップでき、その技術が採用できれば、楽しく開発を進められる。

で、弱点はやっぱしドキュメントかな。Seasar2に関する、上記の本の様な体系的で分かりやすい資料は欲しいなー、とは思うんだけど、作ってもすぐ古くなっちゃって、現実的じゃない。仕様がfix出来ないので、ドキュメントを書いても書いてもすぐに古くなる。書く側のコストも高い。そして、そんな中で最新の仕様にキャッチアップしていかなきゃいけない技術者に掛かる負荷は、そういう面では大きいのかもしれない。実際、そこそこ分かりやすいドキュメントはあるんだけど、読んだ翌日には書き換わる可能性がある、ってのは痛いよねー。

まぁ、それにしても、JavaEEのデメリットをアジャイルスタイルで克服(SuperAgile系)しつつ、J2EE仕様の実装まで提供(Easy Enterprise系)するSeasar2っつーのはスゲェな、と再認識しながら本を読んでます。

みんなも読むといいよ。ブ厚いけど、ブ厚さにwktk出来る。

何か、何が言いたいんだかw 徒然ってことで( ̄ー+ ̄)

*1:現在までは振り返らないw

*2:ウォーターフォールよりもアジャイルってご時世。