第35回 
エラーが出ると嬉しくなる

 

エラーが嬉しい

 

 プログラミングのデバッグの話をこのまえ書いたが、最初に出るエラーは、シンタックスエラーといって、文法的に間違っているものだ。これは、コンピュータに指摘されると、すぐに直せる。つまり、単純なタイピングミスがほとんどで、ワープロでスペルミスを指摘されるのに似ている。このエラーに対しては、「はいはい、ご指摘ごもっとも」と、苦笑いして修正できる。叱られるのが嬉しい、みたいな感じだ。
 シンタックスエラーがなくなったあとに出るエラーは、ちょっと難しくなる。コンピュータとしては、ここが変だ、と指摘してくれるのだが、そこを見ても、間違いがわからない。これは、別の箇所に間違いがあって、計算の過程で矛盾が起きる段階でコンピュータがエラーを出すためである。それでも、慣れてくると、ミスのパターンが読めてきて、対処もさほど難しくない。
 一番難しいのは、エラーが出なくなってからである。つまり、プログラムとして間違いがなく、コンピュータはちゃんと計算をするのに、出てくる結果が明らかに間違っている、という場合である。
 エラーならざるエラーではあるが、間違いにはちがいない。しかも、どこが間違っているのか、コンピュータは教えてくれない。コンピュータにとっては間違いでもなんでもない。ちゃんと言われたとおりに仕事をしているのだ。
 この状況は、企業でいうと、社員が命令どおりに働いているのに、全体として収益が上がらず赤字を出してしまうようなもので、「何が間違っているんだ?」と頭を抱えることになり、厳しい状況といえる。
 こんなときに、誰かが、そういえば、あそこが変ですよね、と指摘すると、藁をも掴む思いで、そこを調べることになる。どこかで小さなエラーがたまたま出ると、そこを足掛かりに、問題を考えることができる。つまり、「エラーが嬉しい」という心境になるのだ。
 研究でも、こういったことは頻繁にある。自分がやっていることが正しいのか間違っているのか、誰も教えてくれない。参考にすべき情報もない。そんなとき、実験でちょっと予想外の結果が出ると、なにかそこに手掛かりがありそうな予感がして、非常に嬉しくなる。なにを考えれば良いかわからないときというのは、なんでも良いから問題を見つけたい。叱られれば、そこを考えて対処すれば良い。間違っているなら、間違っているという確かさが目の前にあるからだ。そんな小さな確かさでも、登るための足掛かりとなる。

 

間違いでも真実

 

 どうも結果が思わしくない。何が間違っているか、はっきりとはわからないが、なんか変な感じだ。こういうときはどうすれば良いかというと、とにかく、条件をいろいろ変えて試してみる。極端なデータを入力して結果がどうなるかを観察する。そういった試行を繰り返すのだが、そんなとき、運良くエラーが出ると、一つ確かなものを掴んだことに等しい。では、これならばどうか、とその近辺を探っていく。本当に、ゲームのような感覚である。こんなふうにして、問題の位置がだんだん絞られてくるのだ。
 次には、仮説を立て、試行した極端な例とエラーが、その仮説で説明できるかを考える。そして、ついにはここが間違っているという最後の砦を落とすことができるのである。
 なんだか、もの凄く抽象的な話をしているけれど、プログラミングだけに限る話ではない。問題を解決するときの平均なプロセスといえる。
 仕事でも、人生でも、ようは降り掛かる問題をいかに解決していくか、という作業の繰り返しだ。ある人は問題から逃げる。これも、その人にとっての解決である。しかし、そういう人は逃げ続けなければならない。一度きちんと解決をした人は、同じ問題に遭遇したときに対処できる。このようにして、スキルが上がっていき、その後得をするだろう。ただ、問題はしだいに難しくなるから、どこまでもスキルが上がり続けるわけではない。

 

氷点下の庭園で毎日遊ぶ

 

 気温が低い日が続いているが、そろそろ冬のピークも過ぎた。これで終わりならば、今年の冬は雪が少なかったことになりそう。庭園鉄道で除雪車の出動回数も三回だけだ。
 でも、僕がいない日に、奥様(あえて敬称)は、雪道でスタックし、ロードサービスを呼んだそうだ。彼女には過酷な冬だったということ。
 庭園鉄道は、ほぼ毎日運行した。大きい機関車を出すのが面倒なときは、小さい機関車を走らせた。これは人は乗れないけれど、火でお湯を沸かし蒸気で走らせるものだ。冬は煙突から出る蒸気が白く見えて楽しい。

 

庭園鉄道は六分の一の縮尺だから、自然界は六倍に大きく見える。雪は深くなり、人は身長十メートルの巨人になる。