guess the language!
unnecessary indirection,
unnecessary allocation,
unnecessary bound checks,
runtime type information,
overuse of abstractions,
global state in libraries,
long names.
repeated half-assed reference counting,
repeated half-assed implementations of common data structures/algorithms,
tons of fragile platform specific code.
@clacke Hmmm... I though I would miss every garbage collected language with that one, but everyone (you and one other person) seems to offer Java up...
@clacke It probably deserves it, but not what I had in mind... only thing I know about it is that either function definition or function call syntax is terrible.
@clacke Think of it this way: it's not that a bad programmer can do all of those things in that language, it's that a good programmer can't avoid any of those thing.