Краткая история IT: От ткацкого станка до нейросетей

Паша Вейник

EN | RU
Краткая история IT: От ткацкого станка до нейросетей

Раздел 1.4. Лампы и Жуки: Грейс Хоппер и Язык людей

Мы прошли путь от картона до электронов, от чистой теории до архитектуры. Но оставалась одна последняя проблема: между человеком и машиной стояла стена непонимания. Компьютеры говорили на языке тока, люди — на языке слов.

Нужен был переводчик. И им стала маленькая женщина в военно-морской форме.

Раздел 1.4. Лампы и Жуки: Грейс Хоппер и Язык людей

К концу 1940-х годов компьютеры уже работали, но программирование оставалось занятием для избранных. Это было не творчество, а пытка. Чтобы заставить машину сложить два числа, нужно было знать наизусть коды операций в восьмеричной или двоичной системе. Ошибка в одном бите рушила недельный труд.

Программисты того времени были «жрецами»: они говорили с машиной на её языке, презирая тех, кто не понимал математику.

И тут появилась Грейс Хоппер.

А. Первый Баг: Смерть мотылька

Лето 1947 года. Гарвардский университет. Грейс Хоппер и её команда работают с компьютером Mark II. Это не бесшумный ноутбук. Это электромеханический монстр весом в несколько тонн. Внутри него нет транзисторов (они только-только изобретаются в Bell Labs), зато есть тысячи реле — механических переключателей, которые физически щелкают, размыкая и замыкая контакты. Гул в машинном зале стоит такой, будто вы находитесь внутри гигантских часов.

9 сентября машина внезапно останавливается. Тесты проваливаются. Инженеры начинают искать причину. Это изнурительная работа: нужно проверить тысячи контактов.

Наконец, в Реле №70 на Панели F они находят причину сбоя. Между контактами реле залетел ночной мотылек. Когда реле замкнулось, несчастное насекомое было раздавлено и поджарено высоким напряжением. Тельце мотылька стало изолятором — ток перестал проходить.

«First actual case of bug being found»

Что сделала Грейс? Обычный инженер просто выкинул бы насекомое и продолжил работу. Но Грейс Хоппер обладала чисто военным педантизмом и чувством истории. Она взяла пинцет, аккуратно извлекла мотылька и... вклеила его скотчем в технический журнал.

Рядом она написала фразу, ставшую легендарной:

«First actual case of bug being found» (Первый реальный случай обнаружения жука).

След в будущем

Слово «Bug» (жук) использовалось инженерами еще со времен Эдисона для обозначения мелких неполадок. Но именно Грейс Хоппер сделала его официальным термином в IT.

  • Debugging (Отладка): До этого момента считалось, что если программа не работает, значит, математик ошибся в формуле. Хоппер показала, что ошибка может быть физической. Программное обеспечение живет в реальном мире, где контакты окисляются, а мотыльки залетают в форточки.
  • Сегодня, когда вы говорите «Я дебажу код», вы отдаете дань уважения тому самому мотыльку из 1947 года.

Б. «Научите его говорить по-английски»

Если история с жуком — это забавный анекдот, то вторая история про Грейс Хоппер — это фундамент всей современной софт-индустрии.

Проблема: Проклятие восьмеричного кода

К началу 50-х Грейс работала в компании UNIVAC. Она была блестящим математиком, но она была ленивой (в хорошем смысле). Ей надоело писать в тетрадке столбики цифр вроде 0010110, чтобы заставить компьютер сделать сложение.

Она подумала: «Почему мы должны учить язык машины? Пусть машина учит наш язык!».

Безумная идея

Хоппер предложила концепцию: человек пишет программу английскими словами — ADD, SUBTRACT, MOVE, IF. А специальная программа-посредник переводит эти слова в нули и единицы.

Коллеги-мужчины подняли её на смех.

«Грейс, компьютеры не знают английского. Они знают только арифметику. Нельзя превратить литературу в электричество».

Ей говорили, что это пустая трата вычислительных ресурсов. Компьютер должен считать формулы, а не заниматься лингвистикой.

Изобретение Компилятора (A-0)

Грейс их не послушала. В 1952 году она написала систему A-0 (Arithmetic Language version 0). Это был первый в истории Компилятор (хотя тогда это называли «линкером»).

Как это работало:

  1. Она написала библиотеку кусочков машинного кода (подпрограммы) и присвоила им понятные номера/имена.
  2. Теперь, вместо того чтобы писать код с нуля, она писала: «Вызови функцию СЛОЖЕНИЯ».
  3. Компьютер сам собирал готовую программу из кусочков.

COBOL: Язык для бизнеса, а не для физиков

В 1959 году на основе идей Хоппер был создан язык COBOL (COmmon Business-Oriented Language).

Взгляните на строчку кода COBOL. Она выглядит как крик души бухгалтера: SUBTRACT TAX FROM GROSS-PAY GIVING NET-INCOME.

Никаких интегралов. Никаких битовых сдвигов. Чистый английский язык.

Бизнес-контекст (Демократизация): Это изобретение взорвало рынок.

  • До COBOL компьютеры покупали только военные и научные институты, где были штаты математиков.
  • После COBOL компьютеры стали покупать Банки и Страховые компании. Им не нужно было нанимать Эйнштейнов. Им достаточно было обучить своих клерков писать инструкции на псевдо-английском.

Наследие: Грейс Хоппер, «Бабушка COBOL», дослужилась до звания контр-адмирала. Она демократизировала IT. Если бы не она, программирование осталось бы узкой сектой жрецов-математиков. Она открыла дверь для бизнеса, превратив написание кода из научной работы в офисную рутину.

Финал Модуля 1: Замыкая Арку

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

  1. Чарльз Бэббидж (1837) спроектировал Тело компьютера (разделение на Память и Процессор), но не смог вдохнуть в него жизнь.
  2. Алан Тьюринг и Клод Шеннон (1930-40-е) дали компьютеру Разум (логику алгоритмов) и Голос (биты информации).
  3. Джон фон Нейман (1945) создал Скелет (архитектуру), который позволил сделать компьютеры дешевыми и перепрограммируемыми.
  4. Грейс Хоппер (1950-е) дала компьютеру Язык. Она стала переводчиком, который позволил человеку объяснить машине свои желания.

Теперь у нас есть всё: железо, теория, архитектура и язык. Но компьютеры все еще огромные, дорогие и стоят в изолированных залах. В следующем модуле мы увидим, как хаос 60-х заставит нас придумать правила и дисциплину, чтобы этот «цифровой голем» не вышел из-под контроля.