Десятое правило ГринспенаДесятое правило Гринспена (англ. Greenspun's Tenth Rule) — афоризм из области программирования, гласящий:[1][2]
ПроисхождениеПравило было сформулировано примерно в 1993 году Филипом Гринспеном[англ.]. Хотя оно известно как «десятое», предшествующих ему правил не существует. Название сам Гринспен объяснял так:[3]
ЗначениеСмысл правила в том, что программисты, ограниченные низкоуровневыми языками вроде Си, преодолевают ограничения языка путём введения в текст программ аналогов свойств, присущих более выразительным языкам вроде Лиспа. Уточнение МоррисаВпоследствии хакер Роберт Моррис уточнил:[4]
Уточнение может рассматриваться в качестве комментария к сложности создания эффективной реализации языка Common Lisp или просто как шутливое описание работы функции eval[англ.] в Лиспе. Дополнение о Прологе
Эта формулировка[5] отражает тот факт, что программы на Прологе содержат островки в стиле Лиспа, а программы на Лиспе — островки в стиле Пролога. Дополнение об ЭрлангеС распространением распределённого программирования и популяризацией идей, реализованных в языке Erlang, Роберт Вирдинг предложил такой вариант:[6]
Эту поправку также называют следствием Армстронга. ОбобщениеПравило часто варьируется путём замены слов «Common Lisp» на любимый функциональный язык говорящего (например, Scheme или Haskell). Можно обобщить, что:
Примечания
|