プログラミングとカント

朝から空気がざわめいていたが降らないと判断してノートPCを持ち出した。コーヒー代を払ってから、コーヒーチケットを買った事を思い出した。チケットを出せば良かった。でも出さなくて良かったかもしれない。よく考えたら隣の店のだった。

 

佐藤康弘のカントの純粋理性批判の解説を読むと、どうも直感と悟性のお話がオブジェクト指向を使ってデータ層から適合するデータ形式を取り出してモデル層でデータを加工する話に見えてしまう。データ層はあくまでコンピュータ側から見た抽象的な概念であって、実際の物理的な実在とは異なると思うと、そういったインターフェイスの向こう側がまさに決して到達することのできない物自体のように見えてくる。データを取得する入り口が直感で、データの形式が、直感が受け取る形式で、悟性がモデル層、悟性において加工したオブジェクトのクラスがカテゴリ(もしくは図式?)、構成力はビジネスモジュールのようなものだろうか。

そうすると、純粋理性批判において批判していること、つまり理性の限界とはこのようなものだ。実際のデータなしに理想としてクラスだけを考えてオブジェクトの連関を考えていっても、それを究極的につきつめてモデルを作っていくと必ず相互に矛盾するような設計ができてしまう(アンチノミー)。これをめぐって超越論的弁証論がなされるのである。。さて、このアンチノミーにおいて合理的神学、合理的宇宙論、合理的心理学等が問われるのであるが、特に、この合理的心理学において「私」への確信つまりデカルトの「我あり」、これはカントでは直感においてかならず関わってくるが悟性の概念の一つである。つまり、モデル層の1機能としてかならずデータを検閲する機能があって、それが「我あり」なのであるということだとすると、これはデータのチェック機能を担うことになる。

で、理性だけではアンチノミーに陥ってしまう我々だが、それでも我々はプログラミングを実践していかなければならないのだが、その実践方法としてカントの実践理性批判がある(ほんとか)。プログラミングは実践的であり、厳密な形式云々を言っていてもはじまらない。しかし、そこで重要になるのはプログラミングの目的ではなくむしろ規約のほうだ(道徳)といってるのがカントの言い分である(信じないでください)。

この規約は、いわばコーディングルールや設計パターンやDRY規則のようなものであるが、各自がおのれの規約を守っているだけではそれは道徳とはなりえない、この状態のことを格率と呼ぶ。では格率が道徳へと昇華するためにはどうすれば良いのか、これが有名なカントの道徳法則である。

「君の意志の格率が、常に同時に普遍的立法の原理となり得るように行為せよ。」

つまり、「おまえが守っているプログラミングのやり方はたとえどのプログラマがやっても意味のあるやり方にしろ。」とカント先生はおっしゃっている。なんのためにとかは聞くな、これは定言命令だから!(えらい人がやれと言ったからみたいな。。)

そう、そうやってコードを書く事は決してプログラマを幸福にするとは約束していない。けれど、その規則を守ったプログラマは幸福であるべきだ。だって善いコードってそれをしたプログラムが幸せにならなければそもそも善いとはいわないじゃないか!

このようにして、普遍的規約を守りかつプログラミングをしたものに幸せを呼ぶものの究極のコーディングスタイルとして「最高善」が要請される。つまりプログラミングの世界には、ディスプレイの中に神(論理的神)はいないかもしれないけど、究極の善いコードを体現する神(倫理的神)がいるのかもしれないのだ。我々の心の中にはな。。

三批判書の最後、「判断力批判」が美と有機体について、つまりコードにそなわる美についての論であることはもはや察しがつくだろう。

IMG_0024