Настоящий мотылёк внутри гиганта — история первого в мире компьютерного бага (11 фото)
Каждый программист в мире знает слово «баг». Но мало кто задумывался, что оно ведёт в Гарвард 1947 года — в зал, где гудела 23-тонная машина, и в реле № 70 сидел настоящий мотылёк. 9 сентября отмечается День тестировщика: дата выбрана в честь именно этого дня. Рассказываем всю историю — от Эдисона до контр-адмирала Хоппер и журнала, который хранится в Смитсоновском музее до сих пор.
15:45, 9 сентября 1947 года
Гарвардская вычислительная лаборатория, лето, жара. Огромный зал — почти 400 квадратных метров — заполнен рядами металлических стоек. Тысячи реле щёлкают и переключаются: машина считает. Точнее, должна считать — но что-то пошло не так.
Harvard Mark II в Гарварде: такие залы в 1940-е называли «вычислительными комнатами» — людей внутри почти не было видно за стойками.
Операторы Harvard Mark II начали поиск неисправности. Метод один: проверять узел за узлом. Наконец кто-то заглянул в реле № 70 на панели F. Там сидел мотылёк — примерно пять сантиметров, крылья чуть помятые. Насекомое попало между контактами и разомкнуло электрическую цепь. Его осторожно извлекли пинцетом и приклеили скотчем на страницу рабочего журнала.
Рабочий журнал Mark II, Смитсоновский институт: тот самый мотылёк и надпись «First actual case of bug being found».
Рядом с мотыльком в журнал вписали от руки: «Первый реальный случай обнаружения бага». Время зафиксировали точно: 15:45. Запись сохранилась. Журнал с приклеенным мотыльком сейчас хранится в Национальном музее американской истории Смитсоновского института в Вашингтоне — и доступен в оцифрованном виде на сайте музея.
Монстр размером с два теннисных корта
Harvard Mark II — электромеханический компьютер, построенный по заказу ВМФ США. Его задача: рассчитывать баллистические таблицы, то есть траектории снарядов. Контракт с Гарвардом подписали в феврале 1945 года, машину достроили в 1947-м, а в марте 1948-го отправили на военно-морской испытательный полигон в Дальгрен, штат Вирджиния.
Предшественник Mark II — Harvard Mark I, 1944 год. Mark II был заметно меньше, но всё равно занимал целый зал.
Машина весила 23 тонны и занимала более 370 квадратных метров. Для сравнения — это площадь двух теннисных кортов. Внутри вместо электронных ламп — около 13 000 электромагнитных реле. Реле — это миниатюрный переключатель: когда через обмотку проходит ток, металлические контакты замыкаются. Мотылёк попал именно между такими контактами и физически не дал им замкнуться.
Гарвардская лаборатория, 1940-е. Найти неисправность в тысячах реле — значит проверить каждое вручную.
Сложить одно число с другим машина могла за 0,125 секунды. Умножить — за 0,75 секунды. По меркам 1947 года это была огромная скорость.
Слово «баг» появилось за 70 лет до мотылька
Надпись в журнале — «первый реальный случай» — была шуткой. Инженеры выделили слово «actual» не случайно: слово «bug» к 1947 году уже давно жило в техническом жаргоне. Поэтому запись читалась как каламбур: на этот раз «жучок» оказался настоящим насекомым, а не метафорой.
Томас Эдисон — первый, кто зафиксировал технический «баг» письменно. Его лаборатория в Менло-Парке, 1880-е.
Слово «bug» в значении «неполадка в технике» ввёл в оборот Томас Эдисон. В письме от 13 марта 1878 года президенту компании Western Union Уильяму Ортону он написал о «баге» в своём телефонном аппарате — и даже пошутил, что насекомое «относится к роду callbellum» (по-латыни bellum — война, call — звонок; Эдисон воевал с телефонной помехой). Ещё раньше, в 1876 году, слово мелькало в его лабораторных записях про электрическое освещение: «Awful lot of bugs still» — «Ещё куча багов».
К 1880-м слово «bug» звучало в каждой телеграфной конторе США — задолго до того, как появились компьютеры.
К 1880-м термин перешагнул за стены лаборатории Эдисона. В 1892 году инженер Томас Слоун включил «bug» и «bug trap» («ловушка для бага») в свой стандартный электрический словарь. Так что к 1947 году слово было обычным рабочим жаргоном у любого технического специалиста.
Каламбур в журнале означал одно: на этот раз жучок был живым. Старая метафора буквально материализовалась.
После инцидента с мотыльком слово «debugging» — дебаггинг (поиск и устранение ошибок) — прочно вошло в лексикон программистов. Сегодня его используют на всех языках мира без перевода.
Грейс Хоппер: женщина, которая сделала мотылька легендой
Мотылька нашли инженеры — предположительно Уильям Бёрк и его коллеги. Но историю про мотылька миру рассказала Грейс Хоппер. Именно она вписала запись в журнал — или по крайней мере рассказывала эту историю на публичных лекциях сотни раз. Смитсоновский институт осторожен в атрибуции: кто именно держал в руках пинцет, точно неизвестно. Зато известно другое: легенды живут благодаря тем, кто умеет их рассказывать.
Хоппер за работой, 1960-е. Она читала до 300 публичных лекций в год и предсказала, что компьютеры однажды поместятся на рабочем столе.
Грейс Брюстер Мюррей Хоппер родилась 9 декабря 1906 года в Нью-Йорке. В 1934 году она защитила диссертацию по математике в Йельском университете. В ВМФ её сначала не хотели брать — в 37 лет сочли слишком старой для женского резерва. Хоппер добилась своего и попала на программу Harvard Mark I.
Грейс Хоппер в форме контр-адмирала ВМФ США. Она ушла в отставку в 1986 году в возрасте 79 лет — старейшим действующим офицером флота.
После войны Хоппер создала первый компилятор — программу, которая переводит код на понятном человеку языке в машинные команды. Это стало основой для языка COBOL (Common Business Oriented Language — язык программирования для деловых задач). Сегодня на COBOL работают 43% банковских систем мира. Ежедневно через них проходят транзакции на 3 трлн долларов.
В отставку Хоппер ушла в 1986 году в звании контр-адмирала — в 79 лет, старейшим действующим офицером американского флота. Умерла 1 января 1992 года.
Почему 9 сентября — День тестировщика
Журнал с мотыльком хранится в Национальном музее американской истории Смитсоновского института. Мотылёк — до сих пор там, приклеенный к странице скотчем.
9 сентября отмечается как День тестировщика — специалистов, которые ищут ошибки в программном коде. Праздник неофициальный, но прижился и в других странах. Его отмечают разработчики, инженеры по качеству и все, кто имеет отношение к проверке программного обеспечения.
Современные тестировщики ищут баги в коде — но профессия берёт начало в той же логике: найти то, что мешает машине работать правильно.
Тестировщик сегодня — это человек, который думает как пользователь и как инженер одновременно. Ищет то, что разработчик не заметил. Именно эту логику — «найти то, что мешает» — запустил в историю скромный ночной мотылёк в реле № 70.
Хоппер читала лекции до 300 раз в год. Историю про мотылька она рассказывала снова и снова — и именно так превратила случайный инцидент в миф.
Кстати, запись в журнале от 9 сентября 1947 года — не первое упоминание «бага» внутри самого Гарварда. Физик Роберт Кэмпбелл использовал это слово в записях по Mark I ещё в 1944 году. Поэтому надпись «первый реальный случай» и была шуткой для своих — инсайдерским каламбуром, который три четверти века спустя стал частью мировой истории технологий.
Кто заслуживает большей памяти — тот, кто находит проблему, или тот, кто умеет рассказать о ней так, что история переживёт века?


















