I barely see this in the code that I wrote given that I've been writing Java code for ... 8 years? (unless you're writing Spring framework itself)
Can we please drop this?
I would love to agree with that, but I don't think we can. I've been writing Java (well, more recently Scala) for 14+ years, and I still see otherwise great programmers succumb to Java class-itis.
There's nothing in Java forcing you to make deep class hierarchies or leaky abstractions.
Not sure about the GP of my original comment, but I'm not trying to be snide; I just see it everywhere, and it really frustrates me. I don't see it with Scala/C++/python/ruby programmers, so what's the common denominator? The language.
I used Play framework that especially opposes these practices in Java but I felt like language resists such riot attempts.
Having used Clojure for a production environment, I really would have a hard time recommending it for anything but the most trivial application. It's just not mature enough for anything that is going to be worked on by more than a small team and alive for more than a couple years, both in ecosystem & language maturity.
Whenever people point out massive projects done by Fortune 500s, I do recall this and think "yes, Boing can do that, they also used Ada before for the same thing", and "yes Google can mesh 5 different languages within the same company, 2 of them invented there". Does that mean my company can do that?
No. We'd burn our capital stake long before we get to the point of seeing returns versus taking the 'boring' well trodden route that everyone is already experienced in.
Also, what length of time was your Clojure codebase alive for?