ソフトウェア開発者は不具合を「bug」(虫)と呼び、不具合を取り除くことを「debug」と呼びます。この言葉の裏には、とても愛されている物語があります。1947年、ハーバードの巨大なコンピューターの中から、本物の蛾が出てきたのです。しかもその蛾は今も、博物館で、ノートに貼りつけられたまま残っています。
物語は本当です。ただ、そこにはSNSであまり語られない、小さな訂正が2つ隠れています。1つは蛾を誰が見つけたか、もう1つは「bug」という言葉の古さです。どちらも、一次資料、つまり蛾が今ある博物館の記録を見ることで解決できます。
リレーの中の蛾
事件の舞台は、ハーバードMark IIという機械でした。電子回路ではなく電気機械式のリレーで動く、巨大な計算機です。Wikipediaによれば、重さは約25ショートトン(23トン)、占める面積は370平方メートル以上でした。加算には0.125秒、乗算には0.75秒かかりました。
Mark IIは、前身のMark Iと比べて、加算で約2.6倍、乗算で約8倍速くなっていました。浮動小数点数をハードウェアでサポートする2番目の機械で、平方根や対数のような演算のための組み込みユニットがあり、それぞれ5〜12秒かかりました。面白い設計上の細部もありました。機械は、一緒にも別々にも動かせる2つのサブコンピューターでできていて、結果を相互にチェックできたのです。1948年3月にバージニア州のダールグレン海軍試験場へ引き渡されました。
1947年9月9日の15時45分ごろ、機械がうまく動かなくなったので、チームが中を調べました。Computerworldが伝えるところでは、蛾はFパネルの70番のリレーの接点の間に挟まっていました。チームは蛾を取り出し、機械の運転日誌にテープで貼りつけました。今日の言葉で言えば、チームは文字どおり機械を「デバッグ」したのです。その横には、こんなメモが書かれました。"First actual case of bug being found." つまり「バグが実際に見つかった最初の事例」。
訂正1: 蛾を見つけたのはグレース・ホッパーではない
この物語は、たいていコンピューターの先駆者グレース・ホッパーと一緒に語られます。ホッパーは1947年に実際にMark IIで働いていて、のちに米国海軍の少将になりました。Wikipediaによれば、彼女はハワード・エイケンやエドマンド・バークリーとともに、機械の製作とプログラミングに携わりました。しかし、Smithsonian国立アメリカ歴史博物館の記録によれば、蛾をノートに貼ったのはMark IIで働いていたエンジニアたちで、ノートは「おそらくホッパーのものではなかった」のです。
ホッパーの本当の貢献は、この物語を何年も語り続けて有名にしたことでした。博物館は、ホッパーとMark IIのチームが、「computer bug」と「debug」という用語を広めるのを助けたと述べています。
日付についても、小さな混乱があります。Computerworldの記事を含む一部の資料は、ノートの日付を1945年と伝えています。一方Smithsonianは、ノートを1947年のものとしていて、Mark II自体も1947年に完成しました。そのため1947年がいちばん確かな日付です。
訂正2: 「bug」という言葉はずっと古かった
メモをもう一度読んでみてください。"first actual case of bug being found." ここでのひねりは、「actual」(実際の)という言葉にあります。エンジニアたちは、すでに不具合のことを「bug」と呼んでいました。今回、初めて本物の虫が見つかったのです。つまりこのメモは、実はエンジニアのユーモアの、小さいけれど長持ちする例でした。
Computerworldは、The Yale Book of Quotationsに基づき、トーマス・エジソンが1878年にセオドア・プスカスへ宛てた手紙で、小さな故障や困難に「Bugs」という言葉を使ったと伝えています。つまり蛾が言葉を発明したのではなく、言葉の最も美しい証拠になったのです。
| 1947年 | 今日 |
|---|---|
| バグ: リレーに挟まった蛾 | バグ: コードで見落とされた1行 |
| デバッグ: 蛾を手で取り除く | デバッグ: デバッガとテスト |
| 不具合の記録: 紙のノート | 不具合の記録: バグトラッキングシステム |
なぜこの物語はこんなに愛されている?
抽象的なものを手で触れられるものにしてくれるからです。「ソフトウェアの不具合」は目に見えないものです。でもテープでノートに貼りつけられた本物の蛾は、誰にでもわかる絵になります。しかも、エンジニア同士の小さな冗談として始まり、80年近く語られ続けています。
Mark IIの技術仕様を今ではほとんど誰も覚えていませんが、あの蛾は誰もが知っています。技術の歴史では、ときに最も小さなものが最も大きな跡を残します。
コードの「バグ」を探していて、本当に虫のように隠れていた不具合に出会ったことはありますか?