今日の雑記

生きることでいっぱいいっぱい

脳内補間を断ち切る術ってないものかしら?

昨日の id:DK_alpha さんのコメントより。(無断転載ゴメンね)

そんなもんですよね。プログラム。
簡単なミスでも思い込みによって発見できないってよくあります。

ある本(たしか"プログラミング作法"だった気が)で読んだと思うのですが、プログラミング言語の発達というのは、「プログラマが犯す(単純な)ミスを如何に検知するか」ということだと書いてました。
まあ実際のところ、現在ではそれが「プログラミング言語」というより「開発環境」の話になると思うのだけれど、例えば IDE 環境による「コードアシスト機能」であったり、えーっと、なんだろう?他にそれらしいのあったっけ?<それで終わりかよ
今自宅開発でメインで使ってる D 言語に関しても、コンパイル時にかなりチェックしてくれて、それなりに事故を未然に防ぐことはできるんだけど、それでもやっぱり昨日のようなことは起こるわけで。
あと、これはボク一人の思い込みかもしれないけど、プログラムのデバッグ作業って、出版物の校正に似た部分があって、例えば本なら、誤字脱字、記述間違いがないかというのを読んでチェックするわけだけど、自分で書いたものや自分が関わってる文章って、わりと脳内で補間しがちで、「実は間違ってるんだけど合ってるように感じて読み進めてしまう現象」があるんです(少なくともボクには)。
これはプログラムも似たようなことがあって、それが上記コメントの「簡単なミスでも思い込みによって発見できないってよくあります。」という部分に当てはまるんですけど、昨日の例なら、


for(int j = 0; j < cursole_enemy_ang.length; i++)
となってる部分は、「この辺が明らかに怪しい」と思ってなかったら、例え上記のように記述されていたとしても、

for(int j = 0; j < cursole_enemy_ang.length; j++)
と脳内で読んでしまっているんですよね。この手のバグが一番怖いんです。
まあ、この手の原因不明の(とその時は勝手に思っている)バグは、一晩置いて翌日まっさらな頭で臨むに限りますな。今回の場合もそうだったし。