嫌われプログラミングの代弁者

「何で頭ごなしに嫌う人間が居るのか」を色々考える

因果推論に関する教示 5

「負債」で無いもの

  • 一つだけの関数の「実行」と、
  • その前後に有る「準備」と「確認」

からなる「テスト」は、まさか「負債」呼ばわりはされないと思います。

「負債」呼ばわりされるコードとは、それとは様相を異にする物でなければならないと、思います。

 

「負債」とは?

以下、「『』」で囲われた言葉は、前出の

  • 「ジューディア・パール,ダナ・マッケンジー. 因果推論の科学 「なぜ?」の問いにどう答えるか (Japanese Edition) 文藝春秋社」

に書いてある用語とします。

「負債」とは、

  • 『因果ダイアグラム』*1で表現される、
  • 『原因』と『結果』の連なりで、
  • 『原因』から『結果』を推論するのは比較的容易だが、逆は非常に困難であるという性質から、
  • 逆を強いられる人間にしてみると、正しく「負債」にしか見えない

ものだと思います。

具体的には、現時点では2種類思いつきましたので、述べます。

 

「負債」の例

  1.  「テスト」より、より負債的な(実際の規模の)プログラムでは、
    複数の関数が、『因果ダイアグラム』の様に、「絡み合い」ながら呼び出され、しかしプログラム言語は上から下へ、並べて書くより無いので、その「絡み合い」は明記されておらず、
    解読しようとする人間が手間暇かけて、多量の誤解含みで読み解く必要が有る。

  2.  プログラムを書く『原因』と、
    『結果』としてのプログラム
    に関する、『因果ダイアログ』は文書化される事が稀で、
    『結果』としてのプログラムのみから、『原因』を導き出す事が禁止的に困難。
    なので、(そこまで文書化されていない通常の)ブログラムは「負債」に他ならない!

という2種類は(少なくとも)有ると思います。

 

結論

これからも「因果推論に関する教示」を周りの人にされる事でプログラミングが嫌いになる人は存在し続けることでしょう。 

 

*1:プログラムでは普通「束構造(ラティス構造)のグラフ」(束 (束論) Wikipedia 日本語版)の様にダイアグラムに上限と下限を持つ事が多い。