В 1991 году Лондонский музей науки включил механическое устройство, которое не работало полтора века. Оно заработало. Но это была не та машина, о которой все думали.
Начнём с того, что Чарльз Бэббидж никогда не построил свою Аналитическую машину. Это не конспирология — это протокол осмотра. К моменту его смерти в 1871 году остались чертежи, записные книжки, разрозненные детали и репутация гениального неудачника. Машина существовала в виде идеи, которая менялась от года к году: то 1000 чисел памяти, то больше, то меньше, то поддержка индексированных переменных, то отказ от них. Проект жил в состоянии вечного рефакторинга.
С 1833 года (или с 1837-го — сам Бэббидж называл разные даты начала работы) он проектировал устройство, архитектура которого выглядит пугающе знакомо для любого, кто открывал учебник по основам программирования. «Склад» — память, способная хранить числа длиной до 40 десятичных знаков. «Мельница» — арифметико-логический блок, который умел складывать, вычитать, умножать, делить, извлекать квадратные корни и сравнивать величины. Три типа перфокарт: операционные (что делать), переменные (над чем делать), загрузки и хранения (куда класть результат). Циклы. Условные переходы. Всё, что нужно для универсальных вычислений, только из латуни и стали.
Но улики не сходятся. Отношения с инженером Джозефом Клементом кончились ссорой ещё на этапе Разностной машины № 1 — предыдущего проекта, который тоже не был завершён. Финансирование от правительства закончилось. Детали требовали точности, которую промышленность 1830–1840-х едва могла обеспечить. Каждая шестерёнка — это мастерская работа, каждый зазор — риск заклинивания. Бэббидж умел проектировать, но не умел договариваться. Его главным врагом оказалась не физика, а логистика.
В 1842 году итальянский математик Луиджи Менабреа опубликовал статью о машине Бэббиджа на французском. В 1843-м её перевела на английский Ада Лавлейс, но перевод оказался меньшей частью дела. Она добавила примечания, которые по объёму превзошли оригинал втрое. В примечании G — алгоритм вычисления чисел Бернулли, пошаговая инструкция для машины, которая не существовала в металле.
Это не просто таблица команд. Лавлейс понимала то, чего не видели многие современники: машина может оперировать не только числами. Если ноты, буквы или логические утверждения представить символами, устройство станет универсальным. Она написала об этом явно, без обиняков. Бэббидж проектировал вычислитель. Лавлейс увидела потенциал программируемой системы.
Но есть нюанс. Сам Бэббидж знал о возможности символьных операций — его записи это подтверждают. Лавлейс не открыла ему глаза, она артикулировала это понимание для публики. Её вклад не в изобретении концепции, а в том, что она первой написала рабочий алгоритм с детальным разбором. Примечание G — не предвидение будущего, а инженерная спецификация для машины настоящего, которая так и не включилась.
У Бэббиджа не было денег. У него не было команды. У него не было стабильного дизайна. Чертежи менялись, потому что он находил более элегантные решения, а потом находил проблемы в элегантных решениях и начинал заново. Проект Аналитической машины напоминал расследование, в котором главный детектив каждую неделю меняет версию преступления.
Промышленная точность — вот что убило замысел. Бэббидж требовал зазоров в доли миллиметра, а мастерские 1840-х работали с точностью, достаточной для паровозов, но не для логических машин. Каждая деталь изготавливалась вручную, каждая ошибка множилась на тысячи компонентов. Это не вопрос гениальности инженера — это вопрос доступных технологий. Бэббидж проектировал Ferrari в эпоху гужевого транспорта.
Финансирование закончилось после провала Разностной машины № 1. Правительство вложило 17 000 фунтов (по тем временам — стоимость двух военных кораблей), получило груду деталей и разорванные отношения между заказчиком и подрядчиком. Аналитическую машину никто финансировать не собирался. Бэббидж пытался найти частных инвесторов, писал письма, объяснял принципы. Безрезультатно.
В 1991 году Лондонский музей науки включил устройство, построенное по чертежам Бэббиджа. Оно заработало. Пресса написала: «Компьютер XIX века наконец-то собран». Это была правда наполовину.
Собрали Разностную машину № 2 — специализированное устройство для вычисления полиномов методом конечных разностей. Не универсальный компьютер. Не Аналитическую машину. Разностная машина не имела ни циклов, ни условных переходов, ни программируемой логики. Она решала одну задачу, решала её блестяще, но это не делало её предшественником современных компьютеров в полном смысле.
Реконструкция доказала, что механические принципы Бэббиджа работали. Что его требования к точности были выполнимы — спустя 150 лет, когда появились станки с ЧПУ и металлообработка, о которой он мог только мечтать. Устройство состояло из 8000 деталей, весило 5 тонн и производило вычисления без единой ошибки. Но это не было доказательством того, что Аналитическая машина заработала бы.
С 2010 года проект Plan 28 пытается разобраться, можно ли собрать Аналитическую машину по сохранившимся чертежам. Вердикт пока неутешительный: документация неполная, противоречивая, а ключевые механизмы — особенно поддержка индексированных переменных — описаны недостаточно детально. Это не означает, что машина была невозможна. Это означает, что Бэббидж не оставил однозначной инструкции.
Современные историки техники читают его записи как детективы — сверяют разные версии, ищут отсылки в письмах, пытаются понять, какой из вариантов он считал финальным. Проблема в том, что финального варианта, скорее всего, не было. Бэббидж умер, не закончив расследование собственной идеи.
Называть Аналитическую машину «первым компьютером» технически некорректно. Она не была построена. Она не была однозначно определена. Она не запустила индустрию. Но она была концептуально близка к тому, что позже назовут архитектурой фон Неймана — хотя сам фон Нейман, вероятно, о Бэббидже не думал. Идеи витали в воздухе дважды: один раз в 1840-х, когда технология не поспевала, и снова в 1940-х, когда всё совпало.
Чертежи. Примечания Лавлейс. Работающая Разностная машина № 2 в музее. И вопрос, который не закрыть: могла ли Аналитическая машина заработать, если бы у Бэббиджа хватило денег, времени и терпения довести её до конца?
Успешная сборка Разностной машины подтвердила, что механика Бэббиджа не была фантазией. Но Аналитическая машина — это другой уровень сложности. Разностная машина — калькулятор. Аналитическая — программируемая система. Разница между ними как между арифмометром и процессором. Одно можно собрать в мастерской XIX века, если очень постараться. Другое требует не только мастерства, но и индустриальной базы, которой тогда просто не существовало.
Бэббидж проиграл не потому, что ошибся в расчётах. Он проиграл, потому что родился на 100 лет раньше, чем его машина стала возможна. Иногда быть правым недостаточно — нужно ещё успеть при жизни.