Справжній метелик усередині гіганта — історія першого у світі комп'ютерного бага (11 фото)

Учора, 19:30

Кожен програміст у світі знає слово «баг». Але мало хто замислювався, що воно веде до Гарварда 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 році. Тому напис «перший реальний випадок» і був жартом для своїх — інсайдерським каламбуром, який через три чверті століття став частиною світової історії технологій.

Хто заслуговує на більшу пам'ять — той, хто знаходить проблему, чи той, хто вміє розповісти про неї так, що історія переживе століття?

0
Додати свій коментар
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent

Вам буде цікаво:
Реєстрація