I actually had to write some Java recently for the first time in about ten years. I was hoping that the evolution of the language would make it less painful than it used to be.
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.
My bank uses a security module written in Java. I had to switch from Google Chrome to Firefox because Java 7 for Mac doesn't have a compatible version for Chrome.
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:
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.