Risposte:
Penso che il "documento" sia in realtà la presentazione dei modelli di design in lingue dinamiche , citata anche in Wikipedia per questa affermazione particolare:
I modelli di progettazione possono essere solo un segno di alcune caratteristiche mancanti di un determinato linguaggio di programmazione (Java o C ++ per esempio). Peter Norvig dimostra che 16 dei 23 pattern nel libro Design Patterns (che si concentra principalmente sul C ++) sono semplificati o eliminati (tramite il supporto diretto del linguaggio) in Lisp o Dylan.
Allo stesso modo, Paul Graham descrive i modelli di design come "il compilatore umano al lavoro" in Revenge of the Nerds :
Questa pratica non è solo comune, ma istituzionalizzata. Ad esempio, nel mondo OO si sente molto parlare di "schemi". Mi chiedo se questi schemi a volte non sono la prova del caso (c), il compilatore umano, al lavoro. Quando vedo schemi nei miei programmi, lo considero un segnale di difficoltà. La forma di un programma dovrebbe riflettere solo il problema che deve risolvere. Qualsiasi altra regolarità nel codice è un segno, almeno per me, che sto usando astrazioni che non sono abbastanza potenti - spesso che sto generando a mano le espansioni di alcune macro che devo scrivere.
Entrambe le citazioni sono alla base della discussione di Are Design Patterns Missing Language Features sul Wiki di Ward.