#статьи
- 27 апр 2021
-
13
Краш-курс по происхождению самых известных терминов цифрового мира.
Филолог, полиглот, IT-гик. В прошлом — преподаватель английского и литературы и рецензент Rolling Stone Russia. Ныне переводит для РБК и пишет о программировании и образовании для Skillbox.
Большинство IT-терминов пришло из английского языка. Но как они появились и почему эти английские слова в переводе означают вещи, которые никак не относятся к программированию и интернету?
Разбираемся, почему информацию хранят в облаке и как японское печенье с предсказаниями стало неотъемлемой частью рациона для большинства интернет-пользователей.
Баг (англ. bug — жук) — ошибка в программе.
Слово «баг» в значении «техническая неисправность» употребляли ещё в 1870-х. Тогда телеграфисты и телефонисты называли так помехи и неисправности в связи. Работники с большим трудом «ловили» и устраняли эти неполадки, которые надоедали, как назойливые жучки.
В значении «программная ошибка» слово впервые употребили в 1947 году. Инженеры, работавшие в Гарварде с компьютером Mark II, обнаружили в повреждённом компоненте машины сгоревшего мотылька, из-за которого и случилось замыкание. Насекомое извлекли и вклеили в журнал с символичной пометкой: «первый реальный случай обнаружения бага».
Патч (англ. patch — накладка, заплата) — обновление или дополнение к программе.
Термин появился в эпоху перфокарт — главных носителей информации 1920–1950-х. Данные на них кодировали с помощью специальных отверстий. Чтобы изменить программу, приходилось накладывать заплатки на уже продырявленные места.
Облачное хранилище данных, или просто облако (англ. cloud storage — облачное хранилище), — онлайн-хранилище данных.
Слово «облако» в значении «онлайн-хранилище» ещё в 1994 впервые использовали AT&T в рекламе нового сервиса PersonaLink Services. Тогда нужно было быстрее привлечь инвесторов и продвинуть проект в массы, поэтому разработчики использовали метафору, которая доступно объясняла принцип работы инновации: данные хранятся не у вас дома, а где-то там, в облаках. Кстати, рисунок хранилища на патенте тоже напоминает облако.
Куки (англ. cookie — печенье) — информация, которую браузер сохраняет на компьютер, когда вы посещаете сайты.
Куки появились в IT-жаргоне благодаря печеньям с предсказаниями — кондитерским изделиям, внутри которых запекают записку с афоризмами и вариантами событий в будущем. Вопреки распространённому мнению, печенье в США завезли не китайские, а японские иммигранты. Позднее эти сладости «перекочевали» в сленг программистов: данные, которые сервер передаёт пользователю, стали называть cookies. Это слово очень ёмко и доступно объясняло принцип работы файлов, содержащих готовую, предсказуемую информацию.
Спам (англ. spam — спам) — массовая рассылка сообщений.
История термина начинается в 1937-м. Тогда в США была основана торговая марка консервов SPAM, которая, по одной версии, расшифровывается как SPiced hAM, а по другой — как Shoulders of Pork and hAM. После Второй мировой войны SPAM вела агрессивную рекламную кампанию, чтобы сбыть залежавшуюся продукцию. Название торговой марки очень скоро стало нарицательным — им стали обозначать любую навязчивую рекламу.
В семидесятые слово популяризировали в комедийном скетче «Летающего цирка Монти Пайтона», который так и назвали — «Спам». В эпизоде официантка читает вслух меню — в нём все блюда, кроме одного, содержат консервы торговой марки SPAM. Словом вооружились тогдашние интернет-абьюзеры, чтобы мешать другим людям общаться в чатах. В результате спамом стали называть любые нежелательные письма и сообщения.
Робот (от чеш. robota — барщина, тяжёлая работа) — автоматизированное устройство, которое действует по определённой программе.
Любопытно, но одно из самых популярных слов IT-мира пришло не из английского, а из чешского языка. Термин «робот» ввёл писатель Карел Чапек. В 1920 он написал пьесу «Р.У.Р.» («Россумские универсальные роботы») — действие происходит на фабрике, где производят «искусственных людей». Писатель всё не мог придумать, как попроще назвать этих существ, поэтому обратился к брату, Йозефу Чапеку, который и предложил образовать неологизм от чешского слова robota.
Читая эту подборку, вы, наверное, заметили, что здесь нет сложных аббревиатур и слов, которые так характерны для технических дисциплин. Почти все представленные выше термины — простые, но яркие метафоры. И хотя некоторые из них возникли спонтанно, кого-то может удивить такая художественность языка в подобной сфере. Ведь на первый взгляд кажется, что в ней нет места образному мышлению.
На самом деле IT-индустрия никогда не противопоставлялась творчеству. Напротив, прокачанное образное мышление помогает стать первоклассным айтишником. Оно напрямую влияет на умение планировать и моделировать — важный навык программистов и инженеров.
Кроме того, метафоры позволяют лучше понимать абстрактные явления и решать проблемы, для которых ещё нет готовых алгоритмов. Художественность языка упрощает и само общение — ускоряет работу внутри коллектива. Иными словами, образный язык в IT-словаре — это вовсе не парадокс, а закономерность.
Учись бесплатно:
вебинары по программированию, маркетингу и дизайну.
Участвовать
Школа дронов для всех
Учим программировать беспилотники и управлять ими.
Узнать больше
2011/09/15 12:57:57
В программировании баг (англ. bug — жук) — жаргонное слово, обычно обозначающее ошибку в компьютерной программе или системе, которая выдает неожиданный или неправильный результат. Большинство багов возникают из-за ошибок, допущенных разработчиками программы в её исходном коде, либо в её дизайне. Также некоторые баги возникают из-за некорректной работы компилятора, вырабатывающего некорректный код. Программу, которая содержит большое число багов и/или баги, серьёзно ограничивающие её работоспособность, называют нестабильной или, на жаргонном языке, «глючной», «глюкнутой», «забагованной», «бажной», «баг(а)нутой» (англ. unstable, buggy).
Термин «баг» обычно употребляется в отношении ошибок, проявляющих себя на стадии работы программы, в отличие, например, от ошибок проектирования или синтаксических ошибок. Отчет, содержащий информацию о баге также называют отчетом об ошибке или отчетом о проблеме (англ. bug report). Отчет о критической проблеме (англ. crash), вызывающей аварийное завершение программы, называют крэш-репортом (англ. crash report).
«Баги» локализуются и устраняются в процессе тестирования и отладки программы.
Багом также называют определённый вид маркера на индикаторах.
Этимология
Легенда о мотыльке и день тестировщика
Широко распространена легенда, что 9 сентября 1945 года учёные Гарвардского университета, тестировавшие вычислительную машину Mark II Aiken Relay Calculator, нашли мотылька, застрявшего между контактами электромеханического реле, и Грейс Хоппер произнесла этот термин. Извлечённое насекомое было вклеено скотчем в технический дневник, с сопроводительной надписью: «First actual case of bug being found» (англ. «первый реальный случай, когда жук был найден»). Считается, что этот забавный факт положил начало использованию слова «debugging» в значении «отладка программы», однако, скорее всего, фраза является каламбуром.
Запись в тех.журнале
В действительности этот случай произошёл 9 сентября 1947, а не 1945, года. Знаменитый мотылек был передан в музей вычислительной техники, где он и хранится до сих пор. Под его стендом имеется надпись, которая гласит, что этот мотылек стал первым из обнаруженных багов в истории компьютерной техники. С тех пор это слово стало широко использоваться компьютерщиками во всем мире. А тот день, когда насекомое было обнаружено, решено было сделать профессиональным праздником всех тестировщиков.
Исторические факты
Между тем, слово «bug» в современном значении употреблялось задолго до этого персоналом телеграфных и телефонных компаний в отношении неполадок с электрооборудованием и радиотехникой. В течение Второй мировой войны словом «bugs» назывались проблемы с радарной электроникой. В 1878 году Томас Эдисон писал:
Это повторялось снова и снова со всеми моими изобретениями. Первым шагом была интуиция, за ней следовала вспышка, затем возникали препятствия — и они исчезали, потом возникали Баги — так называются маленькие недочеты и трудности — и необходимы месяцы постоянного поиска, исследований и тяжелого труда до успеха или неудачи.
It has been just so in all of my inventions. The first step is an intuition, and comes with a burst, then difficulties arise—this thing gives out and [it is] then that «Bugs»—as such little faults and difficulties are called—show themselves and months of intense watching, study and labor are requisite before commercial success or failure is certainly reached. [1]
Употребление
Популярное выражение «Это не баг, это фича» следует понимать буквально: это не ошибка, это предусмотренная особенность работы программы. Так как к программному обеспечению применяются схожие законы об авторском праве, что и к текстовым публикациям, то ошибка в программе юридически является всего лишь мнением автора.
Поиск и исправление ошибок
Основная статья: Багхантеры (Bughunter) Bug bounty Поиск уязвимостей
Для отладки программы (англ. debugging) разработчиками ПО используются специальные программы-отладчики (англ. debugger). Например, в операционной системе Windows можно использовать программу WinDbg из пакета Microsoft Debugging Tools for Windows. Для GNU/Linux и ряда других UNIX-подобных операционных систем существует отладчик GDB (GNU Debugger).
Отчёты об ошибках
Основная масса багов обычно отлаживается на этапе компиляции и тестирования программы. Однако некоторая часть ошибок всё же попадает в релиз и проявляется на компьютерах конечных пользователей в процессе эксплуатации ПО. Для повышения качества программного обеспечения пользуются специальными программами, цель которых — отловить ошибку в целевом приложении, собрать необходимую информацию об её симптомах и отправить отчёт по интернету к разработчикам данного ПО.
Например, в операционную систему Windows встроена утилита Dr. Watson, которая по умолчанию отлавливает ошибки в приложениях пользователя и отправляет отчёт на специальный сервер компании Microsoft. Также в качестве примера можно привести аналогичные библиотеки Breakpad[2] и CrashRpt[3].
Примечания
- ↑ Источник: Edison to Puskas, 13 ноября 1878, Edison papers, Edison National Laboratory, U.S. National Park Service, West Orange, N.J., цитируется по книге Томаса П. Хьюджеса (Thomas P. Hughes), American Genesis: A History of the American Genius for Invention, Penguin Books, 1989, стр.
- ↑ Breakpad. Google. Проверено 11 августа 2009.
- ↑ CrashRpt.
“It’s not a bug, it’s a feature.” “Это не ошибка, это особенность”. В тот или иной момент мы все слышали, как кто-то использовал эту фразу или ее вариацию. Чтобы саркастически описать какое-то неисправное оборудование или программное обеспечение.
Действительно, слово “баг” (bug) уже давно широко распространено в мире компьютеров. А “отладка” (debugging) – акт поиска и исправления ошибок – является общепринятым термином. Но почему это так? Как неофициальное слово, обозначающее насекомое, стало синонимом компьютерной ошибки или сбоя?
Согласно наиболее часто повторяемой истории происхождения, в 1947 году техники, работавшие над Harvard Mk II – первым релейным компьютером, созданным военно-морским флотом США, – столкнулись с неисправностью. И, открыв механизм, обнаружили, что мотылек залетел в компьютер и закоротил одно из его электрических реле. Таким образом, первая компьютерная ошибка была в буквальном смысле bug (насекомое), и название прижилось.
Но хотя этот инцидент, похоже, действительно произошел, он почти наверняка не является источником термина. Поскольку использование термина “баг” для обозначения ошибки или сбоя предшествует событию почти на столетие.
Первая гипотиза появления термина
Первое зарегистрированное использование “бага” в этом контексте исходит от американского изобретателя Томаса Эдисона. Который в письме от 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” определялась как “Любая неисправность или неполадка в соединениях или работе электрического устройства”.
Три года спустя Стандартный словарь английского языка Фанка и Марча определил термин для широкой публики следующим образом: “Неисправность в работе системы или любого электрического устройства”.
День рождения Бага
Таким образом, к началу 20 века этот термин прочно утвердился в инженерных кругах. И вскоре начал входить в повседневное употребление. Писатель-фантаст Айзек Азимов еще больше популяризировал этот термин в своем рассказе 1944 года “Поймай кролика”. Написав: “U.S. Robots должны были удалить баги из множества роботов. И было много багов, и всегда оставалось по крайней мере полдюжины их для полевых испытаний”.
Несмотря на то, что термин “баг” использовался более 70 лет, только после вышеупомянутого инцидента с мотыльком в 1947 году термин “bug” стал неразрывно связан с областью компьютеров. Насекомое, о котором идет речь, было обнаружено лейтенантом ВМС Грейс Хоппером. Пионером вычислительной техники, впоследствии разработчиком предшественника COBOL, одного из самых первых языков программирования.
В любом случае, в 3:45 вечера 9 сентября 1947 Хоппер приклеила слегка хрустящую моль в бортовой журнал компьютера скотчем. Радостно отметив рядом с ним: “Первый фактический случай обнаружения бага”.
Страница исторического журнала с мотыльком сохранилась и до наших дней. В коллекции Смитсоновского музея естественной истории в Вашингтоне. Хотя в настоящее время она не выставлена на всеобщее обозрение.
И в память об этом печально известном инциденте 9 сентября программисты по всему миру отмечают как “День тестировщика”. Напоминая всем о жизненно важной роли, которую играют те, кто неустанно охотится и уничтожает различные сбои, ошибки, гремлинов и призраков в каждой машине.
Будем благодарны за Вашу поддержку!
Какие бывают баги
1. Немного этимологии и энтомологии
Давайте посмотрим попристальней на такое знакомое и (до боли?) родное слово БАГ. Происходит оно от английского слова Bug, означающего «насекомое». Есть еще много сторонних значений, в частности английское выражение «to go bugs» — сойти с ума, что легко кореллируется со вполне русским «тараканы в голове завелись». Также вспоминаются и «жучки на линии» (тоже, кстати, по-английски – bugs). И опять мы пришли к насекомым.
Еще в 1878 году, Томас Альва Эдисон (да-да, тот самый!) в письмах к своему соратнику Пускасу писал: «It has been just so in all of my inventions. The first step is an intuition, and comes with a burst, then difficulties arise — this thing gives out and [it is] then that ‘Bugs’ — as such little faults and difficulties are called — show themselves and months of intense watching, study and labor are requisite before commercial success or failure is certainly reached». Тем же словом, инженеры называли и сбои радарной электроники во время второй Мировой Войны. Конечно, более распространена история о том, что в 1946 году разработка компьютера Марк-2 (Mark-II) были приостановлена из-за сбоя его функционирования, вызванного попаданием мотылька между контактов. Трупик мотылька был извлечен и приклеен к отчету липкой лентой с комментарием «First actual case of bug being found.» («Первый реальный случай нахождения жучка»). Как нетрудно догадаться, примерно оттуда же «растут уши» и слова «дебаггер» (debugger) – буквально «избавитель от жучков».
2. Виды багов.
Простейший (не как инфузория-туфелька, а самый простой для понимания, модно сказать «классический») баг – это несоответствие между ожидаемым результатом (ОР) и фактическим результатом (ФР). Разберем это на примере:
Действия | Ожидаемый результат | Фактический результат |
---|---|---|
Ввести в ячейку выражение «=2+2*2» (без кавычек) и нажать ENTER | 6 | 8 БАГ!!!! |
(это, кстати, реальный баг старого Microsoft Excel – он не учитывал приоритета математических операций, по которому умножение имеет высший приоритет по сравнению со сложением)
Все просто. Ждем одно – получаем другое. Баг.
Я не буду перечислять все подвиды бага классического – от опечаток в данных и опечаток в коде до бесконечных циклов, от использования оператора присвоения вместо оператора проверки равенства до использования неинициализированной переменной, от состояния гонки (race condition) в мультипоточных приложения до переполнения буфера, и так далее, и тому подобное – все это достаточно обыденные и ясные явления. Обратимся к малознакомой экзотике.
2.1. Гейзенбаг (Heisenbug)
Баг, названный в честь Гейзенбергского Принципа неопределенности – концепции квантовой физики. Простым (хоть слово «просто» здесь и не очень применимо) примером подобного бага будет являться ошибка, проявляющаяся, когда программа запускается на исполнение в рабочей среде, но исчезающая, когда программу запускают в дебаггере.
2.2. Борбаг (Bohrbug)
Тип бага, названный так в честь атомной модели Бора. В противоположность Гейзенбагу, он проявляется постоянно при одном и том же стечении обстоятельств. Вопрос в том, что весь набор обстоятельств бывет невозможно (или очень трудно) отследить.
2.3. Мандельбаг (Mandelbug)
Назван в честь Бенуа Мандельброта, внесшего огромный вклад в теорию фракталов. Мандельбагами называют ошибки, чьи причины настолько сложны и неясны, что фактически кажутся хаотичными и не поддающимися описаниями. (ключевое слово «кажутся»). Подобное, может быть вызвано, например, медленной реакцией системы – то есть ошибка уже произошла, но об этом вы узнаете только через некоторое время, что сильно затруднит локализацию причин.
2.4. Шрединбаг (Schroedinbug)
Шрединбаг назван в честь известного парадокса с кошкой Шредингера (или эта несчастная животина – кот?). Он заключается в том, что кто-нибудь читает код программы (работающей уже некоторое время) и восклицает «Да этого не может быть! Она просто не может функционировать!», после чего программа прекращает свое функционирование пока данная ошибка не будет исправлена. Будучи, казалось бы, абсолютно фантастической, данная ошибка попадается в реальности – спросите знакомых ветеранов- разработчиков, они подтвердят. Хотя, конечно, последующий анализ, как правило, позволяет отнести ошибку к разделам 2.1, 2.2 или 2.3, это удается не всегда.
2.5. Фазы луны
На самом деле такой ошибки не существует – это популярная отговорка тех, кто не хочет (не имеет желания и/или времени) разбираться в сложных причинах возникновения ошибки. Тем не менее, в истории существует пара примеров, когда ошибки возникали буквально из-за фаз луны. Я не буду приводить здесь эти истории, надеясь, что никому из нас не придется работать со столь сложными устройствами. Тем не менее, в любом случае, хотелось бы предостеречь всех от неосторожных умозаключений и попросить быть более внимательными, настойчивыми и скрупулезными в своей работе.
2.6. Статистический (более известный как количественный) баг
Баг возникающий при произведении программой большого количества каких-либо действий. Примером данной ошибки может служить запуск программы, которая должна равномерно расположить на плоскости некоторое количество точек. Если, например, при большом количестве точек программа не только неправильно располагает их, но и норовит расположить все на одной стороне плоскости (при этом до определенного количества точек работая прекрасно) – вуаля, количественный баг.
2.7. Демонстрационный эффект.
Ну и конечно, известный всем, «эффект первого показа», не раз случавшийся и с вашим покорным слугой. Как только приходит пора показать, например, прекрасно функционировавший на тестовом стенде юнит, обязательно происходит что-то ужасное. Причны, как правило, тривиальны – пропуск «незначительных» тест-кейсов, невнимательность к деталям и неучтенные юз-кейсы. Опять же – будьте внимательней.
На этом я закончу краткий обзор багов, буду рад Вашим замечаниям и предложениям.
Содержание
- Что значит баг (bug) в интернет-сленге?
- Возникновение слова
- Использование в Интернете
- Другие определения
- Примеры использования
- Заключение
- багаття
- См. также в других словарях:
- Баг — это что?
- Баг — это что такое?
- Происхождение слова
- Игровые баги
- Как уберечь себя от багов?
- Значение слова «баг»
- Баг I
- Делаем Карту слов лучше вместе
- Что такое баги и откуда они берутся?
Что значит баг (bug) в интернет-сленге?
Баг – это слово, взятое от английского «bug», которое переводится как «мелкая букашка», «жук». Для программистов термин обозначает ошибку кода, программы. Присутствует множество теорий возникновения этого жаргонизма. Рассматриваться будут самые популярные.
Возникновение слова
Теперь поговорим об истории слова. Баг – термин, применяющийся чаще всего программистами.
По легенде, его использовали еще в двадцатом веке. 1945 год, ученые Гарвардского университета испытывали вычислительный прибор. При проведении испытания устройство не могло нормально работать. После исследований выяснили причину, которой оказалась застрявшая между проводами моль. Бабочку извлекли из аппарата, вписав событие в дневник. В итоге, слово «баг» приобрело значение «ошибка».
Есть версия, что слово появилось при Томасе Эдисоне, который искал таракана внутри своего аппарата. Насекомое не нашлось. Позже оказалось, что неполадка была внутри устройства.
Использование в Интернете
Интернет-сленг, состоит, в основном, из различных англицизмов. Например, понятие фича (feature) переводится как «особенность». Она ассоциируется у пользователей с дополнительными возможностями программы или игры.
Блогеры, играющие в игры, часто обращают внимание на ошибки, допущенные программистами. Отправляя жалобу разработчикам, просят пофиксить недостатки.
Чем больше создавалось компьютеров, тем чаще «bug» стало использоваться в разговорной речи Интернета. Отсюда появились новые термины и понятия, использующиеся для сокращения текста.
Другие определения
Существует версия, гласящая, что баги –это чудища из детской фантазии. Некоторые британские и американские родители пугают своих детей за непослушание. Русская версия монстров – бука. Его также вспоминают мамы и бабушки, когда хотят испугать отпрысков. Внешне они выглядят по-разному.
Народные байки гласят, что это волосатые чудовища, имеющие запутанную шерсть. Они похожи на темных медведей. Хорошо описывают таких существ американские мультфильмы. Дети верят, что баги вползают в дымоходы и через трубы, прячутся за шкафами, темными местами. Такой экскурс показывает, что слово имеет множество смыслов.
Примеры использования
Чаще всего понятие используется людьми, тестирующими софт . Также проверяться может и девайс. Программист – тоже человек, может допустить ошибку. Игра или программа, имеющая баги, отдается на проверку. Анализирует все тестировщик, подчеркивая недочеты. Мануал помогает ему определить упущения.Если на глаза попалась недоработка, он тут же сообщает о ней, называя это багом.
Заключение
Сленг в сети Интернет активно развивается. Юзеры каждый день придумывают новые выражения и слова, чтобы облегчить общение. Большинство заимствуют из иностранных языков, основным является английский.
Одно из иностранных слов – «bug», которое часто используется в разработке. В среде программистов оно незаменимо.
Источник
багаття
1 багаття
См. также в других словарях:
багаття — я, с. 1) Купа дров, хмизу, ломаччя і т. ін., що горить; вогнище. 2) діал. Вогонь … Український тлумачний словник
багаття — іменник середнього роду … Орфографічний словник української мови
ватра — багаття … Зведений словник застарілих та маловживаних слів
ватра — багаття, вогнище [XI] ватра (22, 494) – “багаття”; [ІЦ 2006] … Толковый украинский словарь
субітка — багаття для випалювання вугілля [I] … Толковый украинский словарь
Олесь О. — Олесь, О. псевдоним талантливого украинского поэта. Родился в 1878 г. в Харьковской губернии; окончил среднюю сельскохозяйственную школу и ветеринарный институт. Впервые его стихотворения появились в печати в 1905 г. в альманахах Багаття ,… … Биографический словарь
Маковей, Осип — украинский писатель. С 80 х годов сотрудничал во многих галицийских периодич. изданиях, где поместил ряд повестей, рассказов, стихотворений и статей разнообразного содержания, писал фельетоны в журнале «Зоря», а в «Литературно… … Большая биографическая энциклопедия
Gemination — For another meaning, see Tooth gemination. Not to be confused with Germination or Geminal. In phonetics, gemination happens when a spoken consonant is pronounced for an audibly longer period of time than a short consonant. Gemination is… … Wikipedia
Маковей — Осип (1867 1925) галицийский поэт, беллетрист и критик. Родился в семье бедного мещанина в Галиции. Учился в народной школе, в львовской украинской гимназии и наконец в университете (с 1887), где прослушал курс украинской литературы и… … Литературная энциклопедия
Игорь Леонтьевич Муратов — Игорь Муратов (*15 июля 1912, г. Харьков, Украина 29 марта 1973, там же) украинский поэт, переводчик, драматург; участник войны СССР с Финляндией (1939 1940); узник немецких лагерей военнопленных; отец украинского кинорежиссёра Александра… … Википедия
Игорь Муратов — (*15 июля 1912, г. Харьков, Украина 29 марта 1973, там же) украинский поэт, переводчик, драматург; участник войны СССР с Финляндией (1939 1940); узник немецких лагерей военнопленных; отец украинского кинорежиссёра Александра Муратова и тесть… … Википедия
Источник
Баг — это что?
Порой, бороздя просторы интернета, можно встретить слово «баг». Что оно обозначает и какова этимология данного слова? Узнать ответы на данные вопросы вы сможете в этой статье.
Баг — это что такое?
Слово «баг» произошло из английского языка. На английском bug (произносится как «баг») — это букашка или жучок. Употребляется данное слово в основном среди программистов, тестеров и геймеров. Но что оно обозначает?
Баг — это несоответствие между техническим заданием программы и реальным поведением системы. Вследствие этого несоответствия софт не может выполнить задуманную разработчиком функцию. Говоря простым языком, баг — это ошибка, которая происходит из-за недоработки в исходном коде программы.
Происхождение слова
Пожалуй, теперь стоит поговорить об этимологии данного слова. Баг — это профессионализм, который чаще всего применяется в среде программистов. Есть несколько вариантов происхождения данного слова.
Если верить легенде, то данный профессионализм появился еще в далеком 1945 году. Произошло это, когда ученые из Гарвардского университета проводили тестирование новой вычислительной машины под названием Mark II Aiken Relay Calculator. Устройство отказывалось работать, и причиной этому стал крохотный мотылек, который застрял между контактами. Насекомое извлекли из вычислительной машины и влепили в специальный технический дневник. Около мотылька находилась сопроводительная надпись «First actual case of bug being found», что переводится как «Первый случай в практике, когда был обнаружен жучок (баг)». После этой забавной истории слово «баг» и стало использоваться в значении «ошибка».
Также существует версия, что этот профессионализм появился задолго до испытаний вычислительного устройства. Некоторые считают, что термин «баг» обязан своим происхождением известному изобретателю Томасу Эдисону. По легенде, Эдисон искал в своем фонографе таракана, но его там не оказалось. Баг был в самом аппарате.
Очередная версия гласит, что слово «баг» появилось во времена Второй мировой войны. Тогда под данным термином подразумевали неполадки с радарной техникой.
Слово «баг» начало быстро распространяться. В 80–90-х годах данный профессионализм употребляли лишь программисты. С появлением интернета слово начало активно муссироваться. Сейчас же «баг» в своем лексиконе употребляют все, кто имеет хотя бы малейшее отношение к компьютерным технологиям (геймеры, обычные интернет-юзеры и т. д.). Поэтому сейчас его можно смело назвать частью интернет-сленга.
Игровые баги
Баги есть не только в программах, они довольно часто встречаются и в играх. Баг игры — это недоработка разработчиков, из-за которой игровой процесс идет не так, как задумывалось изначально. За всю историю гейм-индустрии выходило тысячи забагованных проектов. О самых известных и занимательных мы и поговорим в этом разделе.
Пожалуй, самым забагованным проектом за последние несколько лет можно назвать Assassin’s Creed: Unity. Проекты «Юбисофт» никогда не славились своей оптимизацией, но Unity — это настоящая энциклопедия багов. Порой персонажи находятся в очень странных и неестественных позах, проваливаются в текстурки, проходят через стены или же попросту зависают. Чего только стоит баг, который в считаные часы облетел весь интернет (у персонажей просто пропадали лица, из-за чего выглядели они довольно жутко). Даже сама «Юбисофт» признала свою ошибку, выпустила патч, который фиксит баги, и возместила покупателям ущерб.
Порой игроки воспринимают баги в качестве фичи, особенности игры. Так произошло с мегауспешной серией игр под названием Mortal Kombat. В первой части игры был баг, который перекрашивал Скорпиона (одного из основных персонажей игры) в красный цвет. При этом имя героя заменялось на сообщение об ошибке Error Macro. Игроки посчитали, что эта недоработка является задумкой разработчиков, а красный ниндзя — это дополнительный секретный персонаж. Эду Буну (создатель МК) понравилась данная затея, и в последующей части он добавил в игру этого героя под именем Эрмак (сокращение от той самой Error Macro).
Как уберечь себя от багов?
Для того чтобы убрать баги из своих проектов, разработчики нанимают специальных людей, которые называются тестерами. Задача тестера — найти все недоработки программы, игры или же любого другого софта.
Но не всегда тестеры находят баги, и порой пара-тройка недоработок все же просачивается в финальную версию проекта. В таком случае вся надежда на пользователей, которые могут отправить специальное письмо с описанием ошибки — баг-репорт. Это поможет улучшить конечный продукт. Кроме того, крупные компании хорошо вознаграждают за нахождение багов в их продукции. К примеру, в качестве поощрения за нахождение значимых багов в своем браузере Google готова дать 15 тысяч долларов.
Источник
Значение слова «баг»
- В программировании баг (англ. bug — первичные значения: клоп, любое насекомое, вирус) — жаргонное слово, обычно обозначающее ошибку в программе или системе, из-за которой программа выдает неожиданное поведение и, как следствие, результат. Большинство багов возникают из-за ошибок, допущенных разработчиками программы в её исходном коде, либо в её дизайне. Также некоторые баги возникают из-за некорректной работы компилятора, вырабатывающего некорректный код. Программу, которая содержит большое число багов и/или баги, серьёзно ограничивающие её работоспособность, называют нестабильной или, на жаргонном языке, «глючной», «глюкнутой», «забагованной», «бажной», «баг(а)нутой»).
Термин «баг» обычно употребляется в отношении ошибок, проявляющих себя на стадии работы программы, в отличие, например, от ошибок проектирования или синтаксических ошибок. Отчет, содержащий информацию о баге также называют отчетом об ошибке или отчетом о проблеме (англ. bug report). Отчет о критической проблеме (англ. crash), вызывающей аварийное завершение программы, называют крэш-репортом (англ. crash report).
«Баги» локализуются и устраняются в процессе тестирования и отладки программы.
1. комп. жарг. ошибка в компьютерной программе ◆ В программе найден баг. ◆ Это не баг, это фича
2. комп. жарг. запись в багтрекере ◆ Пометил баг 419594 как WONTFIX. Если у кого есть какие-нибудь возражения/предложения, то рекомендую писать на странице обсуждения бага… «Форум Mozilla Россия», 2008 г.
Баг I
1. мужское имя ◆ Моего друга зовут Баг.
Делаем Карту слов лучше вместе
Привет! Меня зовут Лампобот, я компьютерная программа, которая помогает делать Карту слов. Я отлично умею считать, но пока плохо понимаю, как устроен ваш мир. Помоги мне разобраться!
Спасибо! Я стал чуточку лучше понимать мир эмоций.
Вопрос: карамельный — это что-то нейтральное, положительное или отрицательное?
Источник
Что такое баги и откуда они берутся?
Не секрет, что в компьютерных программах, особенно игровых, порой встречаются разнообразные баги, которые иногда мешают ими пользоваться, а иногда бывают даже полезны.
Но давайте разберемся, что такое баги, почему они возникают и какими бывают.
Слово «баг», как и подавляющее большинство терминов программирования, заимствовано из английского языка, в котором «bug» означает насекомое – клопа, жука и т.д. Считается, что впервые его использовали разработчики одного из первых компьютеров – американского Mark II во второй половине 40-х годов двадцатого столетия. Однако слово «баг» в значении «ошибка, неполадка, сбой» встречается задолго до этого – например, в рабочих дневниках знаменитого изобретателя Т.Эдисона.
В современном сленге программистов слово «баг» используется для обозначения мелких ошибок в компьютерных программах, приводящих к их некорректной работе. Для сложных современных игровых программ наличие багов является неизбежным, особенно в первые месяцы после выпуска игры в продажу.
В дальнейшем разработчики понемногу «вылавливают» и устраняют багги, как вредоносных насекомых, забравшихся в программу – с чем, собственно, и связано использование этого слова.
В игровых программах багами называют различные ошибки, допущенные программистами, из-за которых сюжет игры может развернуться неожиданным образом, а персонаж – получить несвойственные ему черты или способности.
Некоторые из багов мешают игрокам, приводя к гибели персонажей или временной потере их возможностей, другие, наоборот, могут помочь решить игровую задачу нестандартным образом, третьи ни на что особо не влияют, кроме красоты и зрелищности игры.
Процесс избавления от багов достаточно сложен, и одной только проверкой кодов, как правило, нельзя добиться обнаружения всех ошибок. На помощь программистам приходят тестировщики – люди, которые испытывают программы, чтобы обнаружить в них баги и сообщить о каждом из них программистам.
Документ, описывающий баг, называется баг репортом. По сути, каждый геймер, обнаружив баг, может составить баг репорт и отправить его в адрес разработчиков игры.
Для описания багов существует специальная формализованная таблица, которую заполняет тестировщик. Из сообщенных сведений программист должен узнать суть проблемы, найти место, которое нуждается в корректировке, и внести нужные исправления. Разумеется, для обычных пользователей это вряд ли возможно – им достаточно будет просто описать баг своими словами.
Как и в любом другом программном обеспечении, в социальной сети ВКонтакте могут встречаться различные баги, т.е. ошибки программного кода. Они могут приводить к различным неудобствам и помехам – например, искажать изображение на экране, «рассыпать» тексты, превращая их в набор бессмысленных значков и т.д. Некоторые баги предоставляют дополнительные возможности пользователям.
Так, известно, что редактировать свои записи можно только в течение суток после их опубликования. Некий пользователь под ником «Мгновения Грядущего» опубликовал точные «предсказания» событий 2014 года, датированные первым декабря 2013 и снабженные картинками произошедших событий – Олимпиады в Сочи, Крымской Весны и т.д.
Разумеется, этот пользователь ничего не предсказывал, а просто воспользовался багом, позволившим ему исправить дату своих записей на более раннюю.
Английское слово «feature», означающее характерную черту, особенность явления или объекта, достаточно широко используется геймерами. Нередко фичами называют баги, полезные для игрока и обеспечивающие его преимущество. В таких случаях игрок, отвечая на обвинение, что он пользуется багом, возражает, что у него не баг, а фича.
Администрация игровых порталов беспощадно борется с этим явлением: игрок, упорно выдающий выгодный ему баг за фичу, может быть наказан вплоть до бана.
Источник
Историки до сих пор спорят, как называть эту войну: третья космическая (или четвертая), а может, Первая межзвездная. Мы же называем ее просто войной с багами |
Starship troopers |
Баг (англ. bug — жук, мелкое насекомое) — распространенное среди программистов название ошибок в программах.
Следует отличать баг от глюка, который есть не что иное, как симптом бага, вызывающий у юзера нервно-истерическую реакцию.
Также имеется производное от «баг» понятие «бага». «Бага» — то же самое, что и «баг», только женского рода. Считается, что фиксить «багу» приятнее, чем «баг».
История[править]
Версии:
- По легенде, 9 сентября 1945 года учёные Гарвардского университета, тестировавшие вычислительную машину Mark II Aiken Relay Calculator, нашли мотылька, застрявшего между контактами электромеханического реле, и Грейс Хоппер сгоряча сморозила сей термин. Извлечённое насекомое было вклеено в технический дневник с сопроводительной надписью: «First actual case of bug being found». Этот забавный факт положил начало использованию слова «баг» в значении «ашипка».
- Есть и версия, по которой термин родился гораздо раньше, когда Эдисон искал таракана в фонографе. Но там его не было, баг был в самом устройстве!
- По другой версии, виной тому случай, произошедший 9 сентября 1947, а не 1945 года. Слово «bug» в современном значении употреблялось задолго до этого. Так, в течение Второй мировой войны словом «bugs» назывались проблемы с радарной электроникой.
- По самой приземленной версии, слово произошло от английского глагола to bug (пилить, беспокоить, стоять над душой), или бранного слова bugger (черт побери).
Впоследствии слово баг было перенято всеми хоть каким-то образом приобщенными к компьютерам людьми и его значение в каждом конкретном случае стало разным. Но понятие ашипки по-прежнему является обобщающим для всех этих значений, алсо, 9 сентября отмечается День тестировщика.
Легенды[править]
Самый известный баг тысячелетия назывался «Ошибка 2000 года», или Y2K Error. Суть дефекта состояла в том, что государственные и военные конторы в Пендостане и Европах имели на вооружении древние софтины, написанные бородатыми студентами из НИИ. Это древнее ПО хранило только две последние цифры из номера года (например, 98 вместо 1998). При наступлении 2000 года эти софтины должны были записать текущий год как 00, что вызвало бы Апокалипсис, ядерную войну и приход Большого Волосатого Друга. Эта тема стала подниматься говножурналистами по говноящику во всяких говногазетёнках (пример), что вызвало панику у домохозяек и много красных задниц в программистских конторах. После этого началась война лихорадочных правок существующих софтин. Багу искали даже там, где её физически не могло быть. Кстати, этот самый баг стал чуть ли не центром повествования в одном из эпизодов сериала «Меня зовут Эрл».
Есть мнение, что шумиху вокруг Y2K развивали в основном откатчики (обеспечение госконтор Y2K Compliant софтом, должности типа Y2K Compliance Manager, конторы по тестированию на совместимость с Y2K…) — короче, под это дело было съедено немало средств, человеко-лет и машинного времени тоже.
Настоящей баг-легендой можно назвать операционную систему Windows версии 95-98, а также выкидыш этой серии Windows Millenium, занявшую шестое место в списке худших программных продуктов ушедшего тысячелетия. С выходом висты мелкомягкие вступили в борьбу за первое место в текущем. За преждевременный выпуск этих продуктов их создатель Билли был стопицот раз проклят и приговорён к пятнадцати годам публичного расстрела через повешение за борт на электрическом стуле, а также вошёл в историю и анекдоты мемом — «It was a beta-version!»
Классификация[править]
Баги в WinXP. Теперь и с музыкой.
И еще немного.
Баги классифицируются по степени их вредности:
- Blocker — система или её часть не работает, невозможно использовать функционал. Пример — приложение крешит на старте.
- Critical — баг, очень заметный для юзера и затрудняющий работу с системой, но не блокирующий её полностью. Пример — приложение даёт возможность купить товар, но зависает при просмотре списка подтверждённых заказов.
- Major — система работает, но не так, как нужно. Пример — при покупке клиенту ВНЕЗАПНО начисляется скидка 3%, которая вообще-то не планировалась.
- Minor — с системой всё в порядке, но что-то режет глаз или незначительно мешает работать. Например, не работает скроллинг перетаскиванием ползунка, но страницу можно скроллить колёсиком мыши.
- Trivial — баг, который не влияет на работу программы. Например, ошибка в тексте.
Соответственно строятся и приоритеты фикса. Сначала разрабы будут чинить блокеры и криты (если они есть), потом мажоры и только потом, если/когда будет время — миноры и тривиалы.
В некоторых трекерах используется другая система приоритетов — High, Normal, Low, Lowest. По сути то же самое.
Также баги классифицируются по частоте появления:
- постоянно (воспроизводимость 100%)
- иногда (самый сволочной тип бага, «плавающий»);
- только на машине у заказчика;
- только на машине у тестировщика;
- только у конкретного юзера на проде,
а также по тому, кто и где заметил симптомы. Например, если баг заметил Мегабосс Всех Заказчиков на уже запущенной системе, то баг будет исправлять все выходные весь IT-отдел, включая уборщицу.
Особо приятные баги — showstoppers, найденные в пятницу вечером. Они могут доставить несказанное удовольствие любому программисту, который любит уходить с работы в субботу утром.
Баги в больших количествах производятся индусами и китайцами, а также различными быдлокодерами. Продукты, содержащие передоз этих багов, называются багодромом.
Имеется специальное заклинание «Это не баг, это фича», которое позволяет избавиться от бага с наименьшими потерями, то есть ничего не делая. Однако этим колдовством владеют только самые опытные программисты.
Постинг бага[править]
Баг заносится в специальную систему, называемую трекер (англ. tracker — отслеживатель), например Jira или Redmine. Описание бага делается по следующему шаблону:
- Заголовок (англ. heading) — о чём в целом баг.
- Описание (англ. description) — более подробно в чём суть бага.
- Автор (англ. Reporter) — кто запостил баг. Проставляется автоматически по учётной записи в трекере.
- Ответственный (англ. Assignee) — либо проект-менеджер заказчика, который будет потом раскидывать баги по разрабам, либо непосредственно разраб, который будет чинить баг (если он известен и разрешено кидать баг сразу на него). Назначается вручную.
- Шаги для воспроизведения (англ. steps to reproduce, STR) — что надо сделать, чтобы воспроизвести баг. Прям по шагам с номерами.
- Фактический результат (англ. actual result) — что происходит в итоге.
- Ожидаемый результат (англ. expected result) — что должно происходить. Обычно берётся из техзадания (ТЗ), здравого смысла или согласования с заказчиком «должно быть так».
- Окружение (англ. expected result) — тип браузера/девайса, на котором баг воспроизводится. Чаще всего это all devices, но бывают баги, которые воспроизводятся только в определённом браузере или на определённых девайсах/платформах.
- Версия/ревизия клиента (англ. client version) — версия приложения, в которой найден баг.
- Аттачи (англ. attachments) — скриншоты и видео, подтверждающие проблему. В некоторых случаях также нужны логи.
Пример:
Подробнее…
Заголовок: Ошибка 404 при переходе в корзину товаров
Описание: При переходе в корзину товаров пользователя появляется ошибка 404.
Шаги для воспроизведения:
1. Открыть сайт
2. В правой боковой панели нажать «Корзина»
Фактический результат: Появляется ошибка 404
Ожидаемый результат: Открывается экран с корзиной товаров
Окружение: Chrome 85
Версия клиента: 1.0.1234
Новые баги имеют статус New/Open/To Do в зависимости от трекера. Когда разраб фиксит баг, он переводит его в статус Fixed и задача тестера — проверить, что баг исправлен в следующей версии приложения. В зависимости от результата проверки тестер закрывает баг (Closed — проблема исправлена) или переоткрывает обратно на разработчика (Re-Open — проблема не исправлена), чтобы тот фиксил снова.
Тестирование[править]
- Основная статья: Тестировщик
Для отлова багов в программах используют специально обученных охотников во все возможные дыры, называемых тестировщиками. Первой их задачей является сломать программу любыми средствами. У идеального тестировщика в вакууме на компьютере не работает ничего, потому что он всё сломал. У обычного тестера должна не работать только одна конкретная программа. Также является профитом, если тестер ломает мебель, бьёт стёкла и рвёт занавески. Пример.
Как известно, программисты очень сильно любят тестеров, поэтому тестер должен обладать разрядом по боксу для общения с особо неадекватными их представителями. А также тестер должен обладать рефлекторным умением посылать фаербол в ответ на заклинание «это фича».
Ссылки[править]
См. также[править]
- Фича
- Быдлокодер
- Windows
- BSOD
Это не баг, а фича | |
---|---|
Мета | DRM (SecuROM • StarForce) • Баг • Бот (Автоответчик) • Ботнет • Варез • Глюк • Гуй • Донат • Копирайт (By design) • Лог • Нюк • Рут (Не работай под рутом) • Спортивное программирование • Мегапиксель |
Фичи | 12309 • BSOD • Cookies • Embrace, extend and extinguish • FL Studio • Sheep.exe • Winlogon.exe • Бубен • Защита от дурака • Костыль • Машинный перевод • Пасхальные яйца • Свистелки и перделки • См. рис. 1 • Съешь ещё этих мягких французских булок • Termux |
Вредоносное | Винлок • Звонилка • Китайские пингвины • Пиксель смерти • Троян • Червь Морриса • BonziBuddy • MediaGet |
Компании | 1С • Apple • Google • Microsoft • SAP • Яндекс |
Движения | 8-bit • Open source (Красноглазики • Линуксоиды) • Вирусная сцена • Даунгрейд • Демосцена • Моддинг |
Офис | 3DS MAX • GIMP • GNU Emacs • Movie Maker • MS Paint • OpenOffice • PowerPoint • vi • Word • Блокнот • Фотошоп |
ОС | Android • BSD • DOS • MenuetOS • ReactOS • Windows (Phone 7 • Phone 8 • 7 • 8 • Vista) / Маздай • Линукс • Русская ОС • Фантом ОС |
Браузеры | Internet Explorer • Опера • Тормозилла (Огнелис • Lolifox) • Хром |
Интернет | Flash • I2P • Low Orbit Ion Cannon • Tor • Tunatic • Чат−клиенты (Miranda • QIP • Skype • Аська • Жаббер) |
Разработка | BrainFuck • C • C++ • C# • Java • Haskell • Ассемблер • Chaos Constructions |
Люди | LovinGOD • Балмер • Гейтс • Генерал Фейлор • Джобс • Митник • Поттеринг • де Раадт • Спольски • Столлман • Торвальдс • Шахиджанян • Ache666 |
Костыли | Cygwin • PunkBuster • T9 • Wine • Wishmaster • Антивирусы • Хакинтош • Сборки Windows • Denuvo |
Команды | ^H • ^W • Alt+F4 • Ctrl+Alt+Del • man • /me • /quit • rm -rf |
Вы, наверное, слышали это раньше: в программном обеспечении есть «баг», из-за которого что-то работает неправильно. Что такое компьютерный баг и откуда появился этот термин? Мы объясним.
Баг- это непреднамеренная ошибка в компьютерном программном обеспечении
«Компьютерный баг» или «программный баг» — это термин, обозначающий непреднамеренную ошибку программирования или дефект в компьютерном программном обеспечении или оборудовании. Баги возникают из-за человеческой ошибки в конструкции оборудования или где-то в цепочке программных инструментов, используемых для создания компьютерных приложений, прошивок или операционных систем.
Программная ошибка возникает, когда программист либо делает ошибку при написании программного обеспечения, либо пишет код, который работает, но имеет непреднамеренные последствия, которые не были предвидены программистом. Устранение ошибок в программном обеспечении называется «дебаг».
В сегодняшнем мире ошибки в программном обеспечении — серьезное дело. Почти 20 лет назад Национальный институт стандартов и технологий подсчитал, что ошибки в программном обеспечении обходятся экономике США почти в 60 миллиардов долларов в год (около 0,6% ВВП в 2002 году), и с тех пор эта цифра, вероятно, увеличилась. Хотя точно количественно оценить негативные последствия ошибок сложно, легко представить, как неисправное программное обеспечение может повлиять на производительность. Это может даже подвергнуть опасности жизнь людей на транспорте или поставить под угрозу жизненно важную инфраструктуру, такую как электростанции.
Почему мы называем их багами
Термин «баг» появился еще до изобретения компьютеров, и мы точно не знаем, кто изначально придумал термин «баг» для обозначения инженерного дефекта. В письменных источниках историки проследили это до Томаса Эдисона не ранее 1870-х годов.
Эдисон использовал этот термин в своих личных заметках и переписке для обозначения сложной проблемы, которая требовала решения, или инженерного дефекта, который требовал исправления. Он даже пошутил о том, что этот термин имеет отношение к насекомым, написав в письме 1878 года:
«Вы были частично правы, я действительно обнаружил «баг» в своем аппарате, но не в самом телефоне. Он принадлежал к роду callbellum. Похоже, насекомое находит условия для своего существования во всех телефонных аппаратах».
Хотя некоторые считают, что примеры Эдисона означают, что он ввел термин «баг», но вполне возможно, что он произошел от кого-то еще раньше и что он просто популяризировал этот термин среди своих друзей и соратников-инженеров. Оксфордский словарь английского языка цитирует пример 1889 года, связанный с Эдисоном, который описывает ошибку как метафору насекомого, заползающего в элемент оборудования и вызывающего его неисправность, предполагая, что настоящая ошибка, делающая именно это, могло первоначально послужить источником этого термина, похожего на термин «ложка дегтя».
Отбросив на мгновение слово «баг», первым известным человеком в истории, который осознал, что программное обеспечение может работать неправильно из-за ошибок в программировании, была Ада Лавлейс. Она писала об этой проблеме еще в 1843 году в своем комментарии к аналитической машине Чарльза Бэббиджа.
«На это можно ответить, что процесс анализа в равной степени должен быть выполнен для того, чтобы снабдить аналитическую машину необходимыми оперативными данными; и в этом также может заключаться возможный источник ошибки. При условии, что реальный механизм безошибочен в своих процессах, карты могут отдавать ему неправильные приказы».
В этой цитате Лавлейс говорит о том, что настоящий вычислительный механизм не содержит ошибок в том, как он обрабатывает данные, но оговаривает, что данные, передаваемые ему людьми (как в то время запрограммированы на карточках), могут дать машине неправильные инструкции и таким образом дают неправильные результаты.
Бабочка Грейс Хоппер
На протяжении десятилетий книги, журналы и веб-сайты ошибочно сообщали, что термин «баг» был придуман легендарным компьютерным ученым Грейс Хоппер, когда моль влетела в реле компьютера Harvard Mark II и вызвала его неисправность. Как гласит история, она затем записала мотылька в журнал и сделала историческую заметку: «Первый реальный случай обнаружения бага».
Хотя в 1947 году в Mark II действительно залетела моль, она не была источником терминов «баг» или «дебаг», которые предшествовали инциденту. Кроме того, не совсем ясно, действительно ли моль привела к неисправности компьютера, или это была просто забавная находка, пока они исправляли другие дефекты. Хоппер сделала эту историю известной, рассказав ее в широко цитируемом интервью от ноября 1968 года.
Хоппер нашла эту историю забавной, потому что после частых поисков ошибок в компьютере (например, аппаратных и программных дефектов) ее команда наконец нашла настоящего насекомого (bug) внутри компьютера. Отсюда надпись: «Первый реальный случай обнаружения жука».
Интересно отметить, что Хоппер описывает мотылька Mark IV как «забитого до смерти», вероятно, из-за повреждений, вызванных движением электромеханических реле компьютера, что позволяет предположить, что компьютер продолжал функционировать, пока моль была там.
Историки не знают, был ли это дневник Хоппер или кто на самом деле написал запись, но сегодня журнал Harvard Mark II находится в Национальном музее американской истории в Смитсоновском институте в Вашингтоне, округ Колумбия.
Хотя бабочка Mark II (назовем его «Марк») не была первой компьютерной ошибкой, она, тем не менее, остается физическим и культурным символом очень реальной и сложной проблемы, с которой борются все программисты.