Чудовище из проводов: как Вторая мировая породила первый компьютер
80 лет назад, 14 февраля 1946 года, в Пенсильванском университете открыли миру, как писали журналисты, чудовище из ламп и проводов — ENIAC, «Электронный числовой интегратор и вычислитель».
Газеты рассказали публике о новом дивном мире: за секунду машина делала тысячи сложений, и в тот момент это звучало как победа над человеческим сознанием. Как в двадцатых годах XXI века всерьез обсуждают захват искусственным интеллектом рынка труда, так после Второй мировой воспринимали и эту громоздкую машину.
Официальные «дни программиста» в разных странах живут своей жизнью. Но сами специалисты по «железу» и IT любят считать, что именно 14 февраля, когда ENIAC показали миру, начинается эра вычислительных машин, которые — как сейчас боятся — скоро захватят мир и поработят человечество.
Новый потенциал
Идея ENIAC возникла в разгар Второй мировой, весной 1943 года.
Американская армия захлебывалась в вычислениях. Баллистические расчеты занимали много времени: надо вычислить угол, ветер, температуру, уровень влажности, износ ствола, тип снаряда. Это отнимало много времени на ручной труд. Машина должна была повысить интенсивность боевых действий.
Разработчики Джон Преспер Эккерт и Джон Уильям Мокли предложили делегировать войну умному железу. Их замысел отличался от ручных расчетов в двух аспектах.
Во-первых, ENIAC задумали как полностью электронный агрегат, без промежуточных электромеханических компромиссов. Во-вторых, его собирались программировать, то есть менять порядок действий под задачу.
В те годы существовали машины, которые умели считать, и существовали машины, которые можно было перенастраивать, но ENIAC обещал соединить скорость электронных схем с гибкостью сборки под задачу.
Собрали его поздно, в мае 1945 года, когда война в Европе уже завершалась. История как раз любит такие повороты: созданное для одной войны обычно раскрывает потенциал уже в другой эпохе.
Например, как это было с первыми броненосцами во время Крымской войны (1853–1856); с прусской игольчатой винтовкой Дрейзе, созданной в 1840-е годы и получившей рассвет во время франко-прусской войны 1870–1871 годов; и многими другими изобретениями технарей, служащих фронту.
ENIAC не успел стать фабрикой баллистических таблиц Второй мировой в полном объёме, зато сразу оказался универсальным инструментом для задач, где требовались горы вычислений. Его гоняли по аэродинамике, по числам π и e, по моделям космических лучей. Его ставили в связку с исследованиями, которые потом станут частью ядерной и ракетной эры.
Шесть женщин и монстр инженера Неймана
Чем ЭНИАК отличается от кодинга? То и то — программирование. Но очень разное. В мире ENIAC программа была физическим маршрутом электрических импульсов. Оператор соединял, переключал, переносил кабели, панели, массивы переключателей. Для каждой задачи последовательность соединений была своей.
Ошибка означала часы потерь, а иногда и сутки. Машина перемалывала формулы за секунды, а люди тратили дни, чтобы заставить её делать именно то, что нужно.
Поэтому у программистов 70 лет назад появилась идея, которую на школьных уроках информатики в шестом классе сегодня даже не объясняют — хранить программу внутри машины.
Для человека сороковых это стало настоящим откровением. Идея возникла на фоне военной секретности и спешки, когда инженеры видели, что текущая схема переналадки убивает эффективность. Позже её оформят в принцип хранимой программы, и вокруг этого принципа появится архитектура, которую связывают с именем инженера Джона фон Неймана.
Важно уловить бытовую причину: это была попытка избавить инженеров от бесконечного «переставь кабель — переключи тумблер». Если современный смартфон умещается в ладони, то ENIAC занимал зал, сопоставимый с несколькими квартирами по площади, и весил десятки тонн. Внутри стояли тысячи ламп, реле, конденсаторов и диодов.
Он потреблял сотни киловатт и сжигал воздух в помещениях. Для работы машины требовалась дополнительная вентиляция.
Первыми программистами этой машины стала группа женщин, которых позже назовут ENIAC Six, шестёркой ENIAC. История сохранила их имена, важные для истории не менее, чем имя инженера фон Неймана: Бетти Холбертон, Джин Дженнингс, Кей Макналти, Марлин Уэскофф Мельцер, Рут Лихтерман и Франсис Билас Спенсер.
Феминитив «программистка» этих дам c математическим образованием, скорее всего, просто рассмешил бы. Их отбирали как самых сильных вычислителей, затем учили работать с новой техникой, часто без привычных нам инструкций.
Они осваивали ENIAC по схемам и чертежам, потому что проект долго находился в режиме строгой секретности. Затем они сами запускали задачи, отлаживали конфигурации, объясняли, как заставить машину считать правильно.
СМИ немного подпортили впечатление об этих девушках. В газетах и на фото, когда речь шла про ЭНИАК, часто фигурировали мужчины-инженеры, а работа женщин-программистов не входила в репортажи, даже не обсуждалась.
Признание пришло десятилетия спустя, когда историки и инженеры начали возвращать этому сюжету имена и лица.
Символ и предупреждение
В СССР были сильнейшие школы математики и физики, колоссальный опыт мобилизационных проектов, мощная оборонная промышленность. Кажется, что вычислительная техника должна была «взлететь» мгновенно. И она действительно развивалась, но преодолевая специфические препятствия.
Кибернетика в советской публичной культуре начала 1950-х попала под удар. В печати звучали обвинения в «реакционности», в служении буржуазным целям, в мечте заменить человека машиной (а коммунистическая идея заключалась в создании нового типа человека, а не агрегата).
Кибернетика была объявлена угрозой, исходящей с Запада. На время она ушла в забвение, но потом начался разворот. К концу 1950-х эта наука получает институциональную опору. Появляется Совет по кибернетике, секции, конференции, сборники, научные и популярные тексты.
В стране начинают говорить о применении ЭВМ в управлении экономикой, в планировании, статистике. Кибернетика входит в концепции государственных планов, вплоть до лозунга «На службу коммунизму».
Историки вычислительной техники отмечают парадокс. СССР добивался успехов в ракетах, ядерной сфере, космосе, но в массовой вычислительной индустрии отставал от США. Объяснения часто сводятся к нескольким вещам.
Первое: промышленная база компонентов и серийного производства. Компьютерная индустрия требует стабильного выпуска элементов, стандартизации, качества, огромной культуры производства.
Второе: софт и экосистема. Машина ценна тем, что на ней можно решать много задач, и это быстро приводит к миру операционных систем, библиотек, инструментов, языков. Копирование западных архитектур давало доступ к софту, но закрепляло зависимость и отставание от передовых открытий. Увы.
Третье: отношения между военным и гражданским секторами. В США технологии часто переходили из обороны в коммерцию, а коммерция масштабировала их. В СССР военный сектор был «черной дырой» для инноваций, не приносивших должного выхлопа «гражданке».
И четвёртое: политика управления. Идея единой компьютерной сети управления экономикой требовала реформы самих управленческих структур. Технология могла ускорить поток данных, но не могла сама по себе заменить конфликт интересов и страх потери власти.
ENIAC отключили осенью 1955 года. За девять лет он успел стать символом прогресса и предупреждением для человечества.
Но как и бывает с высокими технологиями, машина быстро устарела. Мир уходил к более удобным архитектурам, к двоичной системе как базе электронного вычисления, к памяти, которая хранит инструкции, к устройствам ввода-вывода, к новым элементам. Лампы уступали транзисторам, затем появлялись интегральные схемы, и масштаб миниатюризации превращал вычисление в массовый товар.
ENIAC разобрали на части. Чудовище из проводов уснуло. Теперь мир захватывают другие машины. И их развитие идет совсем с другими скоростями.