It is the 30th of October 2009, the day the music stopped. Or at least the music of Java 5. Today is the day that marks the End of Service for J2SE 5.0. No more general support or bug fixes for this edition. Time to move up to at least Java 6.
Let us not be sad at the passing of a friend, but instead celebrate how our friend enriched our lives and the legacy he is leaving us.
In 2004, Java 5 (or Tiger), introduced a number of core language enhancements, some controversial, some minor, and some that never really took off. The high level additions include:
- Generic Types
- Autoboxing and Auto-Unboxing of Primitive Types
- Enhanced for Loop
- Enumerated Types
- Static Import
- Formatted Output/Input
- Concurrency Utilities
- Core XML Support
- JDBC RowSets
- Supplementary Character Support
For me personally, I have found Generics and the Concurrency package to be the most used within my own development life. I have also found the autoboxing sneaking in to my development and to be completely honest, I am undecided about the notion that my primitive types are automatically converted to their class based derivatives for use in collections.
Other additions like varargs and enhanced loops has never really grabbed me as anything more than short-cuts to promote grammatical laziness.
Java 5 also introduced core JVM performance improvements and also improved profiling tools to give us a greater window into what our applications where actually doing.
So as we load the body of Java 5 onto the mythical burning ship to set it off on its last journey, we give pause and thanks for how it enriched our Java development lives.
throw new DeathException();
If you are clinging onto Java 5 for dear life, then you may wish to consider paying for up to 15 years of support through Sun's Java for Business programme.