Почему мы называем сбой программного обеспечения “багом”?

Почему мы называем сбой программного обеспечения "багом"?

“It’s not a bug, it’s a feature.” “Это не ошибка, это особенность”. В тот или иной момент мы все слышали, как кто-то использовал эту фразу или ее вариацию. Чтобы саркастически описать какое-то неисправное оборудование или программное обеспечение.

Действительно, слово “баг” (bug) уже давно широко распространено в мире компьютеров. А “отладка” (debugging) – акт поиска и исправления ошибок – является общепринятым термином. Но почему это так? Как неофициальное слово, обозначающее насекомое, стало синонимом компьютерной ошибки или сбоя?

 

Почему мы называем сбой программного обеспечения "багом"?

 

Согласно наиболее часто повторяемой истории происхождения, в 1947 году техники, работавшие над Harvard Mk II – первым релейным компьютером, созданным военно-морским флотом США, – столкнулись с неисправностью. И, открыв механизм, обнаружили, что мотылек залетел в компьютер и закоротил одно из его электрических реле. Таким образом, первая компьютерная ошибка была в буквальном смысле bug (насекомое), и название прижилось.

 

Harvard Mk II - первым релейным компьютером, созданным военно-морским флотом США

 

Но хотя этот инцидент, похоже, действительно произошел, он почти наверняка не является источником термина. Поскольку использование термина “баг” для обозначения ошибки или сбоя предшествует событию почти на столетие.

 

Первая гипотиза появления термина

Первое зарегистрированное использование “бага” в этом контексте исходит от американского изобретателя Томаса Эдисона. Который в письме от 3 марта 1878 года президенту Western Union Уильяму Ортону написал: “Вы были отчасти правы. Я действительно обнаружил “баг” в своем аппарате. Но его не было в самом телефоне. Он принадлежал к роду “callbellum”. Насекомое, по-видимому, находит условия для своего существования во всех телефонных аппаратах”.

“Callbellum”, на который ссылается Эдисон в письме, – это не настоящий род насекомых. А скорее латинский коламбур, “call” относится к телефонному звонку, а bellum – латинское слово, обозначающее “войну” или “бой”. Подразумевая, что Эдисон борется с этим конкретным аппаратным сбоем.

 

Первая гипотиза появления термина баг

 

Откуда сам Эдисон взял этот термин, неизвестно. Хотя одна теория утверждает, что он возник из-за общей проблемы, с которой сталкиваются телеграфные системы. В течение почти 40 лет с момента их появления электрические телеграфы были ограничены отправкой одного сообщения за раз по одному проводу.

Также рекомендуем прочитать:  Смерть на сцене от укуса змеи

По мере роста популярности телеграфа в середине 19 века это ограничение стало серьезной проблемой. Поскольку единственным способом разрешить отправку большего количества сообщений была установка большего количества телеграфных проводов. Все более неэлегантное и дорогое решение.

Это привело изобретателей по всему миру к поиску методов передачи нескольких сигналов по одному проводу. Практика, ныне известная как мультиплексирование.

 

Среди многих изобретателей, разработавших мультиплексные телеграфы, были Александр Грэм Белл

 

Это позволяло передавать несколько сигналов по одному телеграфному проводу. Среди многих изобретателей, разработавших мультиплексные телеграфы, были Александр Грэм Белл и Элиша Грей. Чья работа по передаче акустических частот по телеграфным проводам в конечном итоге привела их к открытию принципов, которые будут использоваться для функционирования телефона.

В любом случае, хотя эти ранние мультиплексные телеграфы работали достаточно хорошо. Они имели тенденцию генерировать фантомные сигналы в виде громких “щелчков”. Которые напоминали многим телеграфистам звук насекомого. Томас Эдисон сам запатентовал электронное решение этой проблемы в 1873 году. Которое он назвал “ловушкой для ошибок” или “bug trap”.

Мифические баги

Другая гипотеза указывает на то, что слово “bug” происходит от среднеанглийского bugge, что означает “пугающая вещь” или “монстр”. Этот корень также является источником английских слов bogeyman, bugaboo и bugbear. Последнее первоначально относилось к злому духу или гоблину. Но сегодня используется для обозначения незначительного раздражения.

 

Мифические баги

 

Поэтому сторонники этой гипотезы утверждают, что “баг” в этом контексте использовалась во многом так же, как “гремлины”. Мифические гоблины, которых экипажи самолетов Второй мировой войны обвиняли в неисправностях на борту своих самолетов.

Как бы то ни было, частое использование Эдисоном этого термина в своих письмах и записных книжках привело к тому, что он широко повторялся в прессе. В статье от 11 марта 1889 года в Pall Mall Gazette сообщалось: “Мистер Эдисон… две предыдущие ночи он не спал, работая над исправлением “бага” в своем фонографе”.

Также рекомендуем прочитать:  Сны о кровотечении – толкование и значение

Термин был впервые официально стандартизирован инженером Томасом Слоуном в его Стандартном электрическом словаре 1892 года. В котором “bug” определялась как “Любая неисправность или неполадка в соединениях или работе электрического устройства”.

 

bug" определялась как "Любая неисправность или неполадка в соединениях или работе электрического устройства

 

Три года спустя Стандартный словарь английского языка Фанка и Марча определил термин для широкой публики следующим образом: “Неисправность в работе системы или любого электрического устройства”.

День рождения Бага

Таким образом, к началу 20 века этот термин прочно утвердился в инженерных кругах. И вскоре начал входить в повседневное употребление. Писатель-фантаст Айзек Азимов еще больше популяризировал этот термин в своем рассказе 1944 года “Поймай кролика”. Написав: “U.S. Robots должны были удалить баги из множества роботов. И было много багов, и всегда оставалось по крайней мере полдюжины их для полевых испытаний”.

 

День рождения Бага

 

Несмотря на то, что термин “баг” использовался более 70 лет, только после вышеупомянутого инцидента с мотыльком в 1947 году термин “bug” стал неразрывно связан с областью компьютеров. Насекомое, о котором идет речь, было обнаружено лейтенантом ВМС Грейс Хоппером. Пионером вычислительной техники, впоследствии разработчиком предшественника COBOL, одного из самых первых языков программирования.

В любом случае, в 3:45 вечера 9 сентября 1947 Хоппер приклеила слегка хрустящую моль в бортовой журнал компьютера скотчем. Радостно отметив рядом с ним: “Первый фактический случай обнаружения бага”.

 

День рождения Бага

 

Страница исторического журнала с мотыльком сохранилась и до наших дней. В коллекции Смитсоновского музея естественной истории в Вашингтоне. Хотя в настоящее время она не выставлена на всеобщее обозрение.

И в память об этом печально известном инциденте 9 сентября программисты по всему миру отмечают как “День тестировщика”. Напоминая всем о жизненно важной роли, которую играют те, кто неустанно охотится и уничтожает различные сбои, ошибки, гремлинов и призраков в каждой машине.