Seasar2を新規案件に採用するのはそろそろやめたほうがいい

Seasar2の機能追加停止が宣言されてから、すでに6年弱たっています。

Seasar2.4に対する追加要望があれば、もちろん検討します。ただし、大きな変更や追加はもうないでしょう。

Seasar2の今後のロードマップ 2008-01-29 - ひがやすを blog

後継になる予定だったSeasar3も開発が中止されて3年たちました。
Seasar3開発中止 2010-08-06 - ひがやすを blog
ここでSeasar2.5を出す方向で動くということでしたが、実現しませんでした。


あのころSeasar2に関わっていた人も、ScalaがメインになったりNode.jsをさわったり、不本意ながらPHPをさわったり、さわってみるとPHPもそれほど悪くなかったり、やっぱりPHP気に食わなかったりと、いろいろな道を進んでいます。


DIコンテナ自体の機能も時代遅れ感がでてきており、関連プロダクトも新たには出てこず、たとえばJSF2.2に対応するだとか、JAX-RSに対応するだとか、WebSocketに対応するだとか、という具合に新しめの技術に対応するのはちょっとめんどうな状況です。Java SE 8のリリースも控えていますが、ここで導入されるlambdaなどを活かした機能が導入されることもありません。
今であればまだ十分使えるとは思いますが、1年たてば7年前の技術、3年たてば9年前の技術、と時間がたつごとにどんどん古くなっていきます。
そろそろ、Seasar2を新規案件に採用するのはやめたほうがいいのではないでしょうか。


もちろん、メンテナンスは続いており、先月にもメンテナンスリリースが公開されています。これからもメンテナンスは続けられると思います。
だから、すでにあるシステムをSeasar2から別のものにリプレースするべきということではありません。
あと、これまでSeasar2のノウハウがあって、オレオレdiconも育っていて、別にWebSocketなんかちょっとしたラッパ作るのたいしたことないよね、Webフレームワークも自分で作ればいいし、みたいな人や組織は、まだ使っていけばいいと思います。
情報に関しても、機能拡張されてないおかげでSeasar 2 徹底入門がまったく通用するわけで。
ただ、そろそろ移行について考え始めておいたほうがいいと思います。


特に、これまでSeasar2を触ってなかった新規メンバが多いような場合には、その人たちにSeasar2を教育するよりは別のプロダクトの教育を考えたほうがいいかもしれません。
個人的にはJava EE 7とかいいと思いますが、現実的にSpring Frameworkだったり、まあJavaから離れてScala+Play Frameworkだったり、Node.jsだったり、いろいろ検討してみるといいと思います。


一番の問題は、ユーザーコミュニティが消えてしまったということです。
もちろん、メーリングリストは生きていて、ひがさんも小林さんも返事をされています。ただ、どちらかというと公式QAのような感じで、「なんかデータがとれなくてわかんなーい」みたいな質問をするような雰囲気ではなくなっています。
「2chでSeasar2の技術的な質問するな」とひがさんが何度か書く程度に2chのSeasar2スレッドはフランクな場として機能してたりしましたが、今や2chのプログラマ・ム板自体があまり息していません。
Seasar2関連プロダクトを話題にしたブログもなかなか目にしなくなってきました。Seasar2で盛り上がってた人たちもブログ自体かかなくなってきてるし。Seasar2は、はてなダイアリを中心にブログベースでコミュニティが盛り上がったことを考えると、ちょっとさびしいです。
Twitter上でSeasar2に関する疑問を書けばだれかが答えてくれるという状況でもないように思います。
Seasar2をやってた人たちとは、なんだかんだでどこかの勉強会で顔をあわせたりするのですが、Seasar2を主題にした集まりは2008年のSeasar Conferenceを最後に開かれていないように思います。
「Seasar同窓会やろうぜ〜」とちょっと盛り上がってみたりしましたが、これはあくまで同窓会で、おそらく「いま何やってんの?Scala?へぇ〜オレも」って感じの会話が会場の1/3くらいで行われそうなイメージです。
目の前の問題に対して情報交換する場がなくなってしまいました。


Tomatoさんがひがさんのブログのコメントに書かれていた、まさにそのとおりが現実になりました。

Seasar2が冒険しないことによって、適切な大きさの問題は生まれなくなり、開発者が離れ、Seasar関連プロダクトが生まれなくなり、Seasarユーザも離れていく。使われないSeasarからさらに開発者が離れていく。
こういうスパイラルが発生するかもしれないことについては、どう考えますか?

私はいつもチャレンジャー 2009-01-31 - ひがやすを blog


それに対するひがさんの答えはこういうものでした。

「機能を枯れさせることに徹する」というのは、かなりの冒険でしたが、今のところ、うまく行っていると思っています。

Seasar3がやってくる 2010-06-03 - ひがやすを blog

2年ではそこまでの影響は出なかったということでしょう。


ただ、そこからはひがさんも書いてるとおり、Seasar3が必要でした。

Seasar3をはじめないと、Springの存在感が日本でも徐々に大きくなり、Seasar2が衰退してしまうから。Seasar2が衰退してしまうと、開発メンバーが維持できなくなるのです。

Seasar3がやってくる - 2010-06-03 - ひがやすを blog

しかし、Seasar3は前述のとおり開発中止されてしまいました。
Springの存在感が大きくなったかというと、そうも思えませんが、これはこの期間にSIの存在感が小さくなってきたことで相殺されているのかもしれません。しかし、Seasar2は衰退しました。


Seasar2が解決しようとしていた問題は、Java EE 7ではかなり解決してきているように見えるし、Spring Frameworkでもたぶん解決してるんじゃないでしょうか。他言語のフレームワークではそもそもその問題がなかったりもします。
そろそろ開発をSeasar2に依存するのは やめて、他を模索しはじめたほうがいいと思います。

Seasar2徹底入門 SAStruts/S2JDBC対応

Seasar2徹底入門 SAStruts/S2JDBC対応