>>14
What languages do you know, other than Java? I'm not trying to make a point by this, I am just curious.
Ridiculous verbosity: Try programming in Assembly/C/C++ to gain some perspective about what verbosity means, java doesn't force design patterns aside from OOP(which is widely considered to be a good thing outside of a few cults; even lispers tried to implement it) and checked exceptions(which are often lame).
It doesn't matter whether or not OOP is a good thing, Java does it badly anyway.
As for verbosity: even for what it is, Java is still verbose. If it had type inference, closures, and lambda abstractions, and a less verbose syntax, it would be more tolerable.
Even better, add parametric polymorphism and first-class functions. Then macros.
broken ``static'' type system: How so? Things declared static are static, ooo so broken.
Learn what static typing is. If you had programmed in a language that implements static typing well (not Java, Sepples or C#) you'd know that it can be a lot better than it is in Java.
equals() for string comparison: Makes perfect sense. All objects use equals, String is an object. There would be a shitstorm if string was the only object to overload ==.
equals() for string comparison is still stupid. If strings are immutable, they should have value semantics (like in C#).
trying to pretend fundamental problems with the language don't exist: stop trying to pretend you know how to do anything past writing a few toy programs in basic
http://www.paulgraham.com/disagree.html (It may be Paul Graham, but read it anyway)