「コンパイラのバグだ!」

いぜん、私はこの言葉を何度か発言した事があります。しかし、今は、この言葉を発す事はまずありません。

若輩者だった私はこの手の言葉をヒステリックに叫んでいました。

  • 「MSのバグだ!」
  • 「ライブラリのバグだ!」
  • コンパイラのバグだ!」

しかし、全てバグではありませんでした。私の低い技術力のせいで招いた単純なプログラミングミスが原因でした。

数年まえ、画像を表示するプログラムを組む事がありました。しかし、表示する時に画面の一部が崩れてしまいます。どうやらファイルのIO処理が問題の様です。
何にでも人のせいや、マシンのせいにしていた私は、「MSコンパイラのバグだ!」っとヒステリックに叫ぶだけでなにもしませんでした。
投げ出した私とは対照的に、もう一人の高レベルのプログラマは2時間ほどで問題を突き止めました。
原因は、バイナリファイルを扱うには、ファイルのIOメソッドにバイナリオプションを付ける必要があったのです。このオプションを付けないとファイルを文字ファイルと認識し、一部が変わってしまいます。
その事が原因で画像の一部が壊れていたのです。
もの凄く恥ずかしく悔しかったです。



今はコンパイラのバグだ!」と叫ぶ事はありません。
なぜなら、今まで、数万人が使い、数億以上コンパイルを繰り返したアルゴリズムに、バグが入り込む余地などないと思っているからです。*1

もし、あなたが「コンパイラのバグだ!」と思ってもまず自分を疑いましょう。99.99…%原因は己にあるはずですから。


ちなみに、エドガー・ダイクストラって人は「バグと呼ぶなミスと呼べ」って言ってます。

*1:VBなんかでは、マレにあるらしいですか・・・