Both Spring and JavaEE (as compared to J2EE) have gotten a lot better by using annotations for meta-programming. I was about to give up on enterprise Java programming when the clutter/over-engineering started to get better.
Curiously, I'm going to at least partially credit Ruby for introducing the idea of convention over configuration.
Why curiously? RoR hit hit java web development like a ton of bricks, with its convention over configuration and quick start. The end result are java projects like Play and Spring Boot.
I am not really a ruby guy, but I'm very thankful RoR came along and shook things up.
Curiously, I'm going to at least partially credit Ruby for introducing the idea of convention over configuration.