Seasar2と僕

Seasar2徹底入門なる書籍を書かせていただいて言うのもなんですが、正直言って数年前はSeasar2はそれほど好きではありませんでした。そんな僕がなぜSeasar2徹底入門という書籍を執筆するに至ったかという話をさせていただきたいと思います。


Seasar2が大きな盛り上がりを見せていた当時、DIコンテナとしてSeasar2がSpringよりも使いやすいのはわかっていたのですが、Spring(やその他のデファクトな海外製フレームワーク)が使いにくいのであれば、Seasar2などというガラパゴスフレームワークを作るのではなく、デファクトフレームワークが使いやすいように本家にコントリビュートしていくことに労力を使ったほうが皆が幸せになれるのに…と思っていました。
また、S2JSFTeedaSAStrutsの流れに見えるような一貫性のなさにも困惑していました。当時S2JSFが使用していたMyFacesの品質がいまいちだったのは事実ですが、TeedaではJSFから自前で実装した挙句、「やっぱりJSFはダメでした」とSAStrutsが出てきたときには正直Seasar2にはもうついていけないな、と思いました。
少し話は変わりますが、OSSには「愛」が必要だと思うんですよね。特にボランタリでやってるような人の場合、プロダクトやコミュニティに対する愛がなければそもそも一円の得にもならないOSS開発なんて続けられないと思います。でも、当時のSeasar2にはそういう部分を感じられなかったんです(ごく初期の頃はそうでもなかったのですが…)。
とりあえずこのあたりが僕がSeasar2をいまひとつ好きになれなかった理由です。


時は流れ、Seasar2SAStrutsS2JDBCは安定期に入りました。以前のように次々と新しいプロダクトがリリースされることもなくなりましたし、コミュニティが熱気に満ちた盛り上がりを見せることもなくなりました。
でも、そんな今だからこそ、僕が好きになれなかったのはSeasar2というプロダクトではなく、(言い方は悪いですが)ある意味ミーハーな盛り上がりを見せていた、当時のSeasar2のコミュニティだったのではないかと思うようになりました。
ひがさんはここのところSeasar2を離れ、クラウドSlim3)に取り組まれています。現在のSeasar2id:koichkさんやid:taediumさんなど、地道に、そして着実に活動を続けられている一部のコミッタの方で支えられています。このような方々には尊敬の念を抱かざるを得ません。


現在は業務でもSeasar2を活用させていただいています。
僕の勤務するNTTデータグループではSpringと言うとデータの標準フレームワークであるTERASOLUNAを指すケースが多いのですが、このTERASOLUNAというフレームワークは規則で縛り上げるタイプのフレームワークで、使用すると開発効率はむしろ低下します。(OSS化されているのだからこれくらいは言ってもいいですよね…)
この方向性の良し悪しは別として、少なくとも僕の個人的な趣向とは間違いなく相容れません。それに、親会社でSpringを使っているのに同じことをやっても面白くもなんともありません。
天邪鬼な僕は、個性を出すという意味もあってチームでのアジャイル開発の標準フレームワークとしてSeasar2を使うことを選択しました。そもそもSeasar2を使い始めたのはS2Daoを使いたかったからです。
当時も今もフロントのWebフレームワークは海外に良いものがありましたが、データベース周りはメジャーなものだとHibernateiBatisといったあたりで、どちらも開発効率が良いとはいえないものでした。これらと比べるとインターフェースだけでDaoが作れ、複雑なSQLに対応するための2WaySQLが使えるS2Daoは非常に開発効率のよいフレームワークでした。
アジャイル開発では開発効率を極限まで追求する必要があると考えていたため、S2DaoClick Frameworkを組み合わせて使うことにしたのです。


これが3年ほど前の話で、その後も現在に至るまでSeasar2絡みの仕事をいくつかやらせていただいています。


さて、なぜSeasar2徹底入門という書籍が今出たのか?という点についてですが、ひがさんがSeasar2を離れ、S2Container、SAStrutsS2JDBCというフレームワークが安定期に入ったことで書籍を執筆するタイミングとしてちょうどよかったという面もありますし、ひがさんが執筆されたSAStruts+S2JDBC本がハウツー形式の入門書に終始していたことも「きちんとした書籍を執筆しなければ!」と思う1つのきっかけになりました。
この書籍は最終的に翔泳社さんからの出版となりましたが、その前に他の出版社さんにも企画を持ち込んでいました。「Seasar2関連の本は売れないから」という理由で却下されてしまったのですが、実際にSeasar2を使っている現場できちんとした書籍の必要性を感じていたため、諦めずに翔泳社さんに相談させていただき出版にこぎつけることができたのです。ただ、出版社さんを彷徨っていたおかげで出版時期が僕の当初の目論見より半年ほど遅れてしまいました。
これまでのSeasar2は開発が活発すぎ、次々と新しいフレームワークが登場してきたため、書籍を出しても1年後には情報が古くなってしまい使えなくなってしまう、ということを繰り返してきました。しかし、Seasar2の開発が落ち着いている現在、少なくともSeasar2徹底入門に関しては今後数年間は使える書籍になるのではと思っています。


Seasar2徹底入門はSeasar2というプロダクトと、Seasar2を支えてくださっている方々への感謝の気持ちで執筆しました。コミュニティとしてはかなり落ち着いてしまった感のあるSeasar2ですが、今後もSeasar2を使用した開発に携わる方はしばらくの間は増えていくと思います。この本が新しく入ってくる方の良い手引きとなればと願っています。