「バグ」という言葉はどこから来たのか — 最初のコンピュータバグの話
プログラムがおかしな動きをするとき、私たちはよく「バグがある」と言います。コードを書く人であってもそうでなくても、この言葉はもはや誰もが使う日常語になりました。ところで、なぜよりによって虫を意味する「bug」がソフトウェアのエラーを指すようになったのでしょうか。
ここには、本物の蛾が一匹登場する有名な話があります。そしてその話には、多くの人が知らない意外な事実も隠れています。今日はこの短くて面白い語源の話をたどってみたいと思います。
1947年、コンピュータの中で蛾が発見される #
1947年9月9日、アメリカのハーバード大学には Mark II という巨大なコンピュータがありました。今の私たちが使うコンピュータとはまったく別物でした。部屋一つを埋め尽くすほど大きく、数多くの電磁リレーがカチカチと音を立てながら計算を行う機械でした。
ところがその日、機械がおかしな動きをしました。原因を探していた技術者たちは、リレー70番(relay #70, Panel F)で思いがけないものを発見しました。本物の蛾が一匹、接点の間に挟まっていたのです。電気信号が行き来するはずのところに昆虫が挟まっていたのですから、機械がまともに動くはずがありませんでした。
ログブックにテープで貼られた蛾 #
ここに、このエピソードが伝説になった理由があります。技術者たちはその蛾を取り除いたあと、ただ捨てはしませんでした。作業日誌であるログブックに蛾をテープで貼りつけ、こう書き残しました。
“First actual case of bug being found."(実際に虫が発見された最初の事例)
この短いメモにはジョークが込められています。技術者たちはすでに機械の欠陥を「bug」と呼んでいました。ところが今回は比喩ではなく、文字どおり本物の虫が出てきたので、「今回は本物の bug を見つけた」とウィットを利かせたのです。
このログブックは今もアメリカのスミソニアン博物館に保管されています。蛾が貼られたそのページのままです。コンピュータの歴史で最も有名な昆虫と言ってよいでしょう。
グレース・ホッパーはどう登場するのか #
この話には、ほとんど必ずグレース・ホッパー(Grace Hopper)という名前がついて回ります。ホッパーは初期のコンピュータの歴史で指折りの人物です。のちにアメリカ海軍の提督に上り詰めた数学者でありプログラマーであり、Mark II の作業に参加したチームの一員でした。
ただ、一つ確認しておきたい点があります。よく「ホッパーが蛾を発見した」と知られていますが、これは正確な事実とは言いがたいものです。ログブックを書いたのがホッパー本人だったという根拠ははっきりしていません。それよりも、ホッパーと Mark II チーム全体がこのエピソードを好んで語り、「bug」と「debug」という表現を広く広めたと見るほうが正しいでしょう。
ですからホッパーは、この言葉を作った人物というより、この話を有名にした伝道者に近い存在です。
実は「bug」はそれ以前から存在していました #
さて、この記事の本当に面白いポイントです。多くの人が「1947年の蛾の事件からバグという言葉が生まれた」と思っていますが、これは事実ではありません。
「bug」を機械や装置の欠陥という意味で使った用例は、それよりずっと前から存在していました。発明家のトーマス・エジソンが代表的です。彼は1870年代にはすでに、発明の過程で生じる細かな欠陥や故障を「bug」と呼んでいました。1878年に書いたある手紙では、自分の装置に「bug」を見つけたという表現を冗談まじりに使ってもいます。
言い換えれば、蛾の事件が起きた1947年には、すでに数十年にわたって技術者たちが欠陥を「bug」と呼んできたことになります。ログブックの「実際に虫が発見された最初の事例」というメモが冗談として読めるのも、ここに理由があります。ふだんは比喩としてしか使わなかった言葉が、今回は本物の昆虫として現れたからです。
ですから正確に言えば、蛾の事件は「bug」という言葉を作った出来事ではありません。すでにあった表現をコンピュータの歴史に象徴的に刻みつけたエピソードです。言葉の誕生ではなく、言葉がコンピュータの世界へと渡ってきた瞬間を見せる一場面なのです。
「debug」という言葉もここで定着しました #
エラーを取り除く作業を、私たちは「デバッグ(debugging)」と呼びます。「de-」は何かを取り除くという意味なので、「debug」は文字どおり虫を取り出すという意味になります。
リレーから蛾を取り除いたその行為こそ、最も文字どおりのデバッグだったわけです。「bug」がコンピュータ分野で定着するにつれて、「debug」という相棒の言葉も自然と定着し、今日に至るまであらゆる開発者の日常語として使われています。
コンピュータの歴史の初期の人物たちや、彼らが残した文化に興味があれば、ハッカーとは何かという記事もあわせて読むことをおすすめします。たった一つの言葉にも人々の物語が込められているという点は、その記事でも同じです。
まとめ #
整理するとこうなります。「bug」という言葉は1947年の蛾の事件から生まれたのではなく、それより数十年前から技術者たちが欠陥を呼んでいた表現でした。ただ、ハーバードの Mark II で本物の蛾が発見され、その蛾がログブックにテープで貼られたことで、この言葉はコンピュータの歴史に忘れられない象徴として残ることになったのです。
今日バグに出会ってため息が出るなら、70年前にリレーの間に挟まっていた一匹の蛾を思い浮かべてみてください。少なくともあなたのバグは、取り除くためのピンセットは必要ないはずですから。