>>11
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).
brain-dead auto-boxing/unboxing behavior: Works fine for me. Being able to just write <int> would be welcome code sugar, but <Integer> unboxes to int so it avoids any annoying boilerplate.
broken ``static'' type system: How so? Things declared static are static, ooo so broken.
horrific libraries: lol good luck finding a language with better standard libraries, java has some of the best.
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 ==.
lack of multiple inheritance: unnecessary with interfaces
pervasive ENTERPRISE DESIGN PATTERNS: The standard libraries are fairly well designed with a few outliers(Swing being the most prominent), and checked Exceptions(which I already agreed to being gay earlier).
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
shit performance unless you pay up for the server edition:
1) server jvm is free
2) the JVM is one of/if not the fastest virtual machine out there
3) the only difference between the server and client edition is the type of use they are optimized for(server: constantly running services, client: frequently started and stopped programs)
I hope you learned something by reading this post. Valid criticisms would have included but are not limited to: Anonymous classes, checked exceptions, type-erasure, swing bloat, jvm load time and footprint and unpredictable garbage collection. Try again soon!