
Первое, что замечали все, кто приходил в цюрихскую квартиру профессора Никлауса Вирта, — это большая модель самолёта в гостиной. Не сувенир, не декорация — след детского увлечения, которое никуда не делось за восемьдесят девять лет жизни.
Его коллега по Стэнфорду, профессор Дональд Кнут, однажды сформулировал это точнее всех: «Вирт всегда хотел создавать аэропланы, и ему нужен был самый лучший инструментарий. Вот почему он проектировал много компьютерных языков и микрокомпьютеров».
Языки программирования — как инструменты для постройки летательных аппаратов. Эта аналогия многое объясняет в творческой философии человека, который в конце концов создал Pascal, Modula и Oberon и стал одним из архитекторов самой идеи «правильного» кода.
Никлаус Вирт родился 15 февраля 1934 года в Винтертуре — крупном промышленном городе в кантоне Цюрих, известном своим машиностроением: там выпускались локомотивы и дизельные двигатели.
Его отец, Уолтер Вирт, был школьным учителем. Семья жила неподалёку от школы, где он преподавал. В их доме была хорошая библиотека, где Никлаус находил книги про железные дороги, турбины и телеграф.
Мальчик, растущий в книгах о механике и технике, неподалёку от завода, где делают локомотивы — это формирует особый тип ума: инженерный в лучшем смысле слова. Не тот, что строит красивые теории, а тот, что думает о том, как вещь работает на практике.
С детства Никлаус увлекался авиамоделированием и строительством ракет. Он даже пытался изготавливать ракетное топливо прямо в подвале школы. Этот эпизод — попытка двенадцатилетнего мальчика синтезировать топливо для модельных ракет — в любой другой биографии звучал бы как анекдот. Здесь же это — точная метафора: он всегда шёл к делу напрямую, не обходя сложные вещи стороной, а разбирая их изнутри.
От строительства моделей Никлаус довольно быстро перешёл к разработке систем дистанционного управления для них — именно так началось его увлечение электроникой и программным управлением.
В Швейцарской высшей технической школе Цюриха — ETH, одном из лучших технических университетов Европы — Вирт получил специальность инженера-электрика. Затем — докторантура в Калифорнийском университете в Беркли: в 1963 году он защитил диссертацию.
Тема диссертации не осталась незамеченной. В том же 1963 году Вирт был приглашён в Комитет по стандартизации Алгола IFIP, который разрабатывал новый стандарт языка — впоследствии ставший Алголом-68. Параллельно, с 1963 по 1967 год, он работал ассистентом в Стэнфордском университете.
В Стэнфорде Вирт создал PL360 — язык для программирования IBM System/360. Это был инструмент для конкретной машины, конкретной задачи. Уже здесь виден его стиль: не абстрактная элегантность ради элегантности, а практическая точность.
В истории программирования есть один сюжет, который без Вирта выглядел бы совсем иначе. В конце 1960-х он вместе с Чарльзом Хоаром работал в международном комитете над новым стандартом Алгола. Позиция обоих была принципиальной: язык должен быть умеренно расширенной, очищенной от дефектов версией Алгола-60 — простой, надёжной, без излишеств.
Вирт и Хоар представили комитету язык Алгол-W, но поддержки не встретили. Комитет выбрал более амбициозный путь — и в 1968 году представил Алгол-68.
Документация к Алголу-68 занимала сотни страниц сложных терминов. В итоге язык не получил ни нормальной реализации, ни большого числа пользователей. Хоар назвал его «неясным и чрезмерно амбициозным».
Вирт из-за категорического несогласия с проектной философией вышел из комитета в 1968 году — и в 1970 году представил собственный язык: Pascal.
Это был один из тех случаев, когда несогласие с большинством оказывается правотой. Алгол-68 умер почти сразу. Pascal прожил десятилетия.
В 1970 году Вирт создал язык программирования Pascal. Название — в честь французского математика Блеза Паскаля, создавшего одну из первых механических счётных машин. Эта отсылка к истории не была случайной: Вирт думал о программировании как о дисциплине с традицией и преемственностью.
Pascal был создан с конкретной педагогической целью: дать студентам язык, на котором можно научить думать структурно. В 1970-х годах Вирт вместе с Хоаром и Дейкстрой разработал технологию структурного программирования. Идея была проста и революционна одновременно: программа должна иметь чёткую, читаемую структуру — без хаотичных переходов, без «спагетти-кода», без трюков ради трюков.
Pascal широко известен в мире как язык для обучения программированию. Его создание было оценено присвоением автору премии Тьюринга в 1984 году и медали «Пионер компьютерной техники» в 1988 году.
Премия Тьюринга — это Нобелевская премия в мире компьютерных наук. Вирт получил её в пятьдесят лет, находясь в расцвете творческой активности.
В 1968 году Вирт получил звание профессора компьютерных наук ETH Цюриха и в течение тридцати одного года работал в этом университете. Тридцать один год на одной кафедре — редкость в академическом мире, где мобильность стала нормой. Но это было не инерцией, а выбором: он хотел создать в Швейцарии что-то похожее на Стэнфорд, занимался организационной работой и успешно внедрял в ETH американские традиции обучения.
В ETH родились почти все его главные проекты. В конце 1980-х под руководством Вирта в ETH был разработан компьютер Ceres. Сто экземпляров было произведено для учебных аудиторий школы, где машины использовались до 2003 года. Для этого компьютера Вирт доработал Modula-2 до языка Oberon и написал для него операционную систему.
Здесь — ключевая черта Вирта как учёного. Он не просто придумывал языки абстрактно. Он создавал компьютер — чтобы написать для него операционную систему — чтобы операционная система требовала нового языка. Цикл был полным: от железа до синтаксиса.
В народе компьютерной науки существует афоризм, который принято называть «законом Вирта»: программы замедляются быстрее, чем железо ускоряется. Иными словами — каждое новое поколение процессоров даёт прирост производительности, который тут же съедается раздутым, неоптимизированным программным обеспечением.
Вирт сформулировал эту мысль в 1990-е — и она стала почти пророческой. В мире, где приложения с каждой версией требуют всё больше ресурсов при всё меньшем функциональном приросте, его предупреждение звучит актуально и сегодня. Философия минимализма, которую он исповедовал всю жизнь — «делать малым» — была не эстетической прихотью, а практической позицией.
Показательна сравнительная краткость его языков: спецификация Оберона умещается на 16 страницах, Modula-2 — на 40, Pascal — на 60. Это был намеренный выбор — в пользу ясности против мощи, против монструозной сложности Алгола-68.
В 2005 году Вирт совершил большое турне по России, встречаясь с учёными и педагогами, для которых Pascal был частью профессиональной биографии. Россия была одной из стран, где его язык получил наибольшее распространение в образовании — десятки тысяч советских и российских программистов учились думать о коде именно через Pascal.
До последних лет Вирт оставался интеллектуально активным. В 2007 году вышла финальная версия Oberon-07 — очередная попытка сказать то, что уже было сказано, но сказать ещё точнее, ещё чище.
1 января 2024 года Никлаус Вирт скончался в своём доме в Цюрихе, в окружении семьи. Ему было восемьдесят девять лет.
Он умер в первый день нового года — как будто дав компьютерному миру ещё одну ночь, прежде чем сообщить о потере.
Бертран Мейер, сменивший Вирта на посту руководителя кафедры разработки программного обеспечения в ETH, написал после его смерти: мир потерял «титана языков программирования, методологии программирования и компьютерных систем».
Но, пожалуй, точнее всего значение Вирта выражает не число созданных им языков и не список наград. Его главное наследие — это идея о том, что программирование должно быть дисциплиной ясного мышления. Что язык не должен позволять писать плохой код — он должен делать хороший код естественным. Что простота — это не упрощение, а высшая форма точности.
Поколения программистов по всему миру учились думать о коде так, как учил Вирт: сверху вниз, шаг за шагом, с чёткой структурой и минимумом лишнего. Это не просто метод — это способ мыслить. И он пережил любой конкретный язык программирования.
В гостиной оставалась модель самолёта. Работа была завершена.
Никлаус Вирт, создатель Pascal
| Родился: | 15.02.1934 (89) |
| Место: | Винтертур (CH) |
| Умер: | 01.01.2024 |
| Место: | Цюрих (CH) |