Top Java SE 6 Features
Now that I have had some time to work with Java SE 6, I thought I would share a list what I think are the top features and biggest letdowns.
I was sold into scripting the JVM since back in the day when the only scripting option was Jython and BeanShell. Personally I would have preferred if Groovy was the default scripting language that came with Java SE 6. The good thing is that there are plenty of scripting languages that support the new Scripting Framework.
No More Class.forName for JDBC Driver
Java SE 6 does not require you to load the JDBC driver prior to creating a JDBC connection. This only works if the driver is packaged with a certain descriptor in the jar file. This only saves me one line of code, but I would never for the life of remember the name of driver I wanted. So in reality this saves one line of code and one Google search.
The system tray goes a long way in developing Java applications that look and behave more like native applications. The system tray was originally part of the JDesktop Integration Components (JDIC). They system tray allows you to add a menu on the user desktop's user tray.
Java Compiler API
In the past I have had to compile Java source at runtime by invoking the the Main class for the javac command. The Java Compiler API provides a solid solution for compiling Java source files or just in-memory Java code.
I cannot stress how useful and powerful XML binding is. XML binding is object serialization using XML. With JAXB as part of the Java SE 6 you don't have to download additional jars and libraries.
JDBC 4.0 Annotations
Early Java 6 builds introduced a BaseQuery interface. You where able to sub-interface the interface and then define get methods and associated annotation with the appropriate select prepared SQL statement. JDBC annotations are a new way of building Data Access Objects (DAO) which looked appealing. I thought this feature was innovative, yet it didn't make the final cut. I was not able to find word if this will be available as a standalone library.
SE 6 on OS X
Another thing that I am not happy with in regards to Java 6 is that I can only use Java 6 on my Windows machine. There seems to be no word from Apple as to when Java SE 6 will be able for OS X. As OS X languishes with Java SE 6 support, Ubuntu has promised to provide a complete Java development stack with Java SE 6, GlassFish, and NetBeans.
I am sure you have your own list of top Java 6 features, and/or disappointments. Please feel free to share them here.