It is still weird for me to say “Java 5″. Version numbers are so meaningless these days. I only just saw that JDK 1.5 has this SpringBuilder which is basically the same as StringBuffer apart from the fact that it doesn’t guarantee synchronization, and hence it isn’t thread safe.
This is fine for the majority of uses though, so will become the norm, and StringBuffer will become legacy (like Hashtable and HashMap).
I do hope we have a future Java version which cleans up all of these things (I know backwards compatibility is good, but at SOME point it would be nice to get rid of the baggage). Our world could be so much cleaner. Real Dates (immutable), one set of Collections, one StringBuffer which you can make thread-safe or not as the case may be, and many many more. I wonder if we will ever get this… and will it be Java 100?