Пара слов о формате “Код как борьба”. Здесь не будет подробных биографий - про каждого из героев этого цикла написаны отдельные толстые книги, и одна статья такую книгу не заменит. Не будет здесь и сухого технического разбора, кому это интересно. Вместо этого - попытка проследить, как одна идея вырастает из другой, как эстафета, которую передают друг другу через десятилетия и века люди, часто вообще не подозревающие, что работают над одним и тем же. Если какой-то сюжет или деталь захочется изучить подробнее - внизу статьи есть подборка книг, статей и первоисточников по теме.
Прошлые статьи цикла:
Представьте на секунду: первый компьютер спроектировали за полтора века до того, как его вообще можно было включить в розетку. Просто потому, что розеток ещё не существовало.
Звучит как анекдот, да? А на самом деле это буквально то, что случилось. И сегодня мы разберём, как так вышло, что три человека - философ семнадцатого века, викторианский математик и дочка поэта-скандалиста, развивая идеи друг от друга, придумали компьютер за сто пятьдесят лет до электричества.
Это первая статья цикла “Код как борьба: Кратчайшая история IT”. Эта статья про то, как рождалась идея вычислительной машины и как она столетиями ждала, пока человечество изобретёт материал, способный её выдержать.
Погнали.
Часть первая. Лейбниц и мечта посчитать истину
Готфрид Лейбниц. Если вы более-менее в теме математики или помните её по старшим классам школы, то вы его знаете как одного из отцов дифференциального исчисления. И да, именно он участник того самого вечного спора с Ньютоном, кто же первый это самое исчисление изобрёл. Спойлер: скорее всего, оба независимо, но нотацию, которой мы до сих пор пользуемся в матанализе, придумал именно Лейбниц.
Но сегодня нас интересует не это.
В начале 1673 года Лейбниц привозит в Лондон, в Королевское общество, механическую счётную машину - деревянную модель, ещё не до конца доработанную. Демонстрация, честно говоря, прошла не блестяще: сам Лейбниц признал, что механизм пока “не дотягивает”, и пообещал доработать его после возвращения в Париж. Тем не менее впечатление на членов Общества он произвёл достаточно сильное, чтобы уже в апреле того же года его избрали действительным членом Королевского общества.
Машина называлась Ступенчатый вычислитель (Stepped Reckoner), и в завершённом виде она умела, внимание, все четыре арифметических действия. Не просто складывать, как более ранняя машина Паскаля, а ещё и умножать, делить - за счёт хитрого механизма “ступенчатого барабана”, который Лейбниц придумал сам.
Это уже само по себе крутая инженерная штука для семнадцатого века. Но по-настоящему интересное не в железе. А в том, что Лейбниц делает через несколько лет - он разрабатывает двоичную систему счисления. Историки расходятся в точной датировке: черновые наброски относятся к середине-концу 1670-х, а итоговая, отшлифованная работа - “Explication de l’Arithmétique Binaire” - была опубликована только в 1703 году, причём Парижская академия наук сперва посоветовала Лейбницу попридержать текст, пока он не найдёт более убедительный пример практической пользы двоичной системы.
Да, та самая система. Ноли и единицы. То, на чём в буквальном смысле работает весь ваш телефон или компьютер прямо сейчас, пока вы читаете эту статью.
И вот тут я хочу, чтобы вы на секунду задумались, насколько это безумно рано. До первого работающего электронного компьютера почти двести семьдесят лет. Лейбниц не мог знать, что нолики и единички когда-нибудь будут гонять картинки котиков по всему земному шару. Он вообще не думал о вычислительных машинах, когда это придумывал.
А зачем он это тогда делал?
И вот тут начинается самое интересное. Потому что мотивация у Лейбница была… ну, скажем так, не совсем инженерная.
У него была мечта, и это правда была мечта, а не просто научная гипотеза - создать универсальный язык, на котором можно было бы записать вообще любую человеческую мысль. Он называл это characteristica universalis. И вместе с этим языком - механическую процедуру, calculus ratiocinator, которая могла бы автоматически проверять, истинно утверждение или ложно. Просто вычислять.
Представьте, два философа спорят до хрипоты о природе добра. И вместо того чтобы спорить дальше, один говорит другому: “Слушай, давай посчитаем”. Calculemus - вот буквально это слово Лейбниц употреблял. Садятся, вычисляют и получают правильный ответ. Как в арифметике.
Это, по сути, мечта о программировании. За два с половиной века до Тьюринга.
И вот ещё деталь, которая мне лично кажется невероятно показательной. Для Лейбница двоичная система была не просто удобным математическим трюком. Он видел в ней почти религиозный смысл. Ноль - это небытие. Единица - это Бог, бытие. И из этих двух простых элементов можно, как он считал, вывести вообще всё.
Он даже переписывался на эту тему с иезуитским миссионером в Пекине Жоашеном Буве, который в конце 1690-х прислал ему знаменитую диаграмму 64 гексаграмм И Цзин (сама она построена из восьми триграмм, но в переписке речь шла именно о полном 64-элементном наборе). Лейбниц увидел в этой древнекитайской системе поразительное структурное сходство со своей двоичной арифметикой, настолько, что назвал совпадение проявлением “некоего влияния провидения”. Современные исследователи до сих пор спорят, насколько корректна эта аналогия математически, но сам факт переписки и её влияние на публикацию Лейбница 1703 года хорошо задокументированы.
То есть один из фундаментальных технических прорывов в истории компьютеров родился отчасти из теологических размышлений и диалога с китайской философской традицией. И это хороший повод задуматься: сколько ещё в истории науки подобных случаев, когда великое техническое открытие вырастает из мотивации, которую мы сегодня скорее назвали бы иррациональной?
Проблема в том, что при жизни Лейбница ничего из этого толком не заработало. Ступенчатый вычислитель страдал от механических проблем - при сложении числа с переносом разряда механизм иногда просто сбоил. А Universal Characteristic так и осталась незаконченным философским проектом.
Лейбниц умер в 1716 году, так и не увидев ни одну из двух своих главных идей реализованной. И тем не менее обе они окажутся пророческими. Просто появились они на полтора века раньше срока.
Часть вторая. Бэббидж и первый компьютер, который не смогли построить
Перематываем почти на полтора века вперёд. Англия, девятнадцатый век. Чарльз Бэббидж, профессор Кембриджа - кстати, той самой Лукасовской кафедры, которую до него занимал Исаак Ньютон, а через полтора столетия после него - Стивен Хокинг. Бэббидж занимал эту должность с 1828 по 1839 год, хотя, по свидетельствам современников, ни разу не прочитал ни одной лекции.
И у Бэббиджа была своя личная больная тема - математические таблицы. Логарифмические, навигационные. В его эпоху их вычисляли вручную армии людей, их буквально так и называли, “computers”, “вычислители”, и эти люди регулярно ошибались. А ошибка в навигационной таблице - это, между прочим, потенциально корабль, разбившийся о скалы.
Бэббиджа это откровенно бесило. И он решает: надо, чтобы это делала машина. Безошибочно.
Так рождается Разностная машина - Difference Engine. Идея простая на словах - свести сложное вычисление таблиц к повторяющимся операциям сложения, которые механизм способен выполнять без единой ошибки, и сразу печатать результат, чтобы даже наборщик текста не мог случайно опечататься.
Британское правительство даёт на это деньги. Первый транш - 1500 фунтов, Бэббидж получает уже в 1823 году, вскоре после того, как представил идею Королевскому обществу. Это одна из первых в истории государственных субсидий на исследовательский и технологический проект вообще. К моменту, когда всё закончится, правительство вложит в общей сложности около 17 000 фунтов - сумму, сопоставимую по масштабу с постройкой пары военных кораблей того времени.
И в 1833 году строительство машины прерывается. Формально это была временная приостановка из-за конфликта с главным инженером-исполнителем Джозефом Клементом; Бэббидж рассчитывал, что работа возобновится. Она не возобновилась. Государство официально признает проект закрытым только в 1842 году, так и не получив работающей машины - хотя фрагмент, собранный к 1833-му, демонстрировал сам принцип работы и производил на современников сильное впечатление.
Что пошло не так? Смесь всего сразу - точность механической обработки деталей, которую требовал проект, банально превышала возможности тогдашней инженерии. Плюс личные конфликты Бэббиджа с исполнителем. Плюс постоянный перерасход бюджета.
Но вот что по-настоящему интересно - пока Разностная машина буксовала на стройплощадке, у Бэббиджа в голове рождается идея, которая на порядок амбициознее. Аналитическая машина.
И вот тут я хочу, чтобы вы прямо мысленно представили компоненты, потому что они вам покажутся смутно знакомыми.
Мельница - the mill. Это блок, который выполняет арифметические операции. По сути - процессор.
Склад - the store. Хранит числа и промежуточные результаты. По сути - оперативная память.
И перфокарты для программирования - идея, которую Бэббидж напрямую позаимствовал у ткацких станков Жаккарда, которые в его время уже использовали перфокарты для управления узором ткани. Наша следующая героиня говорила, что машина ткёт алгебраические узоры так же, как станок Жаккарда ткёт цветы и листья.
И самое главное - эта машина могла выполнять условные переходы и циклы. То есть теоретически меняла последовательность действий в зависимости от промежуточного результата. Иначе говоря, она уже была, выражаясь современным языком, Тьюринг-полной. Просто самого термина ещё не существовало и появится он только через сто лет.
Аналитическую машину так никогда и не построили при жизни Бэббиджа. Механика девятнадцатого века физически не могла обеспечить точность для десятков тысяч движущихся деталей.
Но по архитектуре это уже был компьютер. Просто механический, а не электронный.
Часть третья. Ада Лавлейс и первая программа для машины, которой не существовало
И вот тут в историю входит, пожалуй, самая интересная фигура этого эпизода.
Ада Лавлейс - единственная законнорождённая дочь Байрона. Того самого поэта, который был кумиром своего поколения, которого она, кстати, никогда толком и не знала - родители разошлись меньше чем через два месяца после её рождения. И мать, боясь, что дочь унаследует, как она выражалась, “поэтическое безумие” отца, буквально загружает её математикой с детства. Целенаправленно, интенсивно.
То есть, и мне лично кажется это одной из самых красивых деталей всей истории технологий, одна из ключевых фигур в рождении компьютера появилась во многом благодаря семейной драме и попытке матери “излечить” дочь от поэзии через математику.
В июне 1833 года, в том же году, когда прерывают работу над Разностной машиной, семнадцатилетняя Ада знакомится с Бэббиджем - их познакомила общая подруга и наставница Ады, математик Мэри Сомервилль, на светском приёме, где Бэббидж демонстрировал работающий фрагмент своей машины. И на следующие почти двадцать лет между ними завязывается интенсивная переписка и интеллектуальное сотрудничество.
А в 1842 итальянский инженер Луиджи Менабреа публикует на французском статью об Аналитической машине, по мотивам лекций Бэббиджа в Турине. Лавлейс переводит эту статью на английский.
И вот тут по предложению самого Бэббиджа она добавляет к переводу собственные примечания.
Примечания оказываются втрое длиннее исходной статьи.
И именно там, в этих примечаниях, самая знаменитая часть всей истории. Примечание G содержит детальный алгоритм вычисления чисел Бернулли с помощью Аналитической машины. С циклами. С условной логикой. Историки информатики традиционно называют это первой в истории компьютерной программой, написанной для реально спроектированной, пусть и не построенной, машины. Забавная деталь для полноты картины: в этом алгоритме, судя по всему, была ошибка - перепутанное направление деления в одной из формул, которую позже разобрали историки информатики. Первая программа в истории и она же, вероятно, содержала первый в истории баг.
Но, честно, техническая деталь про числа Бернулли не самое крутое в её вкладе. Самое крутое вот что.
Лавлейс первой прямо формулирует мысль: машина, которая оперирует символами по формальным правилам, вообще не обязана ограничиваться числами. Та же самая машина, в теории, могла бы работать с любыми символами вообще - например, сочинять музыку, если музыкальную гармонию удастся выразить в подходящей символической форме.
Вдумайтесь. Это на сто с лишним лет раньше самой идеи компьютера как универсального символьного процессора - идеи, которая станет явной только с Тьюрингом, а на практике реализуется только с текстовыми редакторами, генеративной музыкой и вообще всем цифровым миром, в котором мы сейчас живём.
Бэббидж видел свою машину прежде всего как более совершенный калькулятор. А вот Лавлейс увидела в ней нечто гораздо большее.
Тут, честно, надо сказать и о спорном моменте. Историки до сих пор спорят, насколько именно эти примечания её собственный, самостоятельный интеллектуальный вклад, а насколько талантливое изложение идей самого Бэббиджа. Часть исследователей склоняется к тому, что её роль ближе к роли гениального популяризатора. Другая часть, опираясь на сохранившуюся переписку, настаивает на её самостоятельном авторстве, особенно в части про символьный потенциал машины.
Лавлейс умерла в ноябре 1852 года, в 36 лет - от рака матки, после мучительного года болезни. По-настоящему её вклад оценят только в двадцатом веке, во многом благодаря историкам информатики, которые искали интеллектуальных предшественников современного программирования. В её честь назовут язык программирования Ada, разработанный по заказу Министерства обороны США в 1977–1983 годах для замены сотен разрозненных языков, которые тогда использовались в военных системах, а также архитектуру графических процессоров Nvidia, выпущенную в 2022 году.
Итог
Смотрите, что у нас получается, если сложить все три истории.
Лейбниц увидел в двоичной логике и формальном исчислении путь к механизации самой истины. Бэббидж спроектировал железную архитектуру, которую вы легко узнаете в любом современном процессоре. А Лавлейс первой разглядела, что такая машина не просто более быстрый калькулятор, а универсальный инструмент для работы с символами какой угодно природы.
И идеям этих трёх людей понадобится ещё сто лет теоретической огранки - Буль, Тьюринг, фон Нейман. И, что немаловажно, само появление электричества как практической силы, чтобы эта тройная интуиция наконец воплотилась в кремнии.
Но всё содержательное ядро самой идеи компьютера, оно уже здесь. За полтора века до того, как это стало физически возможным.
Вопросы, чтобы обсудить в комментариях
Первое - была ли Аналитическая машина обречена, или это просто случайность инженерных ограничений эпохи? Если бы механическая обработка металла девятнадцатого века была чуть точнее - могла бы промышленная революция вычислений начаться на сто лет раньше? И как радикально это поменяло бы весь двадцатый век?
Второе - про Лавлейс. Что вообще значит “написать первую программу”, если единственная машина, для которой она написана, никогда физически не существовала? И не окрашена ли вся эта ситуация более поздним, вполне понятным желанием - найти женщину-пионера в истории, которую традиционно рассказывают почти исключительно про мужчин?
И третье, чуть более философское - как часто в истории науки фундаментальные технические прорывы, вот как двоичная система у Лейбница, рождаются из мотиваций, которые современная наука сочла бы иррациональными? Мистика, теология, личные одержимости. Что это вообще говорит о природе научного творчества?
В следующей статье мы пойдём дальше, к человеку, который наконец дал строгий математический ответ на вопрос, который интуитивно нащупывали и Лейбниц, и Бэббидж, но ни один из них не мог сформулировать со всей математической строгостью: что вообще значит «вычислимая функция»?
Источники и ссылки по фактам из статьи
Демонстрация Ступенчатого вычислителя в Королевском обществе, 1673 год - Wikipedia: Stepped reckoner
Публикация двоичной системы Лейбница, 1703 год - Wikipedia: Stepped reckoner, Strickland, “Leibniz on Number Systems”, Springer
Переписка Лейбница с Жоашеном Буве и параллели с И Цзин - Wikipedia: Joachim Bouvet, Cambridge University Press, Science in Context, 2025
Бэббидж и Лукасовская кафедра - Wikipedia: Lucasian Professor of Mathematics
История финансирования и остановки Разностной машины - Beinecke Library, Yale: Charles Babbage exhibition
Биография Ады Лавлейс, знакомство с Бэббиджем в 17 лет, смерть от рака матки - Wikipedia: Ada Lovelace
Спор о самостоятельности вклада Лавлейс - диссертация Брюса Коллиера (см. раздел “Дополнительное чтение” ниже)
Язык программирования Ada и заказ Минобороны США - Stanford CS181 course notes
Архитектура Nvidia Ada Lovelace - официальная страница Nvidia
Дополнительное чтение к данной статье
Про Аду Лавлейс
Джеймс Эссинджер - “Ada’s Algorithm: How Lord Byron’s Daughter Ada Lovelace Launched the Digital Age” (2013) Наиболее доступная и подробная биография на русском рынке представлена переводами; хорошая отправная точка для тех, кто хочет разобраться в истории её жизни без глубокого погружения в математику.
Бетти Тул (сост.) - “Ada, the Enchantress of Numbers: Poetical Science” Сборник, включающий значительную часть личной переписки Ады Лавлейс - хороший источник, чтобы услышать её голос напрямую, а не только в пересказе биографов.
Сидни Пэджет Тул - “Ada, the Enchantress of Numbers: A Selection from the Letters of Lord Byron’s Daughter and Her Description of the First Computer” Ещё один сборник писем с комментариями, часто цитируемый в академических работах об атрибуции её вклада.
Оригинальный текст: Luigi Menabrea, «Sketch of the Analytical Engine Invented by Charles Babbage», с примечаниями переводчицы (Ada Lovelace), впервые опубликован в Scientific Memoirs, 1843 год. Текст в открытом доступе на нескольких архивных ресурсах (Fourmilab, Internet Archive) - рекомендуется прочитать именно Note G, самое цитируемое из примечаний.
Брюс Коллиер, диссертация “The Little Engines That Could’ve: The Calculating Machines of Charles Babbage” (Гарвард, 1970, позже частично опубликована) Один из наиболее часто цитируемых скептических источников, ставящих под сомнение степень самостоятельности вклада Лавлейс.
Про Чарльза Бэббиджа
Чарльз Бэббидж - “Passages from the Life of a Philosopher” (1864) Автобиография самого Бэббиджа - не самый лёгкий слог по современным меркам, но первоисточник из первых рук, включая его собственное изложение конфликтов вокруг Разностной машины.
Дорон Свейд - “The Difference Engine: Charles Babbage and the Quest to Build the First Computer” (2000) Книга директора лондонского Музея науки, руководившего проектом постройки работающей Разностной машины по чертежам Бэббиджа в 1991 году, уникальный источник, поскольку автор сам проверял чертежи на практике.
Энтони Хайман - “Charles Babbage: Pioneer of the Computer” (1982) Считается одной из наиболее полных академических биографий.
Про Готфрида Лейбница
Мэтью Стюарт - “The Courtier and the Heretic: Leibniz, Spinoza, and the Fate of God in the Modern World” (2006) Не техническая биография, а скорее интеллектуальная история, хорошо показывает философский контекст, в котором Лейбниц разрабатывал свои идеи о логике и вычислении.
Мария Роза Антоньяцца - “Leibniz: An Intellectual Biography” (2009) Более академическая, подробная биография с хорошим освещением его научной и философской работы в целом, не только двоичной системы.
Оригинальные тексты: работы Лейбница о двоичной арифметике (1703, «Explication de l’Arithmétique Binaire») доступны в переводах в академических сборниках его сочинений; для более лёгкого захода можно начать с вторичных изложений в книгах выше, прежде чем читать сам первоисточник.
Общие книги об истории вычислительной техники, где все три фигуры рассматриваются вместе
Уолтер Айзексон - “Инноваторы: Как несколько гениев, хакеров и гиков совершили цифровую революцию” (2014, есть официальный перевод на русский).
Мартин Дэвис - “The Universal Computer: The Road from Leibniz to Turing” (2000) Прослеживает математическую линию преемственности идей ровно от Лейбница до Тьюринга.
Graphist
Лейбница с его "универсальным языком" Н.Стивенсон тоже упомянул, в "Барочном цикле".