グリーンスパンの第10法則(グリーンスパンのだいじゅうほうそく、)は、プログラミング、特にプログラミング言語界における以下の格言である。
概要 この法則は、プログラミング言語LISPで設計された柔軟性と拡張性には、複雑なコンピュータプログラムを書くために理論的に必要なすべての機能が含まれており、他のプログラミング言語でそのような複雑さを開発および管理するために必要な機能は、LISPで使用される方法の一部分と同等であるという意見を表明している。
他のプログラミング言語は、よりシンプルであると主張しているが、標準的で実績のあるベースとしてLISPに存在する機能のかなりの部分を、プログラマが場当たり的に再発明する必要がある。
これは、複雑で高度に構成可能なサブシステムを含むシステムに対する風刺的な批評として解釈することもできる。グリーンスパンの法則では、ドメイン固有言語用のカスタムインタプリタを組み込むのではなく、LISPのような広く受け入れられている完全な機能を備えた言語を使用することを推奨している。
ポール・グレアムも、この概念の風刺的な性質を強調している。
このルールは1993年頃にによって書かれた。これは彼の第10法則として知られているが、実際には、先行するルールはなく、第10法則のみが存在する。グリーンスパンによると、その理由は次の通りである。
ハッカーのロバート・T・モリスは後に、このルールが適用される「十分に複雑な」プログラムの系を明確にする帰結を宣言した。
この帰結は、多くのCommon Lisp実装(特に1990年代初頭に利用可能だったもの)がコンパイルされたC言語の低水準コアに依存しているという事実を冗談めかして言及している。これはブートストラップ問題を回避しているが、少なくともきれいにセルフホスティングするCommon Lispと比較すると、品質が多少変動する可能性がある。
関連項目
チューリング陥穽 ザウィンスキーの法則
脚注