狂信的なプログラミング言語支持者批判

どうも最近目も当てられないのでちょっとだけ書いておく。

特定のプログラミング言語を盲目的に持ち上げるのは辞めよう。

広義的に言語支持者と言えば、それなりに合理的な理由を持っている者もいる。そういう人達を批判する理由はないし、そういう立場ではないことは承知である。

しかし、狂信的に言語を持ち上げ、人に押し付け、自分に酔っている人間は、本当に見てられない。それは中二病にも通ずるところがある。人からの否定的な指摘を忌み嫌い、言語に宿ると主張する超人的な力を自分の力を過信する。そんな事では新しいことは見いだせないし、言語開発者にも成り得ないであろう!

僕だって好きな言語はあるし、嫌いな言語もある。だけど、その素晴らしさを紙に書いて壁に貼ろうとは思わないし、正直言って、その言語が世界を大きく変えるとも思えない。だから、とてもじゃないけれど初心者に向かってその言語を押し付けたり、プログラミングを知らないフォロワーの前で偏執的に言語の愛を語ったりすることはしないのだ。 (少なくとも、今は)嫌いな言語の好きなところもあるし、好きな言語の嫌いなところもあるからだ。

これは至極どうでもよいことなのだが、カリー=ハワード同型対応という言葉がある。 型と論理の対応だ。Haskellにundefined :: forall a. aというものがあるのだが、これってやばくないだろうか?と思っていた所、やはりHaskellの型システムというのはinconsistentな論理体型ということを知った。狂信的な支持者は、彼らが特に支持する型がinconsistent logic systemと対応するという事実を、どう受け止めるのであろうか?そしてそういう人達に限って好むlet fix f = f (fix f)というコード、これの論理を考えてみてどう思うのだろうか? (fix idとしさえすれば良いが)信心が深いほど自己矛盾が生じてはないだろうか?