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 noooo, not my favorite language, plzzz!... but close =)
@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.