Joshua Bloch

本blogでも何度か取り上げたEffective Javaですが、その著者のJoshua Blochさんが実際にauthorになっているプログラムを見つけてびっくり!
Java5からenumが導入されましたが、enum型の集合を表すのに特化したjava.util.EnumSet(もちろんSetインタフェースを実装)というのがあります。Effective Javaの中では「項目32 ビットフィールドの代わりにEnumSetを使用する」というところで登場するのですが、ここを勉強した時にたまたまEnumSetの実装クラスを読んでいて見つけました。で、EnumSet以外にどのくらいこの人がauthorになっているクラスがあるんだろうと思いちょっと調べてみました。
調査プログラムは以下。いつものrubyです。

ary = []

Dir.glob("C:/Documents and Settings/loginname/デスクトップ/src/**/**") do |n|
  next if FileTest.directory?(n)
  File.open(n) do |f|
    ary << File.basename(n) if f.read =~ /author\s+Josh(ua)? Bloch/
  end
end

puts ary.sort.join("\n")

Josh Blochと名乗っていたり、Joshua Blochと名乗っていたりするので正規表現部分はそのようにしておきました。
※訳者の柴田さんよりコメントをいただきました。Joshは彼の愛称のようです。
すると結果は以下のように。

AbstractCollection.java
AbstractList.java
AbstractMap.java
AbstractPreferences.java
AbstractSequentialList.java
AbstractSet.java
AnnotatedElement.java
Annotation.java
AnnotationFormatError.java
AnnotationTypeMismatchException.java
ArrayList.java
Arrays.java
AssertionStatusDirectives.java
BackingStoreException.java
Base64.java
BigDecimal.java
BigInteger.java
Collection.java
Collections.java
Comparable.java
Comparator.java
ConcurrentModificationException.java
DSAKey.java
DSAParams.java
Documented.java
ElementType.java
Enum.java
EnumConstantNotPresentException.java
EnumMap.java
EnumSet.java
HashMap.java
HashSet.java
Hashtable.java
IncompleteAnnotationException.java
InheritableThreadLocal.java
Inherited.java
Integer.java
InvalidPreferencesFormatException.java
Iterator.java
JumboEnumSet.java
LinkedHashMap.java
LinkedHashSet.java
LinkedList.java
List.java
ListIterator.java
Long.java
Map.java
NodeChangeEvent.java
NodeChangeListener.java
Override.java
PreferenceChangeEvent.java
PreferenceChangeListener.java
Preferences.java
PreferencesFactory.java
PriorityQueue.java
PrivateKey.java
RegularEnumSet.java
Retention.java
RetentionPolicy.java
RoundingMode.java
SecureRandom.java
Set.java
SortedMap.java
SortedSet.java
StackTraceElement.java
SuppressWarnings.java
ThreadLocal.java
Throwable.java
Timer.java
TimerTask.java
TreeMap.java
TreeSet.java
TypeNotPresentException.java
UnsupportedOperationException.java
WeakHashMap.java
XmlSupport.java

なんと計76個のクラスのauthorに名を連ねています。Collection、Enum、Annotation、Thread関連が多いですね。この人何者!?と思うかもしれませんが、Effective Javaの著者紹介のページによると、

とあります。
納得、という感もありますが、まぁ肩書きよりも、実際にこれら76個のクラスのauthorだっていうだけで十分でしょう。良い本だなぁと思っていましたが、なんかこれで裏づけが取れたようで自信を持ってお薦め出来ますw

Effective Java 第2版 (The Java Series)

Effective Java 第2版 (The Java Series)