After more than two years in the works, Sun released the final version of Java SE 6. Among the new features are support for scripting languages, Web services, JDBC 4, as well as numerous performance improvements. SE 6 also adds significant improvements in desktop Java deployment and development.
According to Java SE platform lead Danny Coward, Sun's Java SE 6 release is the highest-quality Java release yet. That's due in part to Sun's decision to involve the community in the development and debugging process from a very early stage. Coward has been running a Top 10 New Java SE 6 Features list on his blog, which is likely the best way to get an overview of the plethora of new Java SE 6 capabilities.
Most developers will experience in a dramatic way perhaps the least talked-about, but possibly most consequential, SE 6 feature when they fire up their Java IDEs under SE 6. For it will be immediately obvious that SE 6 supports nicely anti-aliased fonts, and that its component rendering is truly on par with the best a native platform offers in that regard. The marked difference will be most appreciated on LCD displays, due to support for sub-pixel font aliasing that can provide crisp text on such monitors. This is important, because end-users' first impressions of Java were often hampered by less-than-pleasing UIs.
Another benefit of running a Java-based IDE, or any desktop application for that matter, on SE 6 is speed: Coward's blog post reports on double-digit performance improvements over Java SE 5 for both client and server applications.
Java SE 6 is also the first Java platform that is not exclusively about the Java language any more. Thanks to an implementation of JSR 223, Scripting for the Java Platform, dynamic scripting language code can also co-exist with Java code in the JVM. Artima's interview with Danny Coward, Dynamic Language Support on the JVM, is devoted exclusively to that topic.
Other significant Java SE 6 features include support for Web services, for monitoring and management of the JVM, pluggable annotations—see Artima's interview with Joe Darcy on Standardizing Annotation Processing—and direct compiler access.
What new Java SE 6 features do you find most immediately useful in your work?