Эксперт мирового масштаба

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

Автор широко известного языка программирования Pascal, на котором выросло не одно поколение российских программистов, швейцарец Никлаус Вирт недавно побывал в новосибирском Академгородке по приглашению Института систем информатики им. А.П. Ершова СО РАН, в рамках поездки по Уралу и Сибири, организованной общественным проектом "Информатика-21". В интервью "Эксперту-Сибирь" гуру информационных технологий рассказал о проблемах современного компьютерного сообщества. По его мнению, в ИТ-индустрии давно растет "раковая опухоль избыточной сложности". В сложившейся ситуации гораздо выгоднее продолжать добавлять к своим продуктам "свистульки с колокольчиками", на которые охотно "клюет" наивный пользователь, нежели стремиться к продуманному минималистичному дизайну, являющемуся фундаментальным залогом качества и надежности. Профессор Вирт давно является ярым противником первой схемы, доказав в проекте Oberon (Н. Вирт и Ю. Гуткнехт, 1985-1992), насколько более эффективным может быть программирование, и насколько более надежными - программные системы по сравнению с тем, что принято в ИТ-индустрии. Основную вину за сложившуюся ситуацию он возлагает на систему образования, с безразличием принимающую то, что навязывает обществу ИТ-индустрия.

Никлаус Вирт родился 15 февраля 1934 года в небольшом городке Винтертур в предместье Цюриха. В 1954 году поступил на факультет электроники в знаменитый ETH (Eidgenoessische Technische Hochschule, Швейцарский федеральный технологический институт), где учились Альберт Эйнштейн (1896) и Джон фон Нейман (1923). Потом продолжил обучение в Лавальском университете Квебека (Канада), где в 1960 году получил степень магистра. Затем его пригласили в университет Калифорнии в Беркли (США), где под руководством профессора Гарри Хаски (сподвижника Алана Тьюринга по созданию компьютера ACE) в 1963 году защитил диссертацию. В 1967-м вернулся в университет Цюриха доцентом, спустя год получил звание профессора компьютерных наук и в дальнейшем создал выдающуюся школу программирования в стенах ETH. В 1984 году за разработку языка Паскаль удостоен премии им. А. Тьюринга. В компьютерном сообществе она приравнивается к Нобелевской. С 1990 года руководил Институтом компьютерных систем (Institute of Computer Systems) при ETH. 1 апреля 1999 года профессор Вирт ушел на пенсию по достижении 65-летнего возраста.

Никлаус Вирт - член ряда национальных академий, почетный доктор многих университетов мира, в том числе Санкт-Петербургского государственного университета информационных технологий, механики и оптики и Уральского государственного университета (Екатеринбург). Лауреат престижных премий и наград: ACM Turing Award (1984), ACM Award for Outstanding Contributions to Computer Science Education (1987, 1989), IEEE Computer Pioneer (1988), IBM Europe Science and Technology Prize (1989), Leonardo da Vinci Medal (1999), ACM Outstanding Research Award in Software Engineering (1999).

- Господин Вирт, когда и как вы начали заниматься информационными технологиями?

- Начал я как инженер-электронщик в Цюрихе в техническом университете. Посещал курс лекций по компьютерам, очень ранний, еще в 1956 году. Компьютеры были чем-то совершенно новым, их изучением занималась только горстка специалистов. В нашем университете построили компьютер и ввели соответствующий курс, посвященный конструкции и управлению этим устройством. Группа состояла всего из десяти студентов. Потом я уехал в Северную Америку, где подумывал стать инженером, но по стечению обстоятельств продолжил университетскую карьеру. Компьютеры по-прежнему интересовали меня, я очень любопытен. Но время, когда университеты сами строили компьютеры, уже прошло. Случайно наткнулся на группу специалистов, которые в каком-то подвале занимались программами, а именно строили компилятор. Это оказалось совсем новой темой. Ее я и выбрал для своей диссертации на получение ученой степени (PhD). Это был интеллектуальный вызов.

- Как вы относитесь к современным компьютерным системам? Считаете ли вы направление их развития правильным?

- Программные продукты стали одним из фактов человеческой жизни. С моей точки зрения, они заражены одной и той же болезнью - слишком сложны. Возьмите хотя бы текстовый редактор Microsoft Word, для примера. В нем так много средств, чтобы удовлетворить весь мир, хотя каждый индивидуум нуждается лишь в небольшом их подмножестве. Этот продукт невозможно описать четкой спецификацией - чтобы освоить его, приходится просто брать систему и "играть" с ней. Это плохой признак состояния дел, в котором мы находимся, ибо так много сделано в науке и так мало ее достижений используется сейчас.

- С чем это связано, по вашему мнению? Это проблема разработчиков, производящих некачественное программное обеспечение, или компаний, которые стараются заработать как можно больше денег? Может быть, дело в неправильном подходе к обучению специалистов?

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

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

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

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

- Интересно. А в какой момент вы почувствовали, что наука начала граничить с коммерческим интересом?

- Это началось тогда, когда большие компании стали массово производить компьютеры. IBM, Spеrry, Unisys... В Европе - немного позже. А с приходом персональных компьютеров вся ИТ-сцена испытала квантовый переход. Она изменилась не только в общем объеме, но и по существу. Это случилось приблизительно в 1980 году.

- Будучи человеком высокоинтеллектуальным, вы наверняка предполагали примерные темпы развития информационных систем и технологий. Насколько они оправдали себя?

- Компьютерные науки, или, как мы их называем в Европе, информатика, - это обширное поле. В теоретическом аспекте основные цели достигнуты. В технологиях с "железом" - тоже. Что касается практики программирования и создания систем программного обеспечения, то она, как и раньше, продолжает разочаровывать меня. Это область, которая характеризуется нарастающей сложностью. Компьютеры стали в тысячу раз мощнее, чем 30 лет назад, поэтому программистам приходится решать все более и более трудные задачи. Их искусство состоит в том, чтобы совладать с этой сложностью, справиться с ней и понять суть тех продуктов, которые создаются. Наша цель - разработать и развить методологию и дисциплину построения систем для создания как можно более простого и понятного для восприятия программного обеспечения. Вместе с тем есть опасность внесения дополнительной сложности посредством использования чрезмерно изощренных инструментов, в том числе и языков программирования. Задачи уже сами по себе непросты, поэтому мы должны сделать все возможное, чтобы не добавлять в них еще и искусственных трудностей.

- Новосибирский Академгородок считается одним из главных научных центров в России. Какова, по вашему мнению, его роль в мировой ИТ-индустрии?

- На самом деле я не могу объективно оценить эту роль. Ваш научный центр известен еще с давних времен, но до перестройки в СССР его ресурсы были недоступными для внешнего мира. Думаю, что как научный центр Академгородок имеет уникальный вес, и я вижу, что здесь и в России в целом многие западные компании размещают свои проекты, так как знают, что качество готового программного продукта окажется на высочайшем уровне.

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

- Прежде всего необходимо хорошее базовое образование, математическое мышление. Кроме того, я выделил бы знания в фундаментальных основополагающих науках, таких как физика. Еще специалист должен обладать способностью к логичному проектированию. Это инженерная дисциплина. А приобретаются соответствующие навыки постоянной тренировкой и накоплением опыта. Я сомневаюсь, что можно создать по-настоящему хороший проект после 4-5 лет обучения в университете. Разработчики - живые существа, и нужно дать им время, чтобы их способности развились. Если же говорить об университетском образовании, то очень важно, чтобы оно не было слишком узким. Специальные курсы вроде "программирования на С/С++" или "структуры данных" - это одно, а университетское образование, включая способность к критическому мышлению, - совсем другое. И, кстати, в этом общем образовании я ни в коем случае не стал бы пренебрегать естественными языками.

- Как вы думаете, какими будут компьютеры через пару десятков лет?

- Что касается темпов развития, то я не осмелился бы сделать прогноз и на 5 лет вперед. Но в общем можно с уверенностью говорить о том, что компьютеры станут вездесущими, они будут использоваться для самых мелких рутинных задач, станут помогать нам выполнять всевозможные обыденные дела. Они будут становиться все меньше и меньше, их будут носить внутри часов, одежды - это вполне возможно уже в ближайшее время. Но я думаю, что движущая сила - развитие технологий самих по себе. И настоящий вопрос состоит в том, действительно ли нам все это нужно. А на него я могу дать ответ с еще меньшей уверенностью.

Если бы вы задали мне этот вопрос 20 лет назад, я ничего не сказал бы об Интернете. Если бы вы спросили меня тогда же о коммуникациях - я бы не смог прогнозировать появление мобильных телефонов. Но сейчас обе эти вещи оказали огромное влияние на человечество, и без них невозможно представить современное существование индивидов. Они облегчают и помогают нам, но, с другой стороны, мы делаем себя зависимыми от еще одной технологической игрушки.

- Поговорим немного о вас. Что вы считаете самым большим достижением вашей жизни?

- На этот вопрос ответить очень легко. Это, безусловно, язык программирования Oberon. Это логическое завершение обширной линейки языков, начавшейся с Algol-W и получившей продолжение в языках Pascal и Modula-2. Весь мой опыт, накопленный за многие годы, вошел в это достижение. Oberon, в некотором смысле, не является совершенно новым языком, потому что за ним стоят принципы, заложенные еще в языки Pascal, Modula-2, и все, что мы знали до этого. Кроме того, он проще, чем предшественники, так что я не только читаю проповеди о важности простоты, но и практикую этот принцип.

Еще я по-настоящему горжусь разработанными мной компьютерами под названием Lilith и Ceres. Я получил импульс к этим проектам, после того как провел годовой отпуск в исследовательской лаборатории Xerox в Пало Альто и увидел миниатюрный по тем временам компьютер, который можно было поставить под стол. Такую "машину" тогда невозможно было купить, и в нашем институте ничего подобного не было. Поэтому пришлось сделать ее собственными усилиями. Я счастлив, что влияние этого проекта достигло Новосибирска, и здешние ученые получили вдохновение на создание компьютера "Кронос". Надо заметить, что именно в это время в мировом компьютерном сообществе произошел квантовый переход, о котором я говорил раньше.

- За время работы у вас случались моменты, когда хотелось все бросить?

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

Редакция благодарит координатора проекта "Информатика-21" Федора Ткачева за помощь в подготовке интервью.