Десятое правило Гринспена

Десятое правило Гринспена

Десятое правило Гринспена (англ. Greenspun's Tenth Rule) — афоризм из области программирования, гласящий:[1][2]

Любая достаточно сложная программа на Си или Фортране содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Common Lisp.

Содержание

Происхождение

Правило было сформулировано примерно в 1993 году Филипом Гринспеном. Хотя оно известно как «десятое», предшествующих ему правил не существует. Название сам Гринспен объяснял так:[3]

Просто я пытался дать правилу запоминающееся имя.

Значение

Смысл правила в том, что программисты, ограниченные низкоуровневыми языками вроде Си, преодолевают ограничения языка путём введения в текст программ аналогов свойств, присущих более выразительным языкам вроде Лиспа.

Уточнение Морриса

Впоследствии хакер Роберт Моррис уточнил:[4]

…в том числе и сам Common Lisp.

Уточнение может рассматриваться в качестве комментария к сложности создания эффективной реализации языка Common Lisp или просто как шутливое описание работы функции eval в Лиспе.

Дополнение о Прологе

Любая достаточно сложная программа на Лиспе наверняка содержит медленную реализацию половины языка Пролог.

Эта формулировка[5] отражает тот факт, что программы на Прологе содержат островки в стиле Лиспа, а программы на Лиспе — островки в стиле Пролога.

Дополнение об Эрланге

С распространением распределённого программирования и популяризацией идей, реализованных в языке Erlang, Роберт Вирдинг предложил такой вариант:[6]

Любая достаточно сложная распределённая программа содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Erlang.

Эту поправку также называют следствием Армстронга.

Обобщение

Правило часто варьируется путём замены слов «Common Lisp» на любимый функциональный язык говорящего (например, Scheme или Haskell). Можно обобщить, что:

Любая достаточно сложная платформа содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины функционального языка.

Примечания


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "Десятое правило Гринспена" в других словарях:

  • Десятое правило Гриспена — Десятое правило Гринспена – известный афоризм из области программирования:[1] Любая достаточно сложная программа на C или Фортране содержит заново написанную, неспецифицированную, глючную и медленную реализацию языка Common Lisp.[2] Смысл правила …   Википедия

  • Common Lisp — Семантика: мультипарадигмальный: объектно ориентированный, функциональный, императивный, метаязык Тип исполнения: компилируемый Появился в: 1984, стандартизирован ANSI в 1994 …   Википедия

  • SLIME — Тип среда разработки на языке Лисп Автор Эрик Марсден Разработчик Люк Горри и Гельмут Эллер Операционная система Linux, Solaris, FreeBSD …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»