Сегодня годовщина обнаружения первого компьютерного «бага» — в прямом и переносном смысле

i4hRLCQg0do1

9 сентября 1947 года Грейс Хоппер обнаружила в гарвардском Марке-II дохлого мотылька, который вызывал сбой в работе реле.

На фото: Грейс Хоппер.

Как и в любой другой сфере, в IT есть свои легенды. Одна из них связана с термином «баг» (bug, англ. — жук), означающим какого-либо рода проблему (обычно в коде), вызывающую сбой в работе машины. От этого слова пошли такие устоявшиеся понятия, как «дебаггер» — подпрограмма-отладчик и «дебаггинг» — сам процесс отладки. У самого же «бага» есть красивая история происхождения.

В 1945 году в Гарвардском университете был создан один из первых компьютеров — Mark I. Его мощность была невысока (особенно по отношению к занимаемому пространству), так как он был построен не на электронных лампах, а на системах реле. Так, на операцию сложения или вычитания у него уходило порядка 0,33 секунды, а на деление — целых 16 секунд. Хоть Mark I и уступал своим близким последователям — например, E.N.I.A.C.’у, вышедшему в 1946 году, — он сыграл важную роль в истории компьютеростроения.

Его последователь — Mark II — был завершен в 1947 году. И именно в это время произошла знаменитая история с багом, в которой одну из главных ролей сыграла Грейс Хоппер — в то время еще программистка, военный офицер, а в будущем — контр-адмирал ВМС США, известная под прозвищем Amazing Grace («Невероятная Грейс», что также совпадает с англоязычным вариантом названия популярного христианского гимна «О, благодать»). Во время планового осмотра компьютера она с коллегами обнаружила в одном из реле дохлого мотылька, из-за которого кластер некорректно работал. Почившее насекомое удалили, но труп не выбросили, а аккуратно подклеили в журнал наблюдений с комментариями о том, что «успешно удалили баг». Рассказывая об этом случае в дальнейшем, Грейс, как считается, придумала и ввела в обиход термин «дебаггинг».

zFWk eVEjQg1

Страница из журнала с вклеенным дохлым мотыльком

Правда это или вымысел, судить сложно, но скорее всего хотя бы часть истории — правда. Журнал с подклеенным мотыльком до сих пор хранится в Национальном музее естественной истории Смитсоновского института США. Тем не менее, насколько даты в легенде совпадают с реальным ходом событий, неясно. Что известно достоверно, так это то, что слово «баг» в значении аппаратной или программной ошибки придумали не в Гарварде и даже не в XX веке.

Автором этого термина считается Томас Эдисон, когда он был молодым инженером и работал над усовершенствованием для телеграфа, которое бы позволило вести сразу четыре передачи по одной линии. Концептуально решить эту задачу оказалось относительно несложно — Эдисон использовал смену направления и силы тока в качестве способа модуляции каждого из сигналов. В чем была реальная сложность, так это в поимке всех «багов» подобной системы. На это и уходила большая часть сил и времени изобретателя.

В последующие годы Эдисон создал свой «отряд бессонницы» для работы над телеграфом и другими проектами. При его участии термин «баг» продолжил распространяться. В 1892 году Томас Слоан в своем «Стандартном электрическом словаре» сформулировал определение бага:

    «[a]ny fault or trouble in the connections or working of electric apparatus»
    «любая ошибка или сбой в соединениях или работе электрического прибора»

Дальнейшее распространение термин получил в XX веке. Можно смело предположить, что к моменту создания первых компьютеров применение этого слова по отношению к электронным системам было по крайней мере не ново. Тем не менее легенда, связанная с Mark I и Грейс Хоппер, заслуживает должного внимания, так как обладает прекрасной долей символизма.