Баг (инженерия)
В инженерии, баг (англ. bug) — это дефект проекта в разработанной инженерной системе, такой как программное обеспечение, компьютерное оборудование, электроника, электрическая схема или машина, который приводит к нежелательному результату. Дефекты, не относящиеся к проектированию, например сбой сервера из-за стихийного бедствия, не считаются багами, как и баги не встречаются в природных системах, таких как погода.
Термин «баг» не является техническим; более формальные понятия, помимо «дефект», включают ошибка, изъян и сбой. Баг может быть постоянным, спорадическим, периодическим или преходящим; в области вычислений к багам относят сбои, зависания, а также глитчи.
Поскольку желательность результата субъективна, то, что один считает багом, для другого может быть особенностью — отсюда известная в среде разработчиков шуточная реплика, возникающая в ответ на сообщение о баге: «Это не баг, это фича».
История
Английское средневековое слово англ. bugge является источником терминов англ. bugbear и англ. bugaboo, используемых для обозначения чудовищ[1].
Термин «баг» для обозначения дефекта использовался в инженерном жаргоне как минимум с 1870-х годов, задолго до появления электронных вычислительных машин. Например, Томас Эдисон писал своему коллеге в 1878 году:
Так было со всеми моими изобретениями. Первый шаг — это интуиция и порыв, затем возникают трудности — что-то выходит из строя, и именно тогда «баги» — так называют разные мелкие неисправности и затруднения — проявляют себя, а для достижения коммерческого успеха или неудачи требуется много месяцев напряжённого наблюдения, изучения и работы[2].
В комиксе на страницах телефонного промышленного журнала 1924 года наивный персонаж слышит, что некий мужчина работает «охотником на багов», и преподносит ему скребок для спины. Мужчина отвечает: «Разве не знаешь, что „охотник на багов“ — это всего лишь прозвище ремонтника?»[3]
Первая механическая пинбол-игра, Baffle Ball, в 1931 году рекламировалась как «свободная от багов»[4].
Проблемы с военной техникой во время Второй мировой войны также называли багами или глитчами[5].
В фильме 1940 года Flight Command дефект в работе навигационного прибора был назван «багом».
В книге 1942 года американская писательница Луиза Дикинсон Рич, говоря о механизированной машине для распиливания льда, использовала выражение: «Ледопилили прекратились, пока создателя не привели устранить баги из его детища»[6].
Айзек Азимов использовал термин «баг» для описания проблем с роботом в рассказе «Catch That Rabbit», опубликованном в 1944 году.
Контр-адмирал ВМС США Грейс Хоппер, одна из пионеров компьютерной техники, популяризировала историю о моли, вызвавшей дефект в раннем электромеханическом компьютере[7]. Около 1947 года, когда Хоппер работала с машинами Mark II и Mark III в Гарварде, операторы локализовали ошибку в Mark II, вызванную молью, застрявшей в реле. Моль была удалена и наклеена в рабочий журнал с подписью: «Первый реальный случай обнаружения бага». Считается, что операторы, включая Уильяма «Билла» Бёрка из Naval Weapons Laboratory в Далгрен, Виргиния[8], были знакомы с инженерным значением слова и, вероятно, с юмором обыграли совпадение его употребления как для живого вещества, так и технологического дефекта. Эта история, пусть и шутка, показывает регулярность термина среди компьютерщиков того времени[9].[10][11][12] Тот самый журнал с приклеенной молью хранится в коллекции Смитсоновского Национального музея американской истории[11].
Связанный с этим термин debug также появился раньше, чем его использование в информатике: согласно этимологии Oxford English Dictionary, самое раннее использование слова в значении устранения неисправностей зафиксировано в авиационной сфере в 1945 году[13].
«Это не баг, это фича»
Поскольку баг подразумевает нежелательное поведение, то констатация наличия бага субъективна. То, что одни считают багом, другие могут воспринимать как полезную особенность, отсюда и распространённая фраза: «Это не баг, это фича» (INABIAF)[14]. Эта шутка была задокументирована в The Jargon File (1975), однако восходит как минимум к 1971 году, когда программист Сандра Ли Харрис из Digital Equipment Corporation (DEC), работая над интерпретатором языка FOCAL для PDP-8, различала проблемы, требующие исправления в коде, и вопросы, которые следовало бы описать в пользовательской документации[15].
О подобном поведении могут специально сообщать пользователям или же оно остаётся недокументированным.
Примечания
- ↑ Moth in the machine: Debugging the origins of 'bug' (англ.). Computerworld. Computerworld (3 сентября 2011). Дата обращения: 16 августа 2024. Архивировано 25 августа 2015 года.
- ↑ Edison to Puskas, 13 ноября 1878, Edison papers, Edison National Laboratory, U.S. National Park Service, West Orange, N.J., цитируется по: Hughes, Thomas Parke. American Genesis: A Century of Invention and Technological Enthusiasm, 1870-1970 : [англ.]. — Penguin Books, 1989. — P. 75. — ISBN 978-0-14-009741-2.
- ↑ Cy Meyn, Hattie the Hello Girl, The Mountain States Monitor Том XIX, № 1 (январь 1924), Mountain States Telephone and Telegraph Co.; стр. 34, внизу.
- ↑ Baffle Ball (англ.). Internet Pinball Database. Internet Pinball Database. Дата обращения: 16 августа 2024. Архивировано 29 августа 2025 года.
- ↑ Modern Aircraft Carriers are Result of 20 Years of Smart Experimentation (англ.), Life (29 июня 1942), С. 25. Архивировано 4 июня 2013. Дата обращения: 16 августа 2024.
- ↑ Dickinson Rich, Louise. We Took to the Woods : [англ.]. — JB Lippincott Co, 1942. — P. 93.
- ↑ Log Book With Computer Bug (англ.). americanhistory.si.edu. Дата обращения: 16 августа 2024. Архивировано 2 декабря 2023 года.
- ↑ IEEE Annals of the History of Computing, Vol 22 Issue 1, 2000
- ↑ James S. Huggins. First Computer Bug (англ.). Jamesshuggins.com. Дата обращения: 16 августа 2024. Архивировано 16 августа 2000 года.
- ↑ «Bug Архивировано 23 марта 2017.», The Jargon File, вер. 4.4.7. Получено 3 июня 2010.
- ↑ 1 2 «Log Book With Computer Bug Архивировано 23 марта 2017.», National Museum of American History, Smithsonian Institution.
- ↑ "The First «Computer Bug», Naval Historical Center. Однако сама машина Harvard Mark II была завершена только летом 1947 года.
- ↑ Journal of the Royal Aeronautical Society. 49, 183/2, 1945 «It ranged … through the stage of type test and flight test and 'debugging' …»
- ↑ Nicholas Carr. ‘It's Not a Bug, It's a Feature.’ Trite—Or Just Right? (англ.), Wired. Архивировано 11 октября 2025 года. Дата обращения: 16 августа 2024.
- ↑ FOCAL Programming Manual for PDP-8, PDP-8/S, PDP-8/I, LAB-8, LINC-8 : [англ.]. — Digital Equipment Corporation, 1968. — ISBN DEC-08-AJAB-D.