google guiceはDIに適したフレームワークか?
リリースされた当初はそれなりに話題になったような気がしますが、最近あまり話題を聞かないような気がします。特に普及が進んでいるという話も寡聞にして聞きません。
何故でしょう。
この辺だと思いますが、問題はここだと思います。
- DIに特化していてシンプル
これは、guiceの良さというかウリでもあると思いますが、DIに特化しているということは即ち、DIだけしかできないということです*1。しかし、世の中に
DIだけしたいなんて人はいるのでしょうか?
滅多にいないと思います。絶対いないとまではいいませんが。大抵の人は、例えば、Webアプリケーションを作るなどの何か他の目的を達成するための手段の一部としてDIしたいのであって、DIするためにDIしたところであまり意味はありません。
即ち、DIとはそもそもが手段の一部であり、それ自身が目的にはなり得ない、そもそも他の手段と組み合わせて使うべきものなので、「何とどういう風に組み合わせて使うか」が問題なのではないかと思うのですが、DIに特化しているということは即ち、
何とどういう風に組み合わせてどう使うかは好きにしろ
ということになると思います。これがspringとかseasarだと、
山ほど組み合わせ方のベストプラクティスが出てきてこれからDIを勉強する人にも活用しやすいと思うのですが。
即ち
guiceは、DIそのものはシンプルで使いこなすための敷居は低いのかもしれませんが、肝心の何とどういう風に組み合わせて活用すればいいかは
のが、普及が進まない原因のような気がします。即ち、DIに適したフレームワークであるとは言い難いのかも知れません。
まぁようするに何が言いたいのかというと
guiceをベースとして、何とどういう風に組み合わせればいいかを盛り込んだ、より上位のフレームワークでも登場しない限りは一般に普及しないんじゃないかと思う訳で、私もかつて二度ほど趣味ベースで勉強も兼ねてその「より上位のフレームワークの作成」に取り組んでみましたが、いずれも挫折したというか忙しくなって放置しているうちに飽きました。
そんな訳で、そろそろ気が向いてきたのでそのうち三度目にチャレンジします。
↑
ようするにこれが一番言いたかった