「またバグが出た」。パソコンやスマホが思い通りに動かないとき、私たちは当然のようにこの言葉を口にする。直訳すれば「虫」だ。しかし、なぜデジタルの不具合を虫と呼ぶのだろうか。
実はその背後には、コンピューター黎明期に起きた「物理的な虫」の事件と、さらに古くから続く「見えない魔物」の歴史が隠れている。
ここでは、バグという言葉がどうやってIT用語として定着したのか、そのルーツと語源を解き明かしていく。
| 知りたい項目 | バグの由来と要点 |
|---|---|
| もっとも有名な由来 | 1947年、コンピューターの内部に本物の蛾が挟まり不具合を起こした事件 |
| 以前からあった意味 | エジソンの時代から、機械の不具合を「バグ」と呼ぶスラングが存在した |
| 本当の語源 | ウェールズ語の「bwg(妖怪)」や中英語「bugge」から派生 |
コンピューターの「バグ」由来は本物の蛾だった
IT業界で「バグ」という言葉が定着した決定的な出来事は、1947年9月9日に起きた。
アメリカのハーバード大学で稼働していた初期の電気機械式コンピューター「Harvard Mark II」が、突如として動作不良に陥ったのだ。
1947年のHarvard Mark II事件
当時のコンピューターは、今のスマートフォンのように手のひらに収まるものではない。部屋全体を占拠する巨大な機械であり、内部では無数の「リレー」と呼ばれる物理的なスイッチがカチカチと音を立てて動いていた。
計算が合わない原因を突き止めるため、グレース・ホッパー(後のアメリカ海軍少将であり、COBOL言語の開発に貢献した天才プログラマー)らのチームが機械の内部を調べた。
すると、70番リレーの接点に「本物の蛾」が挟まっていたのだ。蛾が物理的にスイッチの接触を妨害し、計算エラーを引き起こしていたのである。
ログブックに残された「実際の虫」という言葉
作業員はピンセットでその蛾を取り除き、日誌(ログブック)にテープで貼り付けた。
そして、その横に次のようなメモを残した。
「First actual case of bug being found.(実際の虫が発見された初めての事例)」
このログブックは現在でもアメリカのスミソニアン博物館に保管されている。この事件が面白おかしく語り継がれ、コンピューターの不具合を「バグ」と呼ぶ習慣が世間に広く定着していったのだ。
しかし、ここで一つの疑問が浮かぶ。なぜ作業員は「actual(実際の)」という言葉をわざわざ書き添えたのだろうか。
実は「本物の虫」以前からバグという言葉はあった
作業員が「実際の虫」と書いたのには理由がある。1947年の事件よりずっと前から、技術者の間では機械の不具合を「バグ」と呼ぶスラングが広く使われていたからだ。
トーマス・エジソンも悩まされた機械のバグ
時計の針を1878年まで戻す。
発明王トーマス・エジソンが、電話や蓄音機の開発に取り組んでいた時期だ。彼は投資家宛ての手紙の中で、次のように書いている。
「最初のひらめきの後には、必ず困難が待ち受けている。そこで『バグ』——こう呼ばれている小さな欠陥や困難——が姿を現すのだ」
エジソンは、機械が思い通りに動かない原因のわからない不具合を、すでに「バグ」と呼んでいた。エジソンだけでなく、当時の発明家や機械工たちの間では、原因不明のトラブルを指す言葉として日常的に使われていたのだ。
レーダーや通信機材の不具合
第二次世界大戦中にも、軍のレーダーや無線通信機材に起きる原因不明のノイズや故障を、兵士たちは「バグ」と呼んでいた。
つまり、「機械の不具合=バグ」という言葉は19世紀から存在していた。
だからこそ、1947年のHarvard Mark IIの事件で本物の蛾が出てきたとき、作業員は「いつも口にしている『バグ』が、今回は『実際の虫』として見つかったぞ」とジョーク混じりに記録したのだ。
なぜ不具合をバグと呼ぶのか(本当の語源)
では、エジソンの時代の技術者たちは、なぜ機械の不具合を「虫(bug)」と呼ぶようになったのか。実は、このbugは昆虫の虫ではないという有力な説がある。
言葉のルーツは「虫」ではなく「妖怪」
英語の「bug」という言葉は、昆虫を指す前に、もっとおどろおどろしいものを意味していた。
語源をたどると、ウェールズ語の「bwg(幽霊、妖怪)」や、中英語の「bugge(お化け、恐ろしいもの)」に行き着く。
子どもを脅かす架空の怪物「ブギーマン(Boogeyman)」も、このbuggeと同じ語源から派生した言葉だ。
目に見えない魔物のしわざ
機械というものは、設計図通りに組み立ててもなぜか動かないことがある。
目に見える部品が壊れているわけでもないのに、原因不明のトラブルが起きる。当時の職人たちは、この不可解な現象を「目に見えない妖怪のしわざ」に見立てた。
「機械の中にbug(魔物)が潜んでいる」
この表現がいつしか機械の不具合そのものを指すようになり、時代が下るにつれて昆虫の「bug」と混同され、現在の意味として定着したと考えられている。
バグ・エラー・欠陥はどう使い分けるのか
現代のIT開発現場では、システムが思い通りに動かない状態を表す言葉がいくつも存在する。それぞれニュアンスが異なるため、正確な使い分けが求められる。
| 用語 | 意味と発生原因 |
|---|---|
| バグ(Bug) | プログラムの記述ミスや論理的な誤り。開発者のミスに起因するもの。 |
| エラー(Error) | 想定外の操作や通信障害などにより、処理が正常に完了できない状態。 |
| 欠陥(Defect) | プログラムは正常に動くが、顧客が求めた仕様や要件を満たしていない状態。 |
| 不具合 | これらすべてを含み、ユーザー側から見て「正常に動かない状態」の総称。 |
プログラミングにおけるバグ
バグは、コードの書き間違いや条件分岐の考慮漏れなど、プログラム内部に潜む論理的な誤りを指す。計算結果がずれる、ボタンを押しても反応しない、画面が崩れるといった現象の直接的な原因だ。
環境や操作が引き起こすエラー
エラーは、プログラム自体にバグがなくても発生する。
数値を入力する欄に文字を打ち込まれた、通信回線が切断された、サーバーのメモリが不足したなど、外部からの要因によってシステムが処理を継続できなくなった状態だ。開発者はこうしたエラーが起きてもシステムが停止しないよう、「エラーハンドリング」という処理を組み込む。
設計そのものが間違っている欠陥(ディフェクト)
プログラムはバグもなく完璧に動く。しかし、「注文ボタンを押すとカートの中身がすべて消える」という仕様で作ってしまった場合、それはバグではなく「設計の欠陥」となる。
作ったもの自体は正しく動いているが、作るべきものを間違えている状態だ。
デバッグや裏技などバグにまつわる雑学
バグという言葉は、IT業界を越えて様々な派生語を生み出してきた。
デバッグ(虫取り)という言葉の定着
バグを取り除く作業を「デバッグ(debug)」と呼ぶ。
接頭辞の「de-(分離、除去)」と「bug」を組み合わせた言葉だ。プログラムの中から不具合の原因を探し出し、修正する地道な作業を指す。現代のプログラミングには、コードの動きを一行ずつ追跡する「デバッガ」というツールが欠かせない。
バグ技というゲーム文化
ファミリーコンピュータの時代から、ゲームの世界ではプログラムの隙を突いた「バグ技」がプレイヤーの間で楽しまれてきた。
壁をすり抜ける、アイテムが無限に増える、レベルが一気に上がるなど、開発者が意図しなかった動作を利用してゲームを有利に進めるテクニックだ。
本来なら修正されるべき不具合だが、あまりにも有名なバグ技はリメイク版のゲームで「公式の裏技」としてあえて残されることもある。
「それはバグではなく仕様です」
ソフトウェア開発の現場で、ある種の冗談(あるいは苦しい言い訳)として使われるのが「それはバグではなく仕様です(It’s not a bug, it’s a feature.)」という言葉だ。
ユーザーから「おかしな動きをする」と指摘された際、直す時間がない、あるいは修正による影響が大きすぎる場合に、「最初からそういう設計だったのだ」と言い張るための魔法の言葉として知られている。
バグの由来でよくある誤解
ここまで見てきた通り、「1947年に蛾が挟まった事件で初めてバグという言葉が生まれた」という説明は正確ではない。
あの事件が有名なのは、「比喩として使っていたバグが、物理的な虫として発見された」という奇跡的なユーモアがあったからだ。スミソニアン博物館の展示や数々のIT書籍でもこのエピソードが好んで紹介されるため、いつの間にか「言葉の誕生の瞬間」として誤認されてしまった。
言葉としての歴史は、エジソンの時代、あるいはウェールズ語の「妖怪」にまで遡るのが正しい。
バグの由来に関するよくある質問
バグの語源は何ですか?
直接的には英語の「bug(虫)」ですが、さらに遡るとウェールズ語の「bwg(妖怪)」や中英語の「bugge(お化け)」がルーツとされています。原因不明の機械トラブルを「見えない魔物のしわざ」とした表現が定着したものです。
コンピューターのバグという言葉は誰が作ったのですか?
特定の誰かが作ったわけではありません。19世紀のトーマス・エジソンの時代には、すでに機械の小さな欠陥を「バグ」と呼ぶ習慣がありました。それがコンピューターの時代にも引き継がれた形です。
1947年に蛾が挟まった事件は本当ですか?
本当です。アメリカのHarvard Mark IIというコンピューターの内部に本物の蛾が挟まり、計算エラーを起こしました。当時のログブックにテープで貼られた蛾は、現在もスミソニアン博物館に保管されています。
バグとエラーの違いは何ですか?
バグはプログラムを作った人の記述ミスや論理的な誤りを指します。一方エラーは、想定外の操作や通信障害など、外部の要因によって処理が正しく完了できなくなった状態を指します。
デバッグとはどういう意味ですか?
プログラムからバグ(不具合)を取り除く作業のことです。「除去する」という意味の接頭辞de-と、bugを組み合わせた言葉です。
機械と人間の知恵比べ
巨大な計算機の中に挟まった一匹の蛾。そして、原因不明のトラブルを魔物のしわざに見立てた昔の職人たち。
時代が変わっても、新しい技術には常に予想外の不具合がつきまとう。私たちが日々使っているスマートフォンも、膨大なプログラムの集合体であり、どこかに見えない「妖怪」が潜んでいる。
バグという言葉の歴史は、完璧には動かない機械と、それをなんとか制御しようとする人間の知恵比べの歴史そのものだ。
次にパソコンがフリーズしたときは、画面の奥に潜む小さな魔物に少しだけ思いを馳せてみてほしい。