本質的でない記述が大規模開発の役に立っているかを見ていて思った。commonsって最近ほとんど使わなくなったよね。
というかApacheのプロダクト自体、HTTPDとTomcat以外まず使わなくなったような。
まずcommonsの依存とか多すぎて使いにくい。GuiceやJava EEの環境構築のシンプルさは最高。
もちろん、昔はお世話になってました。
たとえばいまやほとんど使われないコネクションプーリングのライブラリであるDBCPは有名でしょう。でも商用DB等をはじめとして各社コネクションプール用のライブラリはあります。そちらのほうがパフォーマンスや細かいこともできて使い勝手がいい。また、アプリケーションサーバー側ですべてセットアップするのが当たり前になってからはさらに離れました。
一番使ったのはJXPath。標準APIにXPathがなかなかこなかったのでXMLを扱う場合重宝していました。J2SE5.0以降は標準搭載されたので使う機会は減ったはずです。JavaSE6からはJAXB2.0搭載でさらに減ったでしょう。
どちらも便利な小粒なライブラリを選択したというよりは、実装そのものが貴重だったものを選んだという感じがしますが。
何より使わなくなった原因はJavaのバージョンが低すぎるということ。1.2とか1.3とかがターゲットになっています。互換性のためですが、おかげで高速化の恩恵は受けないとか、新しい構文未対応とか今となっては使い物にならないライブラリが多すぎる。1.4時代くらいまではよかったんでしょうけど。いまやバージョンは6が登場して1年半くらいたちました。そしてもうすぐ7が登場します。
今後もピンポイントで採用はあっても大々的に採用することはますます減るでしょう。
ライブラリって旧システムのサポートのために互換性も大事ですけど、最新の環境をサポートするというのも大事なはずです。商用製品じゃないとこの辺はつらいところかも。