G’s(ジーズ)- BASE for GEEK|旧G’s ACADEMY(ジーズアカデミー)公式サイト

【好奇心のオトモ:第1回】なんで不具合のことを「バグ」って言うの?

COLUMN
好奇心のオトモ第1回

こんにちは、G’sスタッフ加納です。

AIがなんでもこなしてくれる時代になりました。でも、その根底にある「コンピュータ」の世界については、意外と知らないまま通り過ぎがち・・・
そこで、コンピュータの世界を、身近な「なんで?」からのぞいてみるコラムをスタートします!

あなた好奇心のオトモに、ぜひご覧ください。


【第1回】なんで不具合のことを「バグ」って言うの?

思った通りに動かない。エラーが出る。画面が真っ白になる。
「あー、バグってるわ~」と、みなさんも一度は聞いたことあるのではないでしょうか?

このプログラムの不具合のことを、「不具合」とか「誤作動」と呼ばずに、なぜ「バグ=虫」と呼ぶのでしょう?
コンピュータの歴史を紐解いてみると、興味深い話に繋がっていきます。

有名な「蛾」の話

「バグの語源」を調べると、ほぼ必ず出てくる逸話があります。

1947年、ハーバード大学。
当時のコンピュータは部屋いっぱいを占めるような巨大な機械で、「Mark II」と呼ばれていました。
今のような半導体チップではなく、リレーという電気仕掛けのスイッチが無数にカチカチ動いて計算する、そういう時代の機械です。

部屋いっぱいを占める初期コンピュータ Harvard Mark I
部屋いっぱいを占めた1940年代のコンピュータ(写真は前身のMark I。後継のMark IIも同じリレー式)。
今のパソコンとは別物です。
「Harvard Mark I Computer」by Daderot, via Wikimedia Commons / CC BY-SA 3.0

ある日、この機械が誤作動を起こしました。

技術者たちが原因を探して中を開けていくと、リレーの接点に、一匹の蛾が挟まって死んでいた。
本物の虫が、文字通り機械を止めていたわけです。

技術者たちはその蛾をピンセットでつまみ出し、作業日誌にセロハンテープで貼り付けました。
そして横にこう書き添えたのです。

First actual case of bug being found. (虫が見つかった、最初の”実際の”ケース)

蛾がテープで貼り付けられた1947年の作業日誌のページ
本物の蛾が貼り付いたまま、今もスミソニアン博物館に残る”最初のバグ”のページ。

ここまでのお話を聞くと、「ああ、実際に虫がいたから、不具合をバグ(虫)と呼ぶようになったのね」と思われがちなのですが・・・
実は、「バグ」の語源は、この事件が発祥ではないのです。

「バグ」という言葉のほうが先にあった?

ポイントは、日誌に書かれた一語にあります。「First actual case」——最初の”実際の”ケース。

なぜわざわざ「実際の」と書いたのでしょう?

それは、書いた本人にとって「バグ」という言葉が、すでに当たり前に通じる言葉だったからです。
日頃から不具合のことを”バグ”と呼んでいるところに、バグの原因に「本物の虫(actual bug)」が出てきたことで、
「お、これが本当のバグだ!」という、エンジニアの内輪のジョークだったわけです。

つまり、実は順番が逆で、虫がいたからバグと呼ぶようになったのではなく、すでにバグという言葉があったということ。

ではその「バグ」という言葉自体はいつからあったのでしょうか。
さかのぼると、あのトーマス・エジソンにたどり着きます。

トーマス・エジソンの肖像
“bug”という言い方は、じつはエジソンの時代からありました。

”蛾”の事件より約70年も前、1878年の手紙で、エジソンは発明がうまく動かない苦労をこう書いています。

「”Bugs”——そうした小さな不具合や困難は、こう呼ばれているのだ」

蛾が見つかるよりずっと前から、技術者たちは「うまくいかない小さな問題」を虫にたとえて呼んでいた。
なぜ虫なのかは諸説ありますが、機械の隙間に入り込んで調子を狂わせる、目に見えないところでこっそり邪魔をする、小さくて厄介なもの。
そのイメージが、いつのまにか、不具合全般を指す言葉になっていったのです。

ただただ「面白い話」だから現代に伝わった

実は、この蛾の話には、もうひとつ尾ひれがついています。

「グレース・ホッパーという女性技術者が発見して、バグという言葉を生んだ」——そう紹介されることがとても多い。
彼女はコンパイラの開発などで知られる、コンピュータ史の偉人です。

コンピュータ技術者グレース・ホッパーの肖像
コンピュータ技術者グレース・ホッパー。バグという言葉を生んだと言われていますが・・・?

ところが、彼女自身が後年、「私は蛾を見つけてもいないし、あの日誌を書いてもいない」と何度も語っています。実際に作業していたのは別の技術者たちで、日誌の筆跡も彼女のものではないことがわかっています。

ではなぜ彼女の話になっているのか。彼女が、このエピソードを45年間、誰よりも面白く語り続けたからです。講演のたびに日誌の写真を持ち歩き、楽しそうに話した。だから、いつのまにか「ホッパーの蛾の話」になった。

正確さが大事なエンジニアリングの世界で、「正しい話」より「面白い話」のほうを語り継いできたというのもまた、面白い話ですよね。

「バグ」という言葉から垣間見える、ものづくりの姿勢

コードを書く側にとって、バグは「失敗」じゃありません。当たり前に出るもの。ベテランのエンジニアでも、書いたコードが一発で完璧に動くほうがめずらしいくらいです。

だから彼らがやっているのは「バグを出さないこと」じゃなくて、「出たバグを、どう見つけて、どう直すか」。この作業をデバッグ(debug=虫をとり除く)と呼びます。

——と、ここまでは少し前までの話。いまはAIがコードをかなり書いてくれるようになって、自分の手でバグを生んでしまうような場面は、正直かなり減りました。

では、バグはどこかに消えたのでしょうか?

・・・実はそんなことはありません。AIが書いたコードにも、コンテキスト不全やロジックの甘さからくるバグは紛れ込みます。
しかも、自分で書いていないぶん「どこが、なぜおかしいのか」がぱっと見えにくいのが、より「厄介な虫」になりました。

つまりAIがコードを書いてくれるようになったことで、むしろ”虫”が紛れ込んでいないか、見極める目(レビュー力)の重要性が増してきたと言えます。

「バグ」という何気ない一言の裏には、うまくいかないことに名前をつけて、にらめっこしながら直していく。
150年前のエジソンの時代から、そういうものづくりの姿勢が垣間見えます。
道具がどれだけ賢くなっても、最後に残るのは、この姿勢のほうなのかもしれませんね!


参考文献

Log Book With Computer Bug | National Museum of American History
https://americanhistory.si.edu/collections/object/nmah_334663

Moth in the machine: Debugging the origins of ‘bug’ | Computerworld
https://www.computerworld.com/article/1537941/moth-in-the-machine-debugging-the-origins-of-bug.html

The Bug in the Computer Bug Story | JSTOR Daily
https://daily.jstor.org/the-bug-in-the-computer-bug-story/

Harvard Mark II | Wikipedia
https://en.wikipedia.org/wiki/Harvard_Mark_II

読みもの・動画 トップ