Orthogonality
直交的(orthogonal)なプログラミング言語とは, 少数のオペレータを多数の様々な方法で結合させることで, 多様な意味が表現できるもののことだ. おもちゃのブロックは極めて直交的だが,プラモデルはほとんど直交的でない.
On Lisp, Paul Graham
特定の機能体系内で例外的な振る舞いを行う要素の多寡を指し示す慣用的な用語である。どの要素も本質的には同じように振る舞うならば直交性が高い、要素毎の癖が強いならば直交性が低い、と表現する。機能の直交性が高いということは、一つの要素について知れば他の要素でも類推が効くということである。したがって利用者にとっては、直交性の高さはその体系の使い勝手が良いことを意味する。
出来るだけコンパクトで抽象性の高い、少数のモジュールを好きなように組み合わせることで、自分の欲しい機能を無駄なく柔軟に表現することができるツールは、結果として拡張性の高いものになると同時に学習コストも低くなります。
ノードベースのツールの多くは総じて直交性が高いといえます。Houdiniもその一例です。それでも個々の機能の粒度が高く「名は体を表す」とは言えない複雑奇怪なノードを工夫して組み合わせる場面が多いようにも感じます。