Вирт. Былое и думы…

Никлаус Вирт во время визита в Россию. Фото: Tyomitch / wikipedia.org:

«Соджетто» иногда называют просто «темой». Руслан Богатырев опубликовал очередное «Соджетто. Пантеон программирования. Памяти И. В. Поттосина», которое я рекомендую прочесть всем любителям и профессионалам от программирования.

Там есть такой абзац: «Большое турне Вирта осенью 2005 г., в организации которого мне довелось участвовать с подачи профессора Юрга Гуткнехта (ETH Zurich) и Д. М. Сагателяна, вдохнуло новую жизнь в старый замысел. Удалось подключить к этому и журнал «Мир ПК», где в те годы работал научным редактором.

Это турне Вирта очень остро высветило тот гигантский разрыв между спросом и предложением ― «промывкой мозгов» молодого поколения и действительно фундаментальными вещами, лежащими вне сиюминутной конъюнктуры.

Своими учителями, заочными наставниками в науке я по сей день считаю Игоря Васильевича Поттосина и Никлауса Вирта. Выдающиеся мастера с мировым именем, которые закладывали основы основ программирования: собственные языки и системы трансляции. Отцы-основатели новосибирской и цюрихской школ программирования.

Именно их работы, их имена были для меня путеводными. Именно они помогали разобраться в избыточной сложности и искусственном хаосе современного мира, именно они заложили основы моего научного мировосприятия. За что я им безмерно благодарен".

Так вот мы в Университете ИТМО с подачи Руслана участвовали в этом большом турне Вирта, в рамках которого мы избрали его в «Почетные доктора Университета ИТМО». Дам ссылки на опубликованные тогда тексты:

  1. «Докторская мантия для Никлауса Вирта»;
  2. Шалыто А. «Никлаус Вирт ― почетный доктор СПбГУ ИТМО». Эта статья начинается со слов Вирта: «Язык должен быть очевидным и естественным отражением фундаментальных и наиболее важных концепций алгоритмов».
  3. В 2014 г. Университет ИТМО поздравил профессора Вирта с восьмидесятилетием. Поздравил с юбилеем его и я и получил ответ по-русски: «Здравствуйте! Я был очень рад получить от Вас поздравление с юбилеем. Очень приятно! Большое спасибо за поздравления. Мне нравится информация обо мне, представленная Вами в Интернете. С уважением, Никлаус Вирт». По этому адресу приведены фотографии того незабываемого визита. Среди них есть и моя лучшая в жизни фотография: «Вирт, девушки и цветы».
Никлаус Вирт в Университете ИТМО. Источник: is.ifmo.ru
Никлаус Вирт в Университете ИТМО. Источник: is.ifmo.ru

Из записок того времени: «Ученый совет Университета ИТМО с моей подачи избрал Почетным доктором Университета ИТМО лауреата премии Тьюринга 1984 г. Никлауса Вирта. Торжественная встреча с ним произошла 13.09.2005 г., а 11 октября того же года была опубликована статья «Никлаус Вирт: «Программирование ― это путь к пониманию окружающего мира» (IT news. № 19 (44), c. 8, которая, к сожалению, в архиве издания не сохранилась)».

После торжественной процедуры Вирт дал небольшую пресс-конференцию, на которой я присутствовал. На ней он, в частности, сказал, что программирование формирует логическое мышление человека. Я позволил себе не согласиться с классиком, и спросил:

― Как Вы считаете, мыслит ли логично человек, программирующий уже более десяти лет и сдавший несколько серьезных курсов по математике, включая логику, если в одном и том же небольшом документе он пишет то «лампа», то «лампочка», то с большой буквы, то с малой и то по-русски, а то по-английски (хорошо еще, что не по-китайски)?

― Насколько, по вашему мнению, логично мыслит человек, который на шестнадцати страницах автореферата диссертации по программированию умудряется оформить списки практически всеми возможными способами: дефис и следом малая буква, точка и малая буква, цифра без точки и большая буква, цифра с точкой и малая буква (не правда ли, здорово: в русском языке после точки с малой буквы!) и т. д., уже не говоря о том, что каждый элемент списка может заканчиваться опять же как угодно ― точкой с запятой, точкой, запятой или вообще ничем?

Классик смутился и сказал, что его слова не надо понимать буквально.

Мне кажется, программирование учило логике только при его становлении, когда считали, что «программист ― это математик, умеющий программировать» (Кронрод А. С. «Беседы о программировании». М.: УРСС, 2001), а машина была доступна с помощью перфокарт всего несколько раз в неделю.

Необходимо отметить, что петербургскую часть визита Вирта и Гуткнехта нам тогда сильно помог организовать Андрей Владимирович Иванов, который работал в петербургском филиале корпорации Borland, для которой «Паскаль» Вирта тогда был их всем.

Никлаус Вирт в Университете ИТМО. Источник: is.ifmo.ru
Никлаус Вирт в Университете ИТМО. Источник: is.ifmo.ru

Кстати, тогда мы познакомились с руководителями проекта «Информатика-21», с которыми мы общались впоследствии. 12 декабря 2020 г. я выступил на онлайн-конференции «III отраслевая конференция «Оберон-технологии, образование и проблемы качества в цифровой индустрии«» с докладом «От успехов на олимпиадах по программированию к успехам в науке».

В докладе я коснулся и автоматного программирования. При обсуждении доклада Валерий Викторович Лаптев из Астраханского государственного технического университета сформулировал утверждение: «Автоматное программирование ― это программирование для непрограммистов».

С этим утверждением не согласился участник той же конференции ― главный эксперт АО «Русатом ― Автоматизированные системы управления» (РАСУ) Дмитрий Викторович Дагаев: «Можно точно сказать: автоматное программирование ― это программирование, объяснимое и для специалистов-непрограммистов. И, в отличие от других подходов, визуализируемое и масштабируемое». Меня такое несогласие вполне устроило!

После этого Дагаев написал статью о своем взгляде на автоматное программирование: «Исполняющая машина автоматных программ».

В ходе своего визита в Россию Вирт, в частности, говорил: «Насильственное превращение университетов в ремесленные училища ― печальные реалии современного мира. Такой стиль университетской жизни нередко противоречит внутренним убеждениям индивидуума, но он навязывается давлением извне в стремлении превратить храмы учености в хорошо разрекламированные источники доходов. Посмотрим правде в глаза: разве учреждения образования в большинстве своем не оказались заложниками горстки компаний, чья профессиональная цель состоит в повышении доходов ― идет ли речь о производителях оборудования, программного обеспечения или об издательствах».

Все это заставляет задуматься о том, что происходит в области формирования ИТ-элиты XXI века. Говоря о том, что университеты должны быть источником знаний, профессор, в первую очередь, имел в виду не распространение известных знаний, как на курсах повышения квалификации, а их генерацию.

После знакомства с Виртом мы стали дружить с Бертраном Мейером, который заменил Вирта на кафедре в ETH (Цюрих) после ухода последнего на пенсию. В конце 2009 г. мы с Федей Царевым были на стажировке в ETH. Этот университет ― один из лучших в мире: в нем учился и/или работал 21 Нобелевский лауреат. Однако успехов в олимпиадном программировании у них не было.

Бертрана Мейера награждают званием  «Почетный доктор Университета ИТМО». Источник: is.ifmo.ru
Бертрана Мейера награждают званием «Почетный доктор Университета ИТМО». Источник: is.ifmo.ru

Поэтому мы стали пытаться найти ответственных за тренировки студентов этого университета, и когда нам сказали, что женщина-профессор в командировке, то Федя сник, а я ― нет. В результате мы вышли на профессора Юрая Хромковича и договорились о проведении нашими ребятами тренировок швейцарских школьников.

Кроме того, не исключался приезд за счет принимающей стороны еще и нескольких наших школьников и студентов. При этом, однако, Юрай сказал, что в ближайшее время проведение тренировок невозможно, так как спонсорские деньги уже распределены. Но, как и следовало ожидать, невозможное оказалось возможным, и уже в феврале 2011 г. в Давос за счет принимающей стороны в качестве тренеров швейцарских школьников были приглашены Федор Царев и Максим Буздалов.

После того, как мы договорились с Хромковичем, то сообщили об этом Юргу Гуткнехту, который в то время был деканом факультета информатики. Как отмечено выше, я виделся с ним в Университете ИТМО, когда он в 2005 г. был у нас с Никлаусом Виртом. Юрг ответил, что он принял решение поручить Хромковичу проведение тренировок не только швейцарских школьников, но и студентов ETH.

У Юрая в 2010 г. в России вышла книга «Теоретическая информатика», в которой он почему-то переведен как Громкович.

Отмечу, что в ETH мне, при моем знании английского, сильно везло: Юрай не говорит по-русски, но все понимает. Практически то же самое можно сказать о Вирте, а Бертран Мейер ― вообще магистр русского языка.

В марте 2010 г. наши в Цюрихе тренировали команды ETH, а с 05.06 по 12.06 Федор и Максим там провели новые сборы этих команд. Еще одни сборы, с 18.11 по 22.11, провели Андрей Станкевич и Федор Царев. При этом хочу отметить, что есть страны, в которых опоздание в обращении к спонсорам хоть на день закрывает окно возможностей на ближайшее время. Так было у нас, например, при общении с одним из японских вузов, но, к счастью, это не относилось к ETH и его спонсорам.

Андрей Станкевич. Источник: is.ifmo.ru
Андрей Станкевич. Источник: is.ifmo.ru

Несколько тренировок привели к тому, что команда ETH впервые в своей истории заняла первое место в соответствующем полуфинале и получила единственную путевку от этого региона на финал чемпионата мира по программированию 2011 г.. Команду Университета ИТМО на этих соревнованиях «вывел» Андрей Станкевич, а команду ETH Федор Царев, причем из-за особенностей названий вузов на английском языке эти команды в зале, где проходил чемпионат мира, располагались рядом. Команда ETH для первого раза выступила весьма удачно, оказавшись в середине таблицы результатов, и выиграла приз за то, что первой в финале решила одну из задач! Можно сказать, что благодаря нам студенты ETH вышли в финал чемпионата мира, и потом много лет из него не выходили. О первом успехе ETH в этом направлении писала швейцарская пресса.

Деятельность по тренировкам зарубежных команд в начале казалась нашему руководству пустой тратой времени. Я же, как мог, настаивал, чтобы ребята продолжали выполнять эту работу, так как понимал, что, во-первых, это позволяет университету завоевывать международный авторитет, а, во-вторых, это не только приносило нашим «тренерам» какие-то деньги, но и повышало их самооценку, так как этот весьма странный труд оказался нужен людям, причем в одном из ведущих вузов мира.

Со временем выяснилось, что я был прав ― когда мы вошли в Программу 5−100, это стало полезным не только для нас, но и для кафедры, а также университета в целом!

22.11.2010 г. я и Федор Царев были в ETH на конференции, посвященной шестидесятилетию Бертрана Мейера, который к тому времени по совместительству работал в нашем университете. На фотографиях, размещенных здесь, изображены некоторые из участников конференции: Никлаус Вирт, Эрих Гамма, Джозеф Сифакис, Давид Парнас, Юрий Гуревич, Андрей Терехов, Надя Поликарпова, Федя Царев и другие участники конференции.

В ходе этой поездки я снова встречался с Виртом, а еще познакомился с Эрихом Гаммой.

После шестой победы команд Университета ИТМО под руководством Андрея Станкевича на чемпионатах мира по программированию ACM ICPC руководство Университета ИТМО пошло на нетривиальный шаг: Андрей Станкевич в возрасте 34 лет был выдвинут на присвоение ему Ученым советом звания «Почетный доктор Университета ИТМО». Это выдвижение было поддержано Советом, который своим решением от 26.05.2015 г. присвоил Андрею это звание. Из-за скромности Андрея торжественная встреча с ним так и не состоялась.

Тем самым он оказался приобщенным к великим IT-специалистам, которым до него в Университете ИТМО было присвоено указанное почетное звание.

Как отмечено выше, первым был создатель языка «Паскаль» и ряда других языков программирования Никлаус Вирт (2005 г.). Потом это почетное звание получили: создатель языка «Эйфель» Бертран Мейер (2006 г.), выдающийся ученый и педагог в области информатики Джон Хопкрофт (2009 г.), один из основоположников Интернета Роберт Кан (2012 г.), выдающийся ученый в области информатики сэр Тони Хоар (2013 г.) и создатель языка С++ Бьерн Страуструп (2013 г.)

Приведу телеграмму от Страуструпа, полученную мною: «Professor Shalyto! Thank you for your spirited speech at my honoring (I had a few bits translated in real time) and the delicious Georgian dinner. I too hope that we will find opportunities to meet again in the future. Bjarne Stroustrup».

26 июня 2015 г. в когорту почетных докторов Университета ИТМО после Андрея Станкевича вошел Рудольф Калман, в частности, создавший фильтр, которому присвоено его имя.

Рудольф Калман и Анатолий Шалыто в Университете ИТМО. Источник: is.ifmo.ru
Рудольф Калман и Анатолий Шалыто в Университете ИТМО. Источник: is.ifmo.ru

Отметим, что четверо из наших почетных докторов ― лауреаты премии Тьюринга, а двое ― премии Киото. Презентация, посвященная первым шести почетным докторам, приведена здесь. Посмотрите, какая она классная!

Все было бы хорошо, по пару лет назад на первой лекции третьего курса, на которой было 70−80 олимпиадников, я выяснил, что ни один из них не знает, кто такой Вирт. Это меня очень сильно удивило, учитывая, в частности, то, что он является почетным доктором нашего университета. Я, конечно, понимаю, что это было давно, когда эти ребята «ходили пешком под стол», но все-таки… Андрей Станкевич это прокомментровал так: «Нет на олимпиадах „Паскаля“ ― нет в головах Вирта».

После этого я попытался инициировать чтение на наших специальностях в Университете ИТМО курса лекций «История вычислительной техники, программирования и искусственного интеллекта» (или отдельных курсов по истории этих вопросов) для повышения культурного уровня студентов, тем более, что на матмехах читается курс «История математики», а медицинских вузах ― «История медицины». Этот вопрос я поднимал и на Ученом совете применительно ко всем специальностям, по которым университет выпускает специалистов. Ответ состоял в том, что руководителям образовательных программ никто не мешает это делать…

Однако, слава богу, не все и не везде относятся так к Вирту и к тому, что он сделал. Кроме «Паскаля», он, в частности, создал и другие языки (системы) программирования: «Модула», «Модула-2», «Оберон», «Оберон-2», Lola, которые, в отличие от мировой тенденции, были направлены на упрощение языков и их компиляторов, а не на их усложнение. Интересно, что именно в те дни я получил предложение войти в состав постоянного программного комитета II отраслевой конференцию «Оберон-технологии, образование и проблема качества в цифровой индустрии». Она является продолжением Оберон-дней, проводимых с 2014 г. инициативной группой разработчиков Института ядерных исследований РАН при содействии международного общественного научно-образовательного проекта «Информатика‑21», о котором говорилось выше.

В заключение отмечу, что в какой-то мере благодаря Вирту у нас и по сей день функционирует «Всемирная школа программирования чемпионов мира из Университета ИТМО».

Профессор факультета информационных технологий и программирования