Шестьсот лет отделяют медную флейтистку на игрушечной лодке от чертежей Чарльза Бэббиджа — и всё это время идея программируемого механизма существовала, но никуда не вела.
В верховьях Тигра, в городе Амид — сегодня это Диярбакыр на юго-востоке Турции — стояла крепость артукидских правителей. Артукиды — небольшая тюркская династия, зажатая между крестоносцами, Айюбидами и сельджукскими эмирами. Их двор не претендовал на масштаб Багдада или Каира, но именно здесь, на окраине больших империй, работал человек, чьё полное имя занимает целую строку: Бади аз-Заман Абу аль-Изз ибн Исмаил ибн ар-Раззаз аль-Джазари (1136–1206). «Аль-Джазари» — нисба, указывающая на Аль-Джазиру, «остров» между Тигром и Евфратом. Он провёл при дворе двадцать пять лет в должности главного инженера и за это время сделал то, что инженеры редко делают: записал всё.
Его книга — «Kitāb fī maʿrifat al-ḥiyal al-handasiyya», «Книга знаний об искусных механических устройствах» — была завершена в 1206 году по заказу правителя Насир ад-Дина Махмуда (правившего с 1201 по 1222 год). Самая ранняя полная рукопись хранится в стамбульской библиотеке Топкапы под номером MS 3472 и была скопирована Мухаммадом ибн Юсуфом ибн Усманом аль-Хисенкафи в апреле 1206 года — то есть практически одновременно с завершением оригинала. Книга содержит описания пятидесяти устройств, разбитых на шесть категорий: водяные и свечные часы, сосуды и фигуры для застолий, кувшины и тазы для омовений и кровопусканий, фонтаны и вечные флейты, водоподъёмные машины и — последняя категория — разнородные устройства: от дворцовой двери до кодового замка. Каждое описание сопровождается подробными иллюстрациями и инструкциями по изготовлению, включая размеры деталей.
Меня подкупает в аль-Джазари одна вещь: он мастер. Его метод — эмпирический, он сам пишет о пробах и ошибках, о бумажных моделях и деревянных шаблонах, которые предшествовали металлическим деталям. Это не абстрактная механика Герона Александрийского, пересказанная через века. Это руководство для того, кто хочет повторить устройство руками, — и в этом его огромная ценность и, как выяснится позже, его же ограничение.
Четвёртый автомат из развлекательной серии — музыкальная лодка. Представьте себе модель судна, которую спускают на воду в дворцовом бассейне во время пира. На верхней палубе восседают неподвижные фигуры из папье-маше: царь и его свита, декоративная верхушка, которая задаёт сцену, но ничего не делает. Всё интересное происходит ниже, где размещены подвижные фигуры музыкантов из шарнирной меди: флейтистка, арфистка и две бубенщицы. Их принято называть qiyān — рабыни-певицы, привычный элемент придворной культуры того времени.
Двигатель лодки — вода. Из резервуара она раз в полчаса стекает в опрокидывающийся ковш (tipping bucket) — простое, но надёжное устройство: ковш наполняется, его центр тяжести смещается, он переворачивается, выливая воду на лопасти ковшового колеса (scoop wheel). Колесо вращается, и с ним — ось, на которой закреплены штифты (пеги). Здесь начинается самое существенное. Штифты расположены на оси в определённых местах. Когда ось поворачивается, каждый штифт в нужный момент упирается в рычаг, поднимая стержень, соединённый с рукой медной фигурки. Рука ударяет по бубну или перебирает струны арфы. Грубо говоря, ось со штифтами работает как ранний прообраз кулачкового вала (camshaft): вращательное движение преобразуется в линейное возвратно-поступательное — каждый выступ на валу «включает» действие в строго определённый момент цикла.
Флейтистка устроена иначе. Её звук порождает не механическая рука, а вода, которая нагнетает воздух в замкнутый воздушный сосуд со свистком. Принцип, знакомый ещё по эллинистическим водяным органам, — но здесь он интегрирован в единый автомат, где одновременно звучат несколько «инструментов» разной природы.
Самое существенное свойство этой конструкции: расположение штифтов на оси можно было менять. Переставив штифты, вы получали другой ритм, другую последовательность ударов — другую «мелодию» барабанщиков. Механизм оставался прежним, менялась только инструкция, записанная на его поверхности.
Именно здесь начинается территория, на которой легко поскользнуться. Профессор Ноэль Шарки из Шеффилдского университета исследовал барабанщика лодки и назвал его первым программируемым роботом. Формулировка смелая, но всё ещё держится в рамках механики. В популярных пересказах она быстро мутирует в «первый компьютер», «средневековый код» и «арабский предшественник процессора». Так вот — нет.
Штифт на вращающемся валу — это не бит информации в электронном смысле. Он не участвует в вычислении. Он не обрабатывается логическим элементом. Устройство аль-Джазари не хранило программу в памяти — оно было программой, физически воплощённой в расположении выступов на металлической оси. Разница принципиальна: современный компьютер разделяет аппаратуру и инструкции (архитектура фон Неймана), а музыкальная лодка — это аппаратура, в которую инструкции вбиты буквально гвоздями. Между «переставить штифты» и «загрузить новую программу» — пропасть размером в формализацию универсального вычисления.
Однако есть нечто, что роднит лодку аль-Джазари с идеей программирования в широком смысле: отделение инструкции от механизма. Чтобы изменить поведение автомата, не нужно было строить новый автомат. Достаточно было перенастроить носитель — переставить штифты. Это тот же принцип, который столетия спустя воплотится в картах жаккардова станка, в цилиндрах музыкальных шкатулок, в перфокартах аналитической машины Чарльза Бэббиджа. Принцип один, реализации — разные, и между ними нет прямой линии наследования.
В 1801 году Жозеф Мари Жаккар продемонстрировал ткацкий станок, в котором узор задавался перфорированными картами. Каждая карта — строка узора: отверстие пропускает крючок, сплошная поверхность — нет. Смена набора карт — смена рисунка ткани. Принцип идентичен штифтам аль-Джазари: физический носитель кодирует последовательность механических действий, и его можно заменить. Но Жаккар не знал о лодке из Амида. Его источником были французские ткацкие эксперименты Базиля Бушона (1725) и Жака де Вокансона (1740-е), а не арабские трактаты по механике.
Музыкальные шкатулки с металлическим цилиндром, утыканным штифтами, появились в Швейцарии в конце XVIII века. Сходство с конструкцией аль-Джазари бросается в глаза — вращающийся вал, выступы, которые задевают зубцы гребёнки и извлекают ноты. Но и здесь генеалогическая связь не прослеживается: европейские часовщики развивали собственную традицию автоматонов, восходящую к механическим часам XIV века и фигурам-жакемарам на башенных часах.
Чарльз Бэббидж в 1830-х годах спроектировал аналитическую машину, заимствовав у Жаккара идею перфокарт для управления вычислительным устройством. Бэббидж сделал шаг, которого не делал никто до него: отделил «мельницу» (процессор) от «склада» (память) и предусмотрел условные переходы — возможность менять порядок операций в зависимости от промежуточных результатов. Это уже архитектура вычислительной машины общего назначения, пусть и нереализованная при его жизни.
Три линии — исламские автоматы, европейские музыкальные механизмы, жаккардово ткачество — демонстрируют одну и ту же идею, но росли из разных корней. Они похожи, как крылья птицы и крылья летучей мыши: конвергентная эволюция, а не общий предок. Искушение выстроить из них единую лестницу прогресса велико, но факты его не поддерживают.
Аль-Джазари описал в своей книге впечатляющий набор механизмов: первый известный коленчатый вал, кривошипно-шатунный механизм, двухцилиндровый поршневой насос с клапанами, конические клапаны, сегментные шестерни, кодовые замки. Его водяные часы — отдельная тема: есть часы с автоматическими барабанщиками, отбивающими время, и павлиньи часы. Отдельный жанр — омовения: умывальный автомат с механизмом слива и павлин, раздающий воду из клюва. Человек, способный всё это придумать и построить, очевидно, обладал инженерным мышлением высочайшего уровня. Почему же его идеи не породили промышленную революцию?
Первый и самый прозаический ответ: рукописная передача знаний. Книга аль-Джазари копировалась вручную. До нас дошло несколько рукописей, разбросанных по библиотекам Стамбула, Оксфорда и Лейдена, — но каждая копия требовала месяцев работы квалифицированного переписчика, и каждая неизбежно теряла детали. Сравните это с тиражом печатного станка Гутенберга: сотни идентичных экземпляров, доступных одновременно десяткам мастерских. Рукопись — это бутылка с посланием; печатная книга — радиопередача.
Второй ответ: социальная функция автоматов. Музыкальная лодка — придворное чудо, предмет роскоши, развлечение для пира. Она не решала экономической задачи. Никто не нуждался в массовом производстве медных флейтисток. Поршневой насос аль-Джазари поднимал воду — это полезнее, — но даже он оставался штучным изделием, изготовленным мастером для конкретного заказчика. Массового машиностроения, которое могло бы тиражировать такие механизмы, в Верхней Месопотамии XIII века не существовало — как не существовало его нигде в мире до XVIII века.
Третий ответ глубже и неприятнее: европоцентричная историография вычислительной техники долго игнорировала неевропейские источники. Каноническая линия «Паскаль — Лейбниц — Бэббидж — Тьюринг» складывалась в XIX–XX веках, когда история технологий писалась преимущественно европейцами и для европейцев. Аль-Джазари попал в англоязычное поле зрения главным образом благодаря переводу Дональда Хилла в 1974 году. До этого его книга была доступна лишь тем, кто читал арабские рукописи, — а таких людей среди историков вычислительной техники было, мягко говоря, немного.
Есть соблазн построить из этой истории обвинительный акт: мол, Запад украл идеи Востока, или, наоборот, — Восток не сумел развить собственные изобретения. Обе версии упрощают реальность до карикатуры.
Аль-Джазари работал в традиции, которая включала Бану Муса (три брата из Багдада IX века, авторы «Книги хитроумных устройств»), Герона Александрийского (чьи тексты были переведены на арабский) и, возможно, индийские и персидские источники, которые до нас не дошли. Он стоял на плечах предшественников, как и Бэббидж стоял на плечах Жаккара, а Жаккар — на плечах Вокансона. Изобретения не возникают в вакууме, но и не передаются автоматически через века и культуры.
Принцип «сменного носителя инструкций» — штифты, которые можно переставить, — возникал в истории техники многократно и независимо. Он появлялся там, где мастер сталкивался с задачей: заставить механизм делать разные вещи без перестройки самого механизма. Это настолько естественное решение, что удивительно было бы, если бы его нашёл кто-то один. Ось со штифтами — это ответ на вопрос, который задавали себе ремесленники на разных концах Евразии: как отделить «что делать» от «чем делать».
Мне кажется, самый честный вывод другой: его время задавало другие вопросы. Фраза «опередил время» обычно означает лишь, что мы не поняли его время. Придворный инженер XIII века оптимизировал не производство, а восхищение. Его задача — вызвать изумление гостей на пиру Насир ад-Дина Махмуда. Ускорять вычисления или удешевлять ткань в этом зале не требовалось никому. Музыкальная лодка великолепно справлялась с этой задачей.
Рукопись MS 3472 лежит в Топкапы, и несколько раз за последние десятилетия энтузиасты воссоздавали устройства аль-Джазари по его чертежам. Они работают. Ковшовое колесо крутится, штифты поднимают рычаги, медные руки ударяют по бубнам. Конструкция, описанная восемьсот лет назад, воспроизводима — и это лучшее доказательство того, что аль-Джазари был инженером до мозга костей.
Вопрос, с которого мы начали — почему механизм, позволявший менять «программу» в XIII веке, не стал началом компьютерной революции — имеет ответ, лишённый драматизма. Программируемость — необходимое, но далеко не достаточное условие для вычислительной машины. Нужна ещё формализация логики (Буль, 1854), концепция универсального вычисления (Тьюринг, 1936), массовое производство прецизионных деталей, электричество, полупроводники. Штифт на валу — начало длинного разговора, первый слог, после которого прошли века молчания, прежде чем кто-то произнёс следующий. Но этот слог был произнесён — в мастерской на берегу Тигра, для правителя маленького государства, чьё имя сегодня помнят главным образом потому, что его инженер записал, как устроена лодка с музыкантами.