Odpowiedzi:
Myślę, że „papier” to tak naprawdę prezentacja wzorców projektowych w dynamicznych językach , cytowana również w Wikipedii w związku z tym konkretnym roszczeniem:
Wzorce projektowe mogą być jedynie znakiem niektórych brakujących funkcji danego języka programowania (na przykład Java lub C ++). Peter Norvig pokazuje, że 16 z 23 wzorców w książce Design Patterns (która skupia się głównie na C ++) jest uproszczonych lub wyeliminowanych (poprzez bezpośrednie wsparcie językowe) w Lisp lub Dylan.
W podobny sposób Paul Graham opisuje wzorce projektowe jako „ludzki kompilator w pracy” w Revenge of the Nerds :
Ta praktyka jest nie tylko powszechna, ale zinstytucjonalizowana. Na przykład w świecie OO słyszysz sporo o „wzorach”. Zastanawiam się, czy te wzorce nie są czasem dowodem na przypadek (c), ludzkiego kompilatora, w pracy. Kiedy widzę wzorce w moich programach, uważam to za oznakę kłopotów. Kształt programu powinien odzwierciedlać tylko problem, który musi rozwiązać. Każda inna prawidłowość w kodzie jest dla mnie znakiem, że przynajmniej używam abstrakcji, które nie są wystarczająco potężne - często generuję ręcznie rozszerzenia niektórych makr, które muszę napisać.
Oba cytaty są podstawą dyskusji na temat brakujących cech językowych Are Design Patterns na Wiki Warda.