Antworten:
Ich denke, das "Papier" ist eigentlich die Präsentation " Design Patterns in Dynamic Languages" , die auch in Wikipedia für diesen speziellen Anspruch zitiert wird :
Die Entwurfsmuster sind möglicherweise nur ein Zeichen für einige fehlende Funktionen einer bestimmten Programmiersprache (z. B. Java oder C ++). Peter Norvig zeigt, dass 16 der 23 Muster im Design Patterns-Buch (das sich hauptsächlich auf C ++ konzentriert) in Lisp oder Dylan vereinfacht oder eliminiert werden (über direkte Sprachunterstützung).
In ähnlicher Weise beschreibt Paul Graham Designmuster in Revenge of the Nerds als "den menschlichen Compiler bei der Arbeit" :
Diese Praxis ist nicht nur üblich, sondern auch institutionalisiert. Zum Beispiel hört man in der OO-Welt viel über "Muster". Ich frage mich, ob diese Muster nicht manchmal ein Beweis dafür sind, dass Fall (c), der menschliche Compiler, am Werk ist. Wenn ich Muster in meinen Programmen sehe, betrachte ich dies als Zeichen von Problemen. Die Form eines Programms sollte nur das Problem widerspiegeln, das es lösen muss. Jede andere Regelmäßigkeit im Code ist zumindest für mich ein Zeichen dafür, dass ich Abstraktionen verwende, die nicht leistungsfähig genug sind - oft generiere ich die Erweiterungen eines Makros, das ich schreiben muss, von Hand.
Beide Zitate bilden die Grundlage für die Diskussion über fehlende Sprachfunktionen von Designmustern in Wards Wiki.