In the late 2000s I was a Java coder and there was a whole culture of obsession with design patterns, overengineering object hierarchies, "Kingdom of Nouns" (http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html)
I hear a lot that the Java landscape has changed a lot in recent years, especially the language itself and the JVM. But is the culture of encouraging overengineering still there or its been relegated to the past?