プログラミングというのは根本的に「思ったことを伝えること」で。そうすると「そうではないもの」、すなわち嘘に塗れたプログラムは良くない、ということになると思う。
よくある例は、「仕様として決められた動作をしないこと」。だけどそんなレベルの話ではない。
「思ったことを伝えている」のではないものとしては、「思ったことが伝わっていない」ケースがまずある。
例えば int count = 0;
はもうその時点で「嘘」だ。カウンターには負の値を想定していないだろう。思ったことが書いてない。それはよくない。
なら unsigned int count = 0;
ならいいかというとそうではない。そんなに int
が大切か? ある最大値までしか記録できないようなデータ構造であることをそんなに主張したいか?
すなわち、「思ってないことを伝えている」ケースがある。これもまた「嘘」だと思う。
嘘を吐かないで済む言語が欲しい。切に願う。
それが出来て初めて「自分の願いを識る段階」に至る。
この話は本当に根が深いので長々とした記事をいつか書こうと思っていたのだけど。とりあえずメモとしてね・・・