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<MyClass> list = this.buildList();
for (MyClass thing: list){
...
}
The programmer is still forced to overspecify and manually convert between types like ArrayList<Thing> 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.
Because the 5% of the time matters when you have a language that needs to run on everything from mobile phones to supercomputers.
I personally much prefer being explicit about what I want to happen.
I was impressed, for real.
http://docs.oracle.com/javase/7/docs/webnotes/install/index....
Mysteries from Oracle.