I'd argue that Design Patterns mostly appeared because of Java. Because of people hitting the wall with Java; Java does not allow metaprogramming; Java did not allow class members (it allows instance members); Java does not allow multiple inheritance; Java has a cumbersome and underpowered exception handling system; Java's OOP is really strict and limited; no real functions that can be passed around (not even in Java 8); recursion can't use tail call optimization... etc etc
because of ALL this, then developers had to resort to applying the same workarounds. And such workarounds were collected, tagged, and proposed as
Design Patterns
by the gang of four.But seriously, if the authors write,
"All designs should be as simple as possible. You should start with KISS, YAGNI (...)"
Then they should be looking at alternatives to Java in the first place. It's 2017 and there are other alternatives that even run in the JVM (if this is a requirement).