According to you all, Java is the third most-hated language here. The two other most hated languages are PHP and VBScript. (It's quite funny how they stand together on the podium.)
I'd like to make it known that the question mostly addresses people who don't like Java. I assume here a number of subjective opinions as facts because they're usually considered true among people who don't like Java, and I don't want to be convinced otherwise here. If you're a Java enthusiast, you might find this question frustrating.
It's never been made clear if people hate Java itself, or if they hate it because of the framework, or if it's a mixture of the two.
On a side you have the language, where you have:
the "everything should be an object" philosophy, even in instances where it should obviously be something else (event handlers I'm pointing you);
checked exceptions;
the idea that all logic should be presented as methods and properties is a big no-no;
the fact that "closures" created by anonymous types only include final variables and arguments, but will allow write access to any member of the parent class;
a few more.
On the other side, you have the JDK, with...
its load of inconsistencies and overengineering;
monolithic class hierarchies;
meaningless base exceptions like IOException (though other frameworks have similar exception hierarchies);
sluggish responsiveness even with Swing;
a few more.
My question is, do you think that, if either one (Java or the JDK) was taken alone, and the other was dropped in favor of something else, the new combination would be better?
For instance, if you could use the C# syntax with the JDK (adapting get*/set* methods into properties, and interfaces with only one method into delegates), or the Java syntax with the .NET Framework (doing the inverse transformations), would things get better in your opinion?