Я думаю, что «бумага» - это на самом деле презентация « Шаблоны проектирования в динамических языках» , которая также упоминается в Википедии для этого конкретного утверждения:
Шаблоны проектирования могут быть просто признаком некоторых недостающих возможностей данного языка программирования (например, Java или C ++). Питер Норвиг показывает, что 16 из 23 шаблонов в книге «Шаблоны проектирования» (которая в основном посвящена C ++) упрощены или исключены (с помощью прямой языковой поддержки) в Лиспе или Дилане.
Подобным образом, Пол Грэм описывает шаблоны проектирования как «человека-компилятора на работе» в « Мести полудурков» :
Эта практика не только распространена, но и институционализирована. Например, в ОО-мире вы много слышите о «шаблонах». Интересно, не являются ли эти шаблоны иногда свидетельством случая (c), человеческого компилятора, на работе. Когда я вижу шаблоны в своих программах, я считаю это признаком проблемы. Форма программы должна отражать только ту проблему, которую нужно решить. Любая другая закономерность в коде является признаком, по крайней мере для меня, того, что я использую недостаточно мощные абстракции - часто я вручную генерирую расширения некоторого макроса, который мне нужно написать.
Обе цитаты лежат в основе обсуждения «Не хватает языковых особенностей шаблонов проектирования» в Wiki Ward.