自然に、
- プログラム全体に、本質的に位相空間を導入する事が出来なかった。
場合、自然に、
- インターフェース全体や型全体にも、本質的に位相空間を導入する事が出来ない。
となると思います。プログラムの性質は、インターフェースや、型にも引き継がれるからです。
SOLID原則にも影響?
もしそうなら、SOLID原則にもかなりの影響が出ると思います。
以下、SOLID(Wikipedia 日本語版)より。
1.単一責任の原則 (single-responsibility principle)
「一つだけの責務」と言うのは、複数の責務から一つだけの責務への順序関係が無いと、議論が厳しいのでは無いか?
2.開放閉鎖の原則(open/closed principle)
これを実現するのにインターフェース固定とするのが良いと思うが、実際には、インターフェースも変えないとならなくなる場合が普通であり、その原因も、複雑さの順序関係が無いため、「最小のインターフェース」を定義出来ないからでは無いか?
3.リスコフの置換原則(Liskov substitution principle)
継承のフル活用が前提で、共変、反変と同様に活躍場所が限られるのでは無いか?
4.インターフェース分離の原則 (Interface segregation principle)
2.と同様に「特化したインターフェース」を定義出来ないからでは無いか?
5.依存性逆転の原則(dependency inversion principle)
絶対的に正しいと思うが、位相空間を導入出来そうに無い今日、発展性に乏しく、「うんうん、そうだね! その通りだね!」以上の対応にならないのでは無いか?
と言えると思います。逆に一段視座を上げて(解像度が落ちるのを看過した上で)、結果たるプログラムの原因(その原因、その原因、、、、)で見れば、
- 個別議論になる(何かある度に変更が必要になる)代わりに、
- 分類に関して見通しが良くなる
のでは無いかと、推測します。
結論
これからも「藁の混じった議論」を周りの人にされる事でプログラミングが嫌いになる人は存在し続けることでしょう。