【プログラミング教育の小ネタ】コンピュータのバグの由来
プログラミング教育の小ネタ集として今回は「バグ」の由来について解説します。
ITエンジニアであれば有名な話なのですが、プログラミング教育に触れたばかりの方や、普段何気なくこのキーワードを使っている子どもたちに教えてあげるとウケるかもしれないのぜひ覚えてみてください。
バグの意味
よく、ゲームなどをしていると「バグっている」とか「バグった」と話す子どもたちを見かけたことはないでしょうか?
語らずとも理解している方が多いと思いますが、念のために解説をすると、バグとは、プログラム内に潜んでいる予期せぬ設定やコードによって引き起こされた不具合のことを呼びます。
その他、エラーや障害、例外などと様々な呼び方がありますが、今回はプログラムが原因によって引き起こされた不具合を「バグ」と呼ぶことにします。
また、余談ではありますが、これもゲーム業界での枠割にある「デバッガー」ですが、彼らの役割の多くは「不具合を見つけ出すことを職務」としていますが、IT業界においては「不具合を見つけ出し、改修することを職務」とし、役割の定義が少々違っています。
小さな子どもたちに話しても通用しないと思いますが、ある程度の高学年の世代であれば追加で話すのも面白いかもしれません。
バグの由来
さて、ゲーム業界とIT業界で少々役割の異なる「デバッガー」ですが、彼らが対処する「バグ」という名前の由来は共通しています。
「バグ」という名称の意味はもちろん「虫」を示していますよね。そう、コンピュータの世界における「バグ」は「虫」から由来しているのです。
そもそもとして「バグ」はITの世界を更にさかのぼった1840年代前後にまで至ります。当時のコンピュータは現代のように1人に1台(もしくはそれ以上)の勢いでパソコンやスマートフォンが普及しているわけではなく、タイプライターやファクシミリが発明サれた時代です。
その頃にコンピュータが無かったわけではないのですが、今では創造もできないくらい巨大な、それこそ昔のSF映画に出てくるような部屋一面を覆い尽くす機械を使って計算処理を行っていたのです。
更に計算処理は、現代でいうところのソフトウェアやAIが導入されているのではなく、決められた手順に従ってコンピュータが計算をするだけの仕組みでした。
当時のコンピュータのイメージはコチラの記事などを参考にしていただくのが良いかもしれません。また、当時は手順の指示を出すために用いられていたのが紙などで作成したテープでした。テープには点字のような凹凸があり、それを読み取ることで計算処理を行っていたのです。
この時点で現代の子どもたちには伝わりにくい部分もあるかと思いますが、話を続けます。テープなどを読み取るためにはモーターでくるくると巻き取るような仕組みが必要だったりします。実は世界初と言われているバグは、そのモーター(リード)に虫(蛾)が挟まったことから実際に引き起こされたという事例があります。
1947年、ハーバード大学で稼動していた「Harvard Mark Ⅱ」のリードに虫が挟まったとして、実際の虫がテープで貼り付けられた手記が残されています。詳細にはどの部分に挟まったのか不明瞭な部分はあるものの、この事例がIT、つまりコンピュータの世界におけるバグの始まりと言われているのです。
バグの由来まとめ
実際のところ、詳しい由来には諸説ありますが、小ネタとして用いるバグの話は以下のような内容で良いでしょう。
- コンピュータの世界におけるバグの由来は「虫」からきている
- 昔は教室を埋め尽くすコンピュータのを使って計算をしていた
- コンピュータというよりも工場の機械というイメージ
- 当時のコンピュータにはモーターで稼動する部分があり、そこに虫が入り込んだ
- 入り込んだ結果としてバグが引き起こされた
本当はこのバグを発見したのが、プログラミング言語「COBOL」の開発者であるグレース・ホッパー氏であったりと、かなり歴史的な話になるのですが、子どもたちに「へー」と言ってもらうには少々ディープな話になってしまうので控えておいたほうが良いでしょう。