プログラミングが不要になることはあるのか?

ITProの大森さんの記事を読んで「プログラミングが不要になることはあるのか」というのがあったので久しぶりに考えてみた。
ま、結論から言えば、基本的には「プログラミングが不要になることはない」のだけど。


で、つまりどういうことかと。
プログラムの対象になる要求というのは「非論理的」です。で、プログラムというのは「論理的」です。
で、プログラミングというのは「非論理的」なものを「論理的」に変換する作業です。
「非論理的」なものを「論理的」なものに変換することを「論理的」に行うことはできません。「非論理的」なものは「論理的」に記述できません。「論理的」に記述できるなら、それは「非論理的」じゃないからです。
そういうことをいうなら、「非論理的」なものが存在するかどうか、ほんとに要求が「非論理的」なものなのかということを証明する必要があるかもしれません。
でも、それは無理です。
「非論理的なものの存在を論理的に証明することが可能であるとはいえない」ということは論理的に証明できるはずですけど。
まあ、証明どうこうの前に、要求が「非論理的」であることは日々の作業で実感してることだとは思いますが。


具体的に、「非論理的」というのがどういうことかというと、状態の重ね合わせが存在するということです。
代表的なのは、「スキ」と「キライ」が同時に存在したりすることです。
ここで、suki変数とkirai変数を用意してそれぞれの度合いを保存しておけばイケそうな気がするのですが、「非論理的」というのはそんなに甘くありません。「少しスキ」と「少しキライ」と「ダイスキ」と「ダイキライ」も同時に存在したりするわけです。さらに「友達としてスキ」だけど「異性としてはスキじゃない」が同時に存在したりもするわけです。
そう、「キライ」と「スキじゃない」も別のものとして扱う必要があります。
あぁ、非論理的。
もし無理やり論理的に記述したとしても、記述量・計算量が爆発的に増えてしまいます。


要するに、「論理的」な記述をどこまで並べていったとしても、「非論理的」になることはないわけです。
「論理的」なプログラムでは「非論理的」な対象をあらわせないのです。
ということで、論理的なコンピュータでは非論理的なものをそのまま処理することはできないということで、プログラミング不要になることはないってことになります。