This slashdot posting points to an interview with Joshua Bloch on the New Language Features in JDK 1.5. Generics is a much awaited enhancement. Today, without the language support, I ask every programmer to minimally document the data type used in a comment, like
Map userTable; // username(String) => UserRecord
Still many people fail to do just that. I have to track down the usage of the collection to deduce what data type they are using :(
A generic declaration would be
Map<String, UserRecord> userTable;
This seems to keep Java collection's light-weight design. It provides some compile time checking and implicit typecasting without the complexity of C++'s template. I still remember spending a lot time debugging the COMPILATION in C++. An compiler error message would spend multiple lines with long and unreadable class names decompose of a template instances...
One reader has pointed out the work on JSR 166 Concurrency Utilities led by Doug Lea. Doug Lea's book Concurrent Programming in Java and the programming library is definitive in this area. It is great that it gets formalized and included in JDK.
2003.05.09 comments -