Никлаус Вирт (Клагенфурт, Австрия, август 2003 г.) |
Никлаус Вирт... Это имя в России известно многим. Три с лишним десятилетия назад профессор Вирт создал в далекой Швейцарии язык программирования Паскаль. Казалось бы, одного этого было достаточно, чтобы навечно вписать его имя в летопись компьютерных наук. Но в жизни нередко бывает так, что признание и известность получают далеко не самые лучшие и не самые совершенные творения. Вот и в случае с Паскалем мы видим лишь вершину айсберга, а большая часть творчества Вирта до сих пор для многих остается неизвестной.
Никлаус Вирт родился 70 лет назад — 15 февраля 1934 г. — в небольшом городке Винтертуре в предместье Цюриха. Родился Никлаус в семье Уолтера и Хедвиг Вирт. Они жили неподалеку от школы, где преподавал его отец. В их доме была хорошая библиотека, где Вирт находил немало интересных книг, рассказывавших про железные дороги, турбины и телеграф.
Небольшой городок Винтертур имеет многовековую историю и славится своим машиностроением: там выпускаются локомотивы и дизельные двигатели. С детских лет Вирт увлекался техникой, особенно авиамоделированием. Он буквально грезил небом. Но для запуска ракет нужно было топливо, и потому он занялся химией. Юный Вирт оборудовал в подвале школы «секретную» лабораторию. Ничто не могло его остановить: однажды сделанная им модель отклонилась от заданной траектории и угодила под ноги директору школы. Однако Вирт все равно продолжал упорно идти к намеченной цели.
Спустя несколько десятилетий Никлаусу Вирту, как и Кену Томпсону, автору UNIX, довелось полетать на МИГе с военного аэродрома в Кубинке, что находится под Москвой. Сбылась его заветная мечта. Лучше всего мотивацию профессионального творчества Вирта раскрыл его коллега по Стэнфордскому университету (США), профессор Дональд Кнут: «Вирт всегда хотел создавать аэропланы, и ему нужен был самый лучший инструментарий. Вот почему он проектировал много компьютерных языков и микрокомпьютеров...»
От строительства моделей Никлаус довольно быстро перешел к разработке дистанционного управления для них. Когда ему исполнилось 18 лет, он с еще двумя цюрихскими авиамоделистами получили из Англии желанную радиоаппаратуру. Это предопределило его дальнейшую судьбу — в 1954 г. Вирт поступил на факультет электроники в цюрихский ETH (Eidgenoessische Technische Hochschule, Швейцарский федеральный технологический институт). После четырех лет обучения Вирт получил степень бакалавра в области электротехники. А затем начинается славное десятилетнее заокеанское научное «турне» будущего «отца Паскаля» и «короля компиляторов» по маршруту Швейцария — Канада — США — Швейцария.
Свое обучение Вирт продолжил в Лавальском университете г. Квебека (Канада), где в 1960 г. получил степень магистра. Затем его пригласили в университет Калифорнии в Беркли (США) — будущую жемчужину Кремниевой долины. Там под руководством профессора Хаски в 1963 г. Никлаус Вирт защитил диссертацию, посвященную развитию Алгола средствами Лиспа (язык Euler). Эта работа в буквальном смысле дала ему путевку в жизнь: Вирта приметили мэтры программирования и пригласили в Комитет IFIP по стандартизации Алгола. Та школа не прошла даром: на всю жизнь Вирт запомнил, что доказывать свою правоту нужно делом, особенно когда тебя не хотят слышать. В разработке языков он навсегда отказался от абстрактно-научного подхода в пользу математически-инженерного. По его словам, лучше сначала реализовать язык и лишь потом следует о нем писать.
С 1963 по 1967 г. Вирт работал доцентом (assistant professor) в Стэнфордском университете и в 1967 г. вернулся в этом звании в университет Цюриха. А в 1968 г. он получил в ETH звание профессора компьютерных наук и начал возводить на родине свой «швейцарский» Стэнфорд. Двадцатилетие с 1969 по 1989 г. было, пожалуй, самым плодотворным периодом в жизни Вирта (табл. 1). Он продолжал строить свою школу, уделяя немало времени организационной деятельности. C 1982 по 1984 г. (а потом и с 1988 по 1990 г.) Вирт возглавлял в ETH факультет компьютерных наук, а с 1990 г. руководил Институтом компьютерных систем (Institute of Computer Systems) при ETH. На пенсию профессор Вирт ушел 1 апреля 1999 г. по достижении 65-летнего возраста.
Романтические 1960-е годы положили начало дружбе трех патриархов структурного программирования — голландца Эдсгера Дейкстры, англичанина Энтони Хоара и швейцарца Никлауса Вирта. Этих «нобелевских» лауреатов (премия Тьюринга, присуждаемая ассоциацией ACM, вручается раз в жизни и приравнивается в компьютерных науках к Нобелевской) сблизили не столько абстракции компьютерных наук, сколько четкая профессиональная позиция.
Самым известным достижением профессора Вирта считается язык Паскаль. Безусловно, многие об этом языке слышали и знают его. Паскаль сыграл огромную роль в формировании мировоззрения нескольких поколений программистов. Но этот язык далеко не идеальный. В свое время Брайан Керниган, известный популяризатор языка Си, соавтор классического руководства по Си (K&R), написал критическую статью «Почему Паскаль не является моим любимым языком программирования». Если с ней внимательно ознакомиться, то можно решить, что Никлаус Вирт сделал из нее правильные выводы и в языке Modula-2 под воздействием статьи устранил многие изъяны канонического Паскаля. Однако следует иметь в виду одно немаловажное обстоятельство. Наделавшая шума работа Кернигана была написана 2 апреля 1981 г., т.е. через два года (!) после реализации группой Вирта в ETH первого компилятора Modula-2 и через год после выпуска аппаратной реализации Modula-2 — персонального компьютера Lilith. В апреле 1993 г. на Конференции ACM по истории языков программирования Вирт в ответ на вопрос одного из своих коллег поставил языку Modula-2 оценку «6 баллов» (наивысшая оценка в школах Швейцарии).
Компьютерная индустрия отставала от работ Вирта как минимум на 5—7 лет. В том же 1979 г. намного уступавший Lilith легендарный компьютер Apple II только-только обрел компилятор Apple Pascal, ориентированный на UCSD-реализацию Паскаля. До появления первого скромного Turbo Pascal Андерса Хейльсберга оставалось целых четыре года! Впоследствии Вирт с грустью говорил о том, что с проектом Lilith швейцарская промышленность упустила свой уникальный шанс.
Подлинной жемчужиной творчества Вирта стал проект Oberon. Созданная почти два десятилетия назад система Oberon (Oberon System, http://www.oberon.ethz.ch) играет в наши дни приблизительно ту же роль, что в начале 1980-х годов играли проекты Alto и Xerox Star знаменитого центра Xerox PARC, откуда взяли начало современные персональные компьютеры и текстовые редакторы. Для таких корпораций, как Microsoft, IBM и Sun Microsystems, проект Oberon стал источником плодотворных идей, среди которых можно выделить документо-ориентированный интерфейс, браузеры, промышленные языки разработки ПО (Java и C#), машинно-независимый мобильный код (JVM и .NET CLR), аплеты, компонентное ПО, динамическую компиляцию (JIT, AOC, DAC), смарт-теги, веб-службы и др.
Мы живем в эпоху торжества безумной технологической гонки и надуманной сложности. Всю свою жизнь Никлаус Вирт посвятил борьбе с этими пагубными явлениями, но его не слышат или не хотят слышать. «Крайнюю степень ума, — писал Блез Паскаль, — обвиняют в безумии точно так же, как полное отсутствие ума. Хороша только посредственность».
В короткой статье невозможно даже мимоходом рассказать о других замечательных проектах Вирта. Поэтому просто посмотрите табл. 1.
Вирт был и остается последователем европейской инженерной культуры. Американские достижения давали ему богатую пищу для размышлений: многие идеи он пропускал через себя и выкристаллизовывал самое ценное. Все три ключевых языка (Паскаль, Modula-2 и Oberon) были созданы Виртом буквально два-три года спустя после возвращения из-за океана. (В 1967 г. Вирт завершал работы по компилятору Algol-W в Стэнфорде, а в 1976 г. и 1984 г. на год уезжал в лаборатории Xerox PARC.) Работы Вирта создавались не в ваккуме. Его окружали единомышленники — коллеги и ученики, среди которых можно выделить Юрга Гуткнехта (соавтора по проекту Oberon), Ханспетера Мессенбока (соавтора языка Oberon-2), Ричарда Орана (соавтора при создании Lilith), Куно Пфистера (основателя Oberon microsystems и идеолога инструментария BlackBox), Клеменса Шиперски (идеолога компонентной архитектуры в Oberon System) и Михаэля Франца (автора концепции динамической кодогенерации, прообраза JIT-компиляции Java).
Большую роль в популяризации в нашей стране языков и систем Никлауса Вирта в 1980—1990-х годах сыграла рабочая группа по Modula-2, бессменным руководителем и вдохновителем которой был Д. М. Сагателян из Института общей физики АН СССР. Нельзя не вспомнить и работы группы профессора И. В. Поттосина из Сибирского отделения АН СССР (НГУ и Институт систем информатики им. А. П. Ершова). Создание инструментария для бортового ПО отечественных спутников (проект СОКРАТ), семейство компьютеров KRONOS (Дмитрий Кузнецов, Алексей Недоря, Евгений Тарасов, Владимир Васекин и др.), XDS-семейство компиляторов Modula-2/Oberon-2 — вот, пожалуй, самые яркие страницы отечественной истории, связанные с именем Вирта. Нарастающая волна интереса к Oberon, вершине творчества патриарха надежного программирования, в связи с острой потребностью в высококачественном программном обеспечении, в частности, в физике, привела к возникновению проекта «Информатика-21» (http://www.inr.ac.ru/~info21/), к которому с огромным интересом относится Вирт. Более того, в марте этого года в швейцарском Центре ядерных исследований (CERN), где 15 лет назад взяла свое начало сеть World Wide Web, специально для физиков проводился Oberon Day (http://cern.ch/oberon.day).
Никлаус Вирт заложил традицию присвоения языкам программирования имен математиков прошлого. В 1963 г. он дал имя Леонарда Эйлера, великого швейцарского математика, много лет проработавшего в России, своему первому творению — языку Euler. А в 1970 г. Блез Паскаль, великий французский математик и философ, творчеством которого восхищались Н. Г. Чернышевский и Л. Н. Толстой, был увековечен Виртом в языке Паскаль. Интересные параллели: 11 мая 1994 г., выступая в С.-Петербургском университете, Дональд Кнут подчеркнул, что для него особенно приятен тот факт, что звание почетного доктора информатики ему присуждает университет, в котором преподавал еще великий Эйлер. Никлаус Вирт 27 июня 1996 г. надел почетную докторскую мантию в Новосибирском Академгородке, созданном М. А. Лаврентьевым и С. Л. Соболевым по образу и подобию того самого Стэнфорда, который Вирт взял за основу строительства своей европейской школы в ETH. Вклад Вирта в развитие компьютерных наук и программной инженерии был оценен по достоинству. Он не только стал членом трех академий (Swiss Academy of Engineering, U.S. Academy of Engineering, Berlin-Brandenburg Academy), но и лауреатом самых престижных наград (табл. 2).
Жизненное кредо Никлауса Вирта лучше всего, пожалуй, передают слова великого Блеза Паскаля, написавшего три с лишним столетия назад: «Все наше достоинство заключено в мысли. Не пространство и не время, которых мы не можем заполнить, возвышают нас, а именно она, наша мысль. Будем же учиться хорошо мыслить...
Об авторе:
Руслан Богатырев — научный редактор «Мира ПК», главный редактор «Мир ПК - диска», bogatyrev@pcworld.ru.
Полную версию статьи см. в электронном альманахе «Искусство программирования», опубликованном в мартовском приложении «Мир ПК-диска» (№ 3/04).
Мы живем в сложном мире и стараемся решать сложные по своей сути проблемы, которые зачастую для своего решения требуют сложных устройств. Однако это не значит, что мы не должны найти элегантные решения, убеждающие своей ясностью и эффективностью. Простые элегантные решения более эффективны, но найти их труднее, чем сложные, и для этого требуется больше времени.
Никлаус Вирт (Швейцария, Швейцарский федеральный технологический институт).
Из речи при вручении премии Тьюринга (Сан-Франциско, США, октябрь 1984 г.).
Когда компьютеров еще не было, то программирование не составляло никакой проблемы. Когда у нас появилось несколько маломощных компьютеров, то программирование стало проблемой средней сложности. Теперь же, когда мы располагаем гигантскими компьютерами, то и программирование превращается в гигантскую проблему.
Эдсгер Дейкстра (Нидерланды, Эйндховенский технологический университет).
Из речи при вручении премии Тьюринга (Бостон, США, 14 августа 1972 г.).
Почти все в программном обеспечении может быть реализовано, продано и даже использовано, если проявить достаточную настойчивость... Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Энтони Хоар (Великобритания, Оксфордский университет).
Из речи при вручении премии Тьюринга (Нэшвилл, США, 27 октября 1980 г.).