Guava
ぱっと見、型推論とか面白い機能があったGoogle Code Archive - Long-term storage for Google Code Project Hosting.とくらべるとちょっとインパクトに欠けるかなという印象。ただFiles.readLinesのコールバックなんかは面白いと思った。
まだ洗練されてないよって本家でも言っているが、Twitterでもイマイチという反応が多かったように思う。どの辺がイマイチなのか追いきれてない(理解できてない)けどざっと以下のような部分がマイナスだった模様。とりあえずメモっとく。
1.テストが無い
ちなみにGoogle Collections Libraryにはある。
2.java.util.concurrentのラッパーぽいcom.google.common.util.concurrentのドキュメントが無い。
中身もイマイチらしい。
3.generate.sh
http://guava-libraries.googlecode.com/svn/trunk/src/com/google/common/primitives/generate.sh
なのがポツンとあってこれでprimitivesパッケージのなかのクラスを自動生成してるっぽい。これシェルスクリプトでしかもなかでperl呼んでいるんだけどWindows環境だったらそのままでは動かないよね。
またこのシェルスクリプトは http://guava-libraries.googlecode.com/svn/trunk/build.xml で呼ばれているわけでもない。
4.ラベル
2重にネストしたループからラベルでジャンプして脱出している箇所がある(例:Booleans.java)。
5.InputSupplier.java
http://guava-libraries.googlecode.com/svn/trunk/src/com/google/common/io/InputSupplier.java がイマイチらしい。
比べる対象として適切かどうかはわからんが、たしかに
http://t-2.googlecode.com/svn/trunk/commons/src/org/t2framework/commons/util/using.java
と比べると例外の型が抽象化されてないし、エラーハンドリングの仕組みが無い。ま、この辺はJava7待ちかも。
参考:
java.io.Closeable の事も忘れないであげて。 - 設計と実装の狭間で。
jakartaのcommons系はジェネリクス対応してなかったりするので、ええ感じのユーティリティがあるとうれしいんだけどね。