分かってきたのは,「コメントを書かなくても良い簡明なコードを書くべき(だから出来るだけコメントを書くな)」という思想には,恐らくさほど合理性がないということだ。
第一に,コメントがなくても解釈できるというのは,いわゆる短期記憶に依存しているだけの可能性が高い。そして,その希望的観測,バイアスをプログラマー本人が排除することはできない。つまり,「コメントを書かなくても良い普遍的に簡明なコード」をプログラマー本人は保証できず,多かれ少なかれ必ず恣意性が入り込む。
そして,何よりやっかいなのは,この手の「一見合理的な話」がウケやすく,問題が露見しにくいことだ。プログラマーにとっては面倒なことをしなくても良いという非常に都合の良い話で,「そうであったらいいな」という希望的観測で支持しがちなのだが,コメントの不備によって保守性が損なわれることが露見するのは当分先なので,例えば雇われなら「問題が起きた時には既に転職している」なんてことが普通に起きうる。
大体,コードが簡明であるべきというのは別にコメントがあるかどうかにかかわらず当然のことで,どんなコメントがあったところで検証可能なことである。もちろん「コメントを書かなくても良いぐらいコードの自明性を保つべき」というのは初級者向けの教えとしては一理あるが,その上で,コメントの書き方は別に考えるべきだろう。
結局,コードとコメントが「簡潔かつ自己完結的に」並行するのが理想ではないかと思う。つまり,コードだけ,コメントだけを抜き出しても無駄なく必要十分な表現になるように書く,ということだ。冒頭で言及したような「コードの不備をコメントで補う」というのは,コードとコメントを限りなく不可分なものとして捉えていることになるが,それよりは疎結合的に,あえて冗長性を持たせつつ,相互検証しやすくするというべきか。