Сегодня исполняется 114 лет со дня рождения Конрада Цузе, пионера создания вычислительной техники, человека, которому сама судьба пыталась помешать двигать прогресс, но не помешала создать первый язык программирования высокого уровня, один из первых компьютеров и первую книгу по цифровой физике.
Хоть и есть поговорка, что рукописи не горят, Конрад Цузе потерял все разработки, чертежи и записи, посвящённые одному из своих первых компьютеров в военное время. Для того, чтобы эта рукопись никогда не сгорела, автор подготовил для вас, дорогие читатели, аудиоверсию статьи. Приятного прочтения или прослушивания.
Конрад жил в сложное время, он рос в окружении «потерянного поколения», людей, перемолотых Первой Мировой войной, молодость прошла в разрушенной Германии, а в зрелые годы «коричневая чума» поразила его родину, половину мира, а потом была уничтожена. И во всём этом хаосе, в изоляции, Конрад Цузе творил цифровое будущее. И это цифровое будущее предоставило нам доступ к его архиву, этот рассказ о жизни и деятельности Конрада мы проиллюстрируем изображениями, часть из которых ранее не публиковалась в русскоязычном пространстве. Мы будем говорить об изобретениях, компьютерах и языке программирования, не забывая о личности их автора, который достиг признания науки и общественности. Изображение на обложке лонга – монета в 10 евро, выпущенная к столетию со дня его рождения.
Конрад Цузе родился 22 июня 1910 года в Берлине в достаточно обеспеченной семье. Семейный достаток прямо повлияет на всю его жизнь. Он начнёт свои научные разработки в родительском доме и на деньги семьи, а позже будет прямо конвертировать науку в деньги, сделав компьютер инструментом производства.
Ещё в школе он начал заниматься техническими изобретениями, после школы поступил в Технический университет в Берлине. Это особое место в жизни Конрада. В университете царил дух свободы, и Конрад, убеждённый атеист, нередко вступал в конфликты со своими «традиционными» родителями. В университете он получил образование в сфере архитектуры, оттуда ушёл в гражданское строительство.
Карикатуру «На уроке математики» Конрад Цузе сделал еще будучи студентом. Из: Компьютер – дело моей жизни, Springer Verlag, 1985 г.© Конрад Цузе
Профессор математики из Берлинского университета, Рауль Рохас (Raúl Rojas), который на научном уровне изучал жизнь и научное творчество Конрада Цузе (по ссылке – перевод оригинального научного текста Рауля), вспоминал, что именно студентом, осуществляя однообразные математические действия, Конрад понял, что эти действия можно автоматизировать.
Приведём пример из практики работы Конрада в студенчестве.
Его задача была провести статические, повторяющиеся расчёты для мостов или определить нагрузки на материалы машин. Как это делалось?
У инженера есть специальная форма, в которой уже заранее напечатаны все необходимые формулы. Работник должен просто ввести свои данные и следовать по полностью разработанному вычислительному пути.
Цузе, во время работы над своим первым компьютером дома у родителей.
Именно эту однообразную задачу и хотел решить достаточно молодой Конрад, она легла в основу создания и его компьютера, и первого языка программирования. И эту работу он начал ещё будучи студентом. На дворе 1930-е гг., Конраду слегка за 20, он крайне увлекающаяся натура: рисует, изобретает, работает над социально значимыми проектами, но, из-за особенностей своего времени, определённой изоляции в Германии, он мало знаком с достижениями науки в США и, в частности, с работой Джона фон Неймана. Да и в целом, в кого ни плюнь (
И это та ситуация, когда изоляция оказалась плюсом, а не минусом! Конрад самостоятельно создал то, над чем «бились» целые институты, с именитыми учёными, которых вы видите выше, причём создал по-своему.
Как у него это получилось?
После окончания института и недолгой работы на авиазаводе (именно эта работа, возможно, спасла ему жизнь в дальнейшем), Конрад решил заниматься бизнесом и создать собственный компьютер. Мастерская в родительском доме, финансовая и техническая помощь друзей позволяют приступить к созданию первого механического компьютера.
Первый компьютер изначально назывался «VersuchsModell 1» или просто «V-1», что означало «экспериментальная модель 1», но после Второй Мировой войны сменил название на «Z-1», немецкие ракеты были плохой рекламой для названия компьютеров. На фотографии ниже вы видите тот самый компьютер Z-1 в гостиной семьи Цузе, справа самого Цузе, а слева его друга, Хельмута Шрайера, без которого вся идея могла не выстрелить, но о нём мы вам расскажем чуть позже.
На фотографии справа Конрад Цузе, слева – Хельмут Шрайер, посредине – компьютер Z-1, оригинальный. Фото 1936 года.
❯ Что такое Z-1, и что он мог?
Если глобально – это механический калькулятор, работающий в двоичной системе счисления. У этого калькулятора был электрический привод с ограниченной программируемостью (он имел ограниченное количество исполняемых инструкций) и возможность считывать инструкции с перфоленты. Его вполне можно называть компьютером: он имел блок управления, устройство ввода-вывода, мог осуществлять вычисления с плавающей запятой. Он умел осуществлять сложные вычислительные действия: умножать (путём повторного сложения) и делить (путём повторного вычитания). Команды вводились с перфокарт и не хранились в самом компьютере. Кроме того, устройство ввода-вывода умело переводить двоичные числа в десятичные и осуществлять обратную операцию.
Импульсатор компьютера Z-1, крупно. Фото 1936 г.
Общий вид первой модели, 1936 г.
Объясним, как примерно это работало.
В основе вычислений лежат логические вентили – элементы, которые могут выполнять элементарные логические операции. В компьютере Цузе такими элементами выступили металлические пластинки, которые могли только сдвигаться линейно чисто механически. Для двоичной системы этого достаточно, чтобы записывать любое число. Для вычислений также используются логические вентили. Это тоже металлические пластинки, которые будут отвечать за более сложные логические операции (И; ИЛИ; НЕ). Эти пластинки должны физически отличаться друг от друга, т. к. они должны напрямую физически взаимодействовать.
Фотография с повреждениями после бомбёжки, 1944 г., тогда же были уничтожены все три машины Z-1, Z-2, Z-3. Выжила лишь четвёртая.
Колоссальной сложностью обладал механический монтаж этих компонентов, т. к. движение каждой металлической пластинки должно было быть связано с движением другой металлической пластинки, кроме того, для вычислений должны были быть задействованы многие слои таких пластин. Можно однозначно сказать: механическая конструкция этого калькулятора была значительно сложнее, чем его логическая структура.
Копия компьютера Z-1, которая хранится в настоящее время в Немецком техническом музее. Копия создана в 1989 году под руководством самого Конрада Цузе.
И представьте: и механическую конструкцию, и логическую структуру придумал и разработал один человек, Конрад Цузе! Этот механизм в итоге весил 500 килограммов, а полностью понимал его работу только сам Конрад. Его друзья, которые помогали и вырезали сотни пластин, суть работы до конца понять не смогли. Эксперимент оказался успешен, этот компьютер правильно посчитал для нескольких человек матрицы 3 на 3.
При этом из-за колоссальной механической сложности аппарат работал достаточно медленно, активно ломался, но смог доказать, что идея автора реализована! Задача создания этого аппарата выполнена!
Новая задача. Что делает исследователь после достижения цели? Правильно, ставит новую цель, берёт новый рубеж!
Так началась история Z-2, новой машины. Там использовалась всё та же механическая память, но за арифметику и логику управления элементами отвечали электромеханические реле. В отличие от предыдущей модели Z-2 использует 16-битную арифметику с фиксированной запятой, Z-1 использовал 22-битную арифметику с плавающей запятой.
Анимация оригинального реле, которое использовалось в Z-3, к сожалению, от Z-2 не сохранилось ничего:
Но Z-2 имел серьёзное практическое значение, в 1940 году он был представлен перед учёными Немецкой авиационной лаборатории в Берлине – Адлерсхофе (крупнейший научно-технический проект, который существует до сих пор). Во время презентации Z-2 прекрасно выполнил свои задачи, и Конрад получил финансирование на создание следующей машины от правительства Германии. Никаких чертежей, частей или фотографий Z-2 не сохранилось, всё было уничтожено во время войны.
Анимация оригинального шагового переключателя, который использовался в Z-3:
И вот тут стреляет, словно Чеховское ружьё, друг Конрада Хельмут Шрайер. Он предлагает заменить реле на электронные лампы и успешно показывает пример того, как это ускорит работу. Возможно, ситуация бы развивалась совершенно иначе, но власти Германии, к которым обратились за финансированием Цузе и Шрайер, отказались выделять колоссальные средства на создание компьютера на лампах, и Z-3 был создан в 1941 году вновь с использованием электромеханических реле. А в 1943 году компьютер ЭНИАК в США показал, что технология ламп действительно эффективна, но просто чудовищно дорога. Вернёмся в Германию. В компьютерах Цузе лампы тоже появятся, но только через несколько десятилетий.
Наступил 1941 год, Конрад Цузе завершил работу над Z-3. В нём использовалось около 2 000 реле, технически это была куда более совершенная машина. Так, тактовая частота была около 5–10 Гц (у первой версии – 1 Гц), плавающая запятая изменена, появилась возможность обработки исключений (минус/плюс бесконечность и неопределённое). Этот компьютер уже использовался на практике: там осуществлялись некоторые практические расчёты. Немецкий научно-исследовательский институт авиации использовал его для статистического анализа флаттера крыла. Флаттер – это специфические колебания крыльев во время полёта самолёта, которые даже могут его разрушить. Подробнее об этом явлении советую почитать тут.
Требования к пространству и источнику питания Zuse Z-3, фрагмент технической документации.
Фото 1942 г. Предположительно, специальная модель компьютера для вычислений в области авиации.
Об этой части работы Цузе информация несколько разнится, встречаются упоминания специальных машин для вычисления измерений крыльев. На фото, если верить интернет-архиву Цузе, специальная модель S1 для измерения крыльев.
И вот именно сейчас стоит сказать пару слов о личности Цузе.
Ниже можно увидеть рабочее удостоверение 1942 года, во время работы учёного на авиационном заводе. Символика на печатях закрыта ввиду современной ситуации с публикацией архивных документов.
Текст над фото — «Фотография владельца или законного представителя следующей компании». Текст под фото — «собственноручная подпись»; Текст под подписью — «Подтверждение того, что владелец удостоверения личности, идентифицированный по изображению выше, сам подписал документ.
Цузе не был членом партии, вместе с тем не сохранилось никаких сведений о его отношении к работе на нацистскую военную структуру, с учётом того, что его изобретения однозначно использовались в авиации и разработке прототипов ракет.
Автор этого текста считает, что стоит внимания его позднее, уже мемуарное воспоминание. Конрад писал, что «в наше время лучшим учёным и инженерам обычно приходится выбирать: или выполнять свою работу ради более или менее сомнительных деловых и военных интересов в рамках «сделки с дьяволом» или вообще не заниматься своей деятельностью». Это свободный перевод цитаты из его книги «Der Computer – Mein Lebenswerk» 1984 года. Эта мысль, как кажется автору текста, отражает общую дилемму учёных двадцатого века, когда изобретения, даже такие мирные, как большой и сложный калькулятор, могут использоваться для уничтожения людей.
В военное время Конрад работал над созданием следующего компьютера, Z-4, и успешно создал его практически в самом конце войны. Конрада и его технику эвакуировали из Берлина незадолго до конца войны, однако, к союзникам техника не попала, как не пошёл работать на союзников и сам учёный.
Технически компьютер Z-4 впечатлял. Память перешла на 32 бита. Появился специальный блок, который перфорировал ленты с программами (что очень сильно упростило программирование и корректировку программ). Появилась возможность использовать квадратный корень, функции МАКС и МИН. Использовались сменные перфоленты с программами и подпрограммами.
Сделаем небольшое отступление и познакомимся с женщиной, которая за Z-4 работала.
Сохранились уникальные воспоминания первой немецкой женщины-программиста, Урсулы Вальк [нем. — Ursula Walk], которая работала на Конрада Цузе в послевоенное время, про его личность и некоторые аспекты работы.
В 1948 году, когда Урсула, имея серьёзный технический опыт, работала на уборке территории (жизнь в послевоенной Германии тоже такой себе сахар), к ней подошёл сотрудник фирмы Цузе и предложил работу непосредственно за Z-4. При этом он предоставлял медицинскую страховку и небольшую зарплату*.
*Примечание от автора текста. В послевоенной Германии была карточная система, которую отменили в ГДР с 1948 года, а в ФРГ – с 1950-го. Сам факт наличия зарплаты от частной фирмы был однозначным плюсом, как и возможность заниматься в соответствии со своей квалификацией, а не уборкой территории.
Урсула вспоминала, что компьютер стоял в подвале склада муки деревенского пекаря. Условия труда в этом подвале были довольно… временными. Проточной воды не было, и сотрудникам пришлось пользоваться туалетом в соседнем ресторане. Было только одно окно, освещение исключительно электрическое. Местные жители считали компьютер «странной машиной», однако, Цузе смог добиться их расположения и уважения от местных, когда выиграл пари. Пари простое: кто быстрее рассчитает счёт за молоко — молочная ферма или Цузе и его компьютер? Цузе победил.
Сама Урсула выполняла простую работу: она вводила числа в калькулятор и производила их вычисления в соответствии с программой, кроме того, заполняла и чертила документацию самого Z-4, печатала диссертацию Конрада Цузе и отправляла её в университет для защиты. Защита не состоялась, т. к. Цузе не отправил 400 марок, работу просто не приняли в рассмотрение, о чём, если верить Урсуле, Цузе не переживал и периодически на эту тему шутил.
Вернёмся к истории нашего героя.
Компьютер Z-4 был полностью закончен в 1945 году и вывезен из Берлина. В 1946 году Цузе создаёт фирму, которая будет заниматься продажей компьютеров, но коммерческая жилка громко заговорила в 1949 году. Цузе встречает Эдуарда Штифеля, швейцарского математика, который только что вернулся из США, познакомившись с достижениями американской компьютерной техники. Он решил испытать Цузе и его Z-4 дифференциальным уравнением, программу для решения которого Цузе написал в его присутствии. Демонстрация была впечатляющая, и уже в следующему году Штифель покупает у Цузе его компьютер (сделанный на деньги вермахта, но принадлежащий фирме Цузе) для Швейцарского федерального технологического института Цюриха, где работал Штифель.
Эдуард Штифель
Наконец-то компьютер Цузе начал выполнять задачи мирного времени. Его купили специально для расчётов строительства плотины Клезон-Диксенс в Швейцарии. В ближайшие два года это будет единственный коммерческий (!) работающий компьютер в континентальной Европе, да и в целом второй работающий компьютер в мире. Он проиграет только американскому компьютеру BINAC, но тот на практике свои задачи и не выполнял, так что Z-4, с некоторой натяжкой, может считаться первым настоящим коммерческим компьютером. В 1954 году Z-4 снова был продан, в этот раз Франко-германскому исследовательскому институту во Франции, где активно работал до 1959 года, пока попросту не устарел. Сегодня оригинал этого компьютера – музейный экспонат, который находится в Немецком музее Мюнхена (Deutsches Museum von Meisterwerken der Naturwissenschaft und Technik).
Гидрокомплекс Клезон-Диксенс, Швейцария, наши дни.
Бизнес процветал, за Z-4 пошла целая серия компьютеров. На компьютере Z-22 впервые использовались электронные лампы (а ведь эту идею Цузе предложил ещё в 1938 году), а уже Z-23 перешёл на транзисторы, на которых и создавались все остальные компьютеры. Компьютеры продолжали производиться до 1960-х гг., и только тогда Zuse KG (так называлась фирма к этому периоду) просто проиграла конкурентную борьбу. В 1962 году фирма была продана компании Brown, Boveri & Cie., а затем компании Siemens, которая и остановила производство компьютеров серии «Zuse» к концу 1960-х гг. При этом сам Конрад Цузе в фирме остался в должности научного консультанта и не прекращал заниматься наукой до конца своей жизни.
❯ Plankalkül — первый высокоуровневый язык программирования
Наш герой не только «герой» железа, но и создатель первого высокоуровневого языка программирования. Про это нужно рассказывать отдельно, уже когда вы будете знакомы с его железом. Возможно, вы скажете, что первый язык — это FORTRAN, но он первый широко известный и практически применимый. Фортран создавался с 1953 года, а Plankalkül был создан Конрадом Цузе лично ещё в 1942 году (работа над языком продолжалась до 1945 г. и далее), непосредственно во время войны, но… это был теоретический язык.
Сам Конрад не верил, что его язык действительно найдёт применение на практике:
Plankalkül родился исключительно как результат теоретической работы, без всякой связи с тем, появятся или нет в обозримом будущем машины, подходящие к программам на Plankalkül».
Слишком он опережал своё время, да и уровень международного сотрудничества в 1942 году для гражданина Германии был… не самый располагающий к распространению языков программирования.
Само название языка Plankalkül – это два слова немецкого языка со значением «план» и «исчисление». Этот язык был планом счислений для вычислительной системы Z-4. Именно при создании языка Конрад чётко выделил в работе своего устройства аппаратное и программное обеспечение, поставив между ними черту.
Исторический указатель на доме, где Цузе работал над Plankalkül.
Гений Цузе заключался в том, что его язык не был привязан к конкретной вычислительной машине, её архитектуре или набору команд. Это был первый в мире символический язык, привычного понятия «алгоритмичный язык» ещё просто не существовало. В сам язык он ввёл понятие «объект», который мог быть «примитивным», основанным на двоичных числах разной длины, или «составным», т. е. включать структуры, рекурсивно определяемые массивы произвольной размерности и т. д. В этом языке появилась возможность записывать сложные синтаксические конструкции, и, соответственно, осуществлять сложные задачи. Для решения сложных задач Конрад разработал собственный синтаксис. Была реализована возможность работы с массивами и подмассивами, а также использование подпрограмм. Подробнее для специалистов в области программирования советую научную статью про данный язык по QR-коду выше или по первой ссылке из пункта литературы. Мы же продолжим информировать «рядового» читателя.
Казакова, И. А. Plankalkül – первый высокоуровневый язык программирования / И. А. Казакова // Прикладная информатика. – 2012. – № 5(41). – С. 128–131. Текст в открытом доступе на Елайбрари, в нём также есть примеры программы на этом языке.
Конрад Цузе в 1957 году очень красиво и образно выразился о своём языке, что желает, чтобы он «спустя время вернулся к жизни, словно спящая красавица», и оказался прав. Его язык ожил, когда в 2000 году, уже после смерти учёного, написали интерпретатор для языка (на Хабре есть подробный рассказ про интерпретатор) и на практике испробовали его.
Язык не получил распространения и известности в первую очередь из-за того, что руководство по языку было опубликовано только в 1972 году, он просто оставался неизвестным для учёных всего мира. Без сомнений, коммерческая деятельность Конрада оказала на это своё влияние, если он на диссертацию «компьютерную мышь» положил, что ему мешало также положить и на публикацию «теоретического» языка?
Этот язык мог «перевернуть» всю современную ему информатику, ведь пока нигде не были представлены условные конструкции, циклы, массивы, возможность описывать и вызывать подпрограммы, но условия, в которых этот язык был создан, не позволили ему стать всемирно известным, к моменту публикации документации язык уже сильно устарел. Устарел безнадёжно.
Жизнь Конрада Цузе не была простой. Он в одиночку выиграл технологическую гонку у огромных корпораций и групп учёных, однако ни он сам, ни другие учёные об этой гонке не знали. Невероятная тяга к прогрессу, к облегчению монотонного труда позволила создать компьютер, обогнавший своё время. Позже, когда достижения Цузе были признаны европейской научной общественностью, учёные с печалью говорили: «Узнай о них весь мир в своё время, прогресс мог бы сделать несколько шагов намного быстрее». Учёный получил множество почётных степеней, развивал ряд идей теоретического понимания Вселенной, но в итоге наглядно показал, что в современном мире один человек, даже самый гениальный, больше не может соревноваться с целыми научными институтами. Однако чуть больше восьмидесяти лет назад один человек всё ещё мог на равных соревноваться с системой.
Список литературы и источников по теме:
Открыть
- Raúl Rojas — «Konrad Zuse’s Legacy: The Architecture of the Z1 and Z3», IEEE Annals of the History of Computing, Vol. 19, No. 2, 1997 (переведена на русский);
- Казакова, И. А. Plankalkül — первый высокоуровневый язык программирования / И. А. Казакова // Прикладная информатика. – 2012. – № 5(41). – С. 128-131;
- Козырев, А. Н. Параллели — Анатолий Китов и Конрад Цузе / А. Н. Козырев // Цифровая экономика. – 2020. – № 3(11). – С. 60-72. – DOI 10.34706/DE-2020-03-07;
- zuse.zib.de — интернет-архив Конрада Цузе;
- Гаков, В. Несумрачный немецкий гений / В. Гаков // Системный администратор. – 2014. – № 10(143). – С. 88-91;
- Дополнительная информация о патентной деятельности Цузе (на немецком языке), которая в пост просто не поместилась — www.dpma.de/dpma/veroeffentlichungen/meilensteine/computer-pioniere/zuse/index.html;
- ИСТОРИЯ КОМПЬЮТЕРА. Роли Конрада Цузе и Джона фон Неймана. (Статья на немецком языке). Некоторый интерес вызывают цитата сына Конрада Цузе и сопровождающие изображения — www.ardalpha.de/wissen/geschichte/historische-persoenlichkeiten/konrad-zuse-computer-rechner-erfinder-102.html.