ソフトウェア開発を行っていて、テストを行う段階になってくると、決まって「何かエラーが出てるんやけど」とそこのコードを書いた私の所まで言いに来る人が結構多い。
なぜみんなエラーメッセージを見ないのだろうか? 英語で書かれているからだろうか? それとも、メッセージがあまりにも役に立たなかったり、見当違いのことが出力されている事が多いからだろうか?(これは、残念ながら本当のことであるが)
人に指摘された場合だけではなく、自分の書いた部分を試しに何回か実行させて、繰り返し「〜でエラーが発生した」とメッセージが表示されているにもかかわらず、「どこがおかしいんだろう?」とぼんやりソースファイルをスクロールさせながら眺めている人もいるが、そういうのは、正直「本当にエラーを直す気があるのか?」と思ってしまう。
他にも「型が違います」と言うエラーが出てるんだったら、それは何かと何かの型が違うから出ているのだ。当たり前の話だ。だから、型宣言とかそういうところが原因に決まっている。ループの抜ける条件が正しいかどうかを、いくら調べてもしょうがないのだ。
実際には100%そうではない(というか、実行時エラーの場合はほとんどが違う)が、「どこがおかしいんだろう?」といっても、エラーの出たところがおかしいに決まっているのだ。わざわざコンピューターが気を利かせてくれているのに、なぜわざわざ自分が苦労して、既にコンピューターが半分やってくれている作業を、自分で1からやり直すのだろう? 私には理解に苦しむ。
少なくともメッセージで場所が示されていれば、「どこでおかしくなったか」が判るし、直接の原因が示されていれば、「何が原因でおかしくなったか」が判るはずだ。そこから、メッセージに関連する処理・場所の当たりをつけて、修正しなければいけない部分を絞り込んでいかないと、ソースファイルの全てを見ないといけなくなってしまう。そんなことは無理だ。特別な例外を除いて、誰も故意にエラーを出すわけではないのだから、きっとそれは普通に見ただけではいかにも正常な処理をしているように見えることがほとんどなのだ。そうでなければ、あなたが見つける前に最初に作った人が見つけている。そうは思わないか?
この調子だと、実際の開発に入った時には、もっとマヌケな会話を聞かされるような気がしてしょうがない。
エラーが出てどうしても直らない場合は、人に聞いてみるしかない。しかし、「どんなエラー?」と聞いて、「もう一度やってみます」というヤツ(ヤツで十分だ!)の何と多いことか。 それは、私が原因で出ているエラーなのだ。なぜそんなに何度もうっとおしいデバッグ作業を、それもあなたにとっては100%余分な私のせいでさせられている作業をしようとするのだろう? 最初のメッセージをメモして、それを私に伝えれば、後の作業は私がヒイヒイ言いながらエラーを修正をすれば済むではないか。なぜあなたがわざわざ自分の作業時間を割いて、私のためにエラーを見つけようとするのだ? 私には理解できない。