戻る バグは死なず   (プログラム)


2016年4月、 JAXA (宇宙航空研究開発機構) は、 2月に打ち上げたX線天文衛星 「ひとみ」 の失敗を発表した。 太陽電池パドルがちぎれ飛んで分離したために、 運用を断念したものであるが、 その原因は初歩的なヒューマンエラー (人為ミス)、 すなわち、 プログラミングミスであったと云う。 プログラムのバグである。  多数の研究者たちの汗と涙と、 膨大な資金の結晶が、 たった1匹の小さな虫(バグ : Bug)によって、 一瞬にして消滅したのであった。

 ああ、 可哀想な 「ひとみ」 ちゃん。 自分は何も悪くはないのに、 その乗り物のネジ1本が間違っていたために、 果実はもとより、 花びら一枚開かぬままに、 美しい若い命は、 宇宙の暗黒の中に溶け入った。 これは運命なのか。 諸行無常・・・。

コンピュータープログラムの誤りや欠陥を 「バグ」(bug) と云う。 「虫」 の意味である。  犬の一種で、 中国原産で鼻が潰れたような愛玩用の小犬でバグと呼ばれるものがあるが、 あれは正確にはパグ (pug) であって、 それとは関係ない。

 何故プログラムミスをバグと呼ぶのかについては、 色々な説があって、 明らかではない。 しかし、 グレース・ホッパー女史 (COBOLの開発者、 海軍軍人) が、 ハーバード大学で MARKU のプロジェクトで働いていた1947年、 そのリレーに本物の虫 (蛾) が挟まってコンピューターが不調になった時、 作業日誌にその蛾をテープで貼り付けて 「本物の虫がバグとして発見された最初の例」 と書き記したと云う伝説がある。 だから、 少なくとも、 それ以前からコンピューターの不具合をバグと呼んでいた事が知られると云う。

人間は必ず誤りを起こすものである。 だから、 パグを絶無にすることは出来ない。 出来るだけ少なくするだけである。
 よろず、 事故は確率の問題である。 安全とは、 事故発生確率が極めて小さいことを言うに過ぎない。 (これが確率的安全評価 (PSA) と言われるものである。 PSA とは前立腺癌検査のことでもある。 何だか物凄い皮肉)
 それならば、 その小さい確率を虱潰しに潰して行けばよいのだが、 それが容易なことではない。 どこにその虫が居るかが判らないからである。
 何事によらず、 有ることは示されるが、 無いことを証明することは極めて困難だから。 (これは 「悪魔の証明」 (probatio diabolica) と云われるものである)
 2016年夏、 大日本除虫菊のキンチョウ虫コナーズのCMで、 高畑淳子が喋っている。 「虫が入ってくることは見えても、 入って来んのは見えんもん」
 これは真理だ。 プログラムの虫も、 出て来てトラブルを起こせば存在が判るが、 何事もなければ居るかどうかも判らない。
 詠み人知らずの格言 バグが絶対存在しないことを立証する方法はない

かくて、 バグがあること、 欠陥があることの前提で、 事は進められることになる。 プログラムにおける 「アルファ版」 「ベータ版」 は、 バグがあるかも知れぬけれど、 一般消費者に試用してもらい、 その報告によってバグを修正して行こうと云うものである。  しかし、 いつまでたっても、 これぞ完璧な正式版と云うものは出来ない。 延々として 「セキュリティホールの修正」 などと云うお知らせが続くことになる。

 そしてまた、 「寝ているバグは起こさない」 と云う格言もある。 現実は、 偶然にうまくいっているだけであっても、 それを完全無欠に修正しようとすると、 かえってムチャクチャにしてしまう恐れがあるから、 その危険を犯す必要はないと云うものである。

 他方、 「コンピューターは間違いを起こさない。 間違えるのはいつも人間」 と言う言葉がある。 1968年に公開されたSF映画 「2001年、 宇宙の旅」 の中で、 史上最高の人工知能 HAL9000 型コンピューターが言うセリフである。 コンピューターはプログラムが間違っていれば、 その誤りのままに忠実に動くのみである。

 人間は本質的に間違いを起こすものである。 ミスしない人間などいない。 間違いを起こさないためには、人間を止めねばならない。  だから、 バグを責めても何にもならない。 ミスは責めるものではなく、 どうすれば少なくなるかを一緒に考えるものである。 まして、 事故や不具合が起きるからと云って、 その仕事、 そのプロジェクトを止めてしまうのは、 本末転倒の極みである。

長島茂雄の退団演説 「巨人軍は永遠なり」 の真似をすれば 「バグは永遠なり」 ダクラス・マッカーサーの退任演説 「老兵は死なず、ただ消え去るのみ」(old soldiers never die, but fade away) の真似をすれば、 「バグは死なず、 ただ少なくするのみ」

考えて見れば、 間違いを起こすのは人間ばかりではない。 バクは人の世の事だけではない。 自然界もバグを起こす。 遺伝子プログラムもバグを起こす。 多くの場合、 そのバグは遺伝子病を引き起こすが、 たまには良い方へ作用し、 積もり積もって動物を進化させ、 遂には人間までも作り上げたのだ。



情報処理概論 に戻る   情報夜話 に戻る   戻る