Java's weaknesses as a programming language are so massively compensated for by the amazing IDE tooling it has..
@liamoc While I'm at it, the superficial problem with programming languages: a good set of toy examples can make even the worst design appear sleek. By the time your program is large enough to expose the farce, you've already committed to a monstrosity.
At that point, it's much more efficient to use the fundamental problem to your advantage: invest in tooling and ecosystem.