Probably also a problem that exists because of how programmers are taught. Using Java and being presented with the patterns as solutions to what Java does.