To answer the question...Yes, Java has changed for the better. Give it a go...you'll be impressed.
I was unimpressed. Generics are better than nothing, but still dramatically worse than having a reasonable syntax for anonymous closures. The newer iterator syntax is better than nothing, but still maddeningly lacking in the most basic type inference -- any compiler that can't infer the type of "thing" here is stupid:
ArrayList list = this.buildList();
for (MyClass thing: list){
...
}
The programmer is still forced to overspecify and manually convert between types like ArrayList and Thing[], even though 95% of the time the difference has no impact worth thinking about.I could go on, but my point is that people like me who dislike Java dislike it for fundamental reasons. We're not going to be converted, because the changes we would demand would probably horrify Java's core audience.