`

СПЕЦІАЛЬНІ
ПАРТНЕРИ
ПРОЕКТУ

Чи використовує ваша компанія ChatGPT в роботі?

BEST CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Никлаус Вирт в Москве: былое и думы

+11
голос

В конце марта 1999 г. 65-летний профессор Никлаус Вирт вышел из своего кабинета в здании отделения компьютерных наук Федерального цюрихского технологического университета (ETH-Zurich) пенсионером. Прошло еще шесть лет, и профессор-пенсионер Вирт прервал занятия наукой, семьей и любимым хобби – авиамоделированием для того, чтобы совершить свое второе продолжительное путешествие за уже давно не существующий железный занавес.

Никлаус Вирт в Москве былое и думы
Никлаус Вирт в Москве былое и думы
21 сентября 2005 года в Москве, в Политехническом музее, выступил с лекцией профессор Никлаус Вирт, лауреат премии Тьюринга, почетный доктор восьми университетов. Из текста о награждении премией Тьюринга: «За создание последовательности инновационных компьютерных языков EULER, ALGOL-W, MODULA и PASCAL. PASCAL стал событием в педагогике и основой для последующих языков, систем и архитектурных исследований»

К моему сожалению, и преамбула к статье, и ее название получились невеселыми. А что поделать? Ведь знаменитый автор великолепного учебника «Программы = Алгоритмы + Структуры данных», блестящий преподаватель дисциплины программирования Никлаус Вирт и в самом деле – символ уходящей эпохи. Эпохи первооткрытий и первооткрывателей. Эпохи самодельных компьютеров, самописанных языков программирования и самоопределенных стандартов. Эпохи, рыцари которой не столько не боялись трудностей, сколько стремились их не создавать. Эпохи временного перемирия с ветряными мельницами сложности и надежности, когда пресловутого «пользователя-ламера» без университетского образования принято было «без шума и пыли» укладывать на заклание на алтарь этого самого перемирия.

Впрочем, грусть – не повод для сумбура, и всему свое время. И хотя печатный журнал не блог, хотя в нем следует соблюдать многие правила (и правильные правила, да простится мне сложная тавтология), обстоятельства, вызвавшие задержку написания и публикации этой статьи, позволили ей избежать судьбы других многочисленных материалов, вышедших «по горячим следам». Так что если вы хотите чего-нибудь «свежеотштампованного», то воспользуйтесь простым рецептом: наберите в строке поиска Google «вирт легенда лекция» и ознакомьтесь с найденным изобилием. Каюсь, в первом варианте этой статьи мне тоже не удалось избежать искушения шлепнуть по бумаге любимым журналистским штампом – его название начиналось именно со слова «легенда». Но по дальнейшему рассуждению оказалось, что до тех пор, пока будущие программисты ищут в библиотеках затрепанные, рассыпающиеся по страницам издания «Программы = Алгоритмы + Структуры данных», Никлауса Вирта не стоит списывать в легенды. Никлаус Вирт – Учитель. Именно так, Учитель с большой буквы. Учитель, не увлекавшийся «обнаучиванием» решений простых задач, но и не опускавшийся до опасных игр с учениками в «смотрите – как все просто».

Не удивляйтесь «странностям» этой статьи – она не совсем о лекции и пресс-конференции Вирта в Политехническом музее Москвы и не совсем о самом Никлаусе Вирте, и уж вовсе не о цепочке языков программирования Pascal – Modula – Modula 2 – Oberon – Oberon 2 – Active Oberon – Zonnon. О чем же она? Прочтите и решите сами...

Портрет

Шутка над ним, хоть и недобрая, уже стала классикой и занесена в энциклопедии. При произношении его имени с американским акцентом получается что-то вроде Nickles Worth (словосочетание, исключительно похожее на «Врубель... дешевая картина» из анекдота застойных времен). Мол, именно так, в двадцать пять центов, индустрия оценила созданное им наследие. Он и сам подчеркивает при любой возможности свою отстраненность от коммерческого ПО. Даже на вопросы о его причастности к знаменитым воплощениям языка Pascal (за создание которого ACM внесла его в список великих программистов мира) фирмой Borland Никлаус Вирт отвечает скромно: «Никак не причастен».

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

Журналисты любят упомянуть о том, что никто из его детей и внуков (а у него трое детей) не продолжил его дело и даже не выбрал техническое образование. Правда, при этом журналисты почему-то забывают упомянуть о красивой, программистской, цифре 25 – как раз столько, 32 в десятичной системе, докторов наук подготовил за свою карьеру профессор Вирт. Практически все доктора – его воспитанники, уже сами профессора, благодаря многим из них отточены, усовершенствованы и реализованы в массово доступной программной продукции замечательные подсистемы (например, именно подготовленный Виртом высококлассный системный аналитик и программист Элайза Коэн трудился в Microsoft над подсистемой TrueType).

Многие любят не соглашаться с недовольством Вирта по поводу существующей системы подготовки программистов. Многие утверждают открыто, но с уважением, что «времена дедушки прошли». Вирт же говорит о необходимости разделения инструментов, посредством которых будущих программистов обучают фундаментальным принципам и концепциям их профессии, и инструментов, с помощью которых программисты будут зарабатывать себе на жизнь. Забавно, что список согласных с Виртом можно возглавить именем... Билла Гейтса. Именно он пообещал взять на работу в Microsoft всех, изучивших канонические, оторванные от практики тома «Искусства программирования» Дональда Кнута.

Мнения

Среди многих вопросов, заданных Никлаусу Вирту, два оказались весьма близкими, почти родственными. Чуть дальше я поясню, почему патенты на программное обеспечение и визуальный язык моделирования систем UML названы «родственными». Никлаус Вирт на оба вопроса дал весьма лаконичные и четкие ответы. «Разработчик программ должен иметь возможность защитить свою интеллектуальную собственность. Конечно, патентная система, как любая социальная система, может быть несовершенной. Но это не означает, что от нее следует отказаться». Такое мнение коммерчески несостоятельного профессора о программных патентах наверняка не понравится тем, кто мнил себе Никлауса Вирта этаким Че Геварой от программирования. «Я не считаю UML чем-то серьезным. Он пригоден только для малых задач». Двумя такими краткими ответами Вирт «умудряется» не понравиться сразу очень многим. Естественно, лауреат престижнейших наград, о которых мечтает любой ученый и специалист в области вычислительной техники, почетный профессор многих уважаемых во всем мире университетов, Вирт совершенно не обязан нравиться очень многим. Поэтому ни в коем случае не считайте все дальнейшие пояснения методическими материалами по литературе, направленными на «раскрытие образа профессора Никлауса Вирта». Давайте просто прислушаемся к мнению умного человека и попробуем подумать самостоятельно.

Никлаус Вирт в Москве былое и думы
Раздача автографов показала, что Вирт действительно star. Правда, книг профессора на подпись практически не давали – сказывается дефицит «немодной» технической литературы.

Существует хорошо известный факт эквивалентности программ и аппаратных средств. Правило программно-аппаратного дуализма гласит – любую программу можно реализовать цифровыми аппаратными средствами, любые цифровые аппаратные средства можно заменить исполняющейся программой. Для этого правила существует и формальное доказательство (можете не верить мне на слово и отыскать его самостоятельно), и множество практических подтверждений. Разнообразные программные симуляторы микропроцессоров, используемые как в специализированных кросс-платформенных средствах разработки, так и в известных пользовательских продуктах, позволяющих исполнять, например, на компьютерах Apple бинарные программы для машин с совершенно чуждой архитектурой x86, упрятанные в чипы видеокарт и криптографических акселераторов аппаратные реализации графических и шифровальных алгоритмов, – все это реально существующие доказательства программно-аппаратного дуализма. Ну а раз программы и аппаратные средства эквивалентны, то чем принципиально различаются их производители? Логика подсказывает, что принципиально – ничем. Ну а если, предположим, вы производите товар A, а некий абстрактный Иванов-Петров-Сидоров выпускает эквивалентный товар B, то как вы считаете – поражение вас в правах на ваш товар законно? Это я к тому, что лишение производителя программного обеспечения принципиального права защищать свою собственность с помощью патентования непременно должно сопровождаться лишением таких же прав производителя эквивалентных продуктов – аппаратных средств. Иначе получается откровенная дискриминация, ведь оба они фактически эквивалентны ввиду доказанной эквивалентности их продукции. Другое дело, что механизмы патентного права в области программного обеспечения могут быть несовершенными – это всего лишь означает, что надо их совершенствовать, а не ликвидировать.

Никлаус Вирт в Москве былое и думы
  1. Вначале сотворил Вирт EULER и ALGOL-W.

  2. EULER же был интерпретируемым и формально описан, и дух ALGOL 60 был в нем.

  3. И сказал Вирт: да будет Pascal. И стал Pascal.

  4. И увидел Вирт, что Pascal хорош, и отделил Вирт Pascal от ALGOL.

  5. И сказал Вирт: да будут модули, и да отделяют они Modula от Pascal. И стало так.

  6. И сказал Вирт: да соберутся данные и методы в одно место, и да явятся объекты. И стало так.

  7. И назвал Вирт язык с объектами Oberon. И увидел Вирт, что это хорошо.

А теперь вернемся к UML. В эквивалентной программным системам аппаратной области визуальные языки проектирования ой какая не новость. За одним символьным обозначением на принципиальной схеме электронного устройства может прятаться свыше тысячи страниц спецификаций конкретной микросхемы. Знание визуального языка принципиальных схем, языков временных диаграмм и спецификаций обязательны для любого специалиста в области электроники. И все-таки с ростом масштабов проектируемых аппаратных систем от принципиальных схем специалисты принципиально отказались. На смену визуальным языкам пришли языки описания аппаратных средств (HDL, Hardware Description Languages) сверхвысокого уровня. Совершенно невизуальные и настолько похожие на обычные языки программирования, что в некоторых случаях по листингам трудно сказать, что это – обычный C++ или HDL. Но ведь цифровые аппаратные средства и программы эквивалентны, следовательно, визуальные языки их описания и моделирования просто должны страдать одинаковыми «болячками». В первую очередь – снижением эффективности при росте масштабов проектируемой системы. Кто видел кальки размером 3×4 метра с цифровыми схемами, тот знает, о чем идет речь.

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

Или это так устроены современные «компьютерщики», или это временное поветрие, но, похоже, всех их волнуют ответы на два фундаментальных вопроса современности. Первый задается девушкам (ну конечно, «Любите ли вы секс?»), второй – всем, непохожим на девушек («Любите ли вы Open Source?»). А раз Никлаус Вирт и его коллега Юрг Гуткнехт на девушек никак не похожи, не восстановить достаточно подробные их ответы на вопрос «Как вы относитесь к идее открытых исходных текстов?», было бы настоящим преступлением перед читателем. Дело в том, что во время общения со слушателями после публичной лекции в Политехническом музее этот вопрос был задан в столь невнятной (я бы сказал – дикой) форме, что даже тем, для кого русский язык – родной, было непросто понять его суть. В результате, во многих статьях, написанных посетителями лекции «по горячим следам», вместо интеллигентного, толерантного и одновременно сильного в суждениях Никлауса Вирта можно увидеть какого-то забавного Че ГеВирта. К счастью, в более узком кругу, на пресс-конференции, появилась возможность узнать мнение об Open Source авторов книги «Проект Oberon», содержащей практически все (но не полностью все) исходные тексты ОС Oberon System. «Мы ратуем за хорошо документированную, четкую, логичную декомпозицию системы, представленную множеством тщательно сформулированных и детально описанных непротиворечивых интерфейсов. А уж открыты ли исходные тексты реализаций или нет – не важно. В некоторых случаях закрытые реализации даже намного лучше». Это, естественно, не дословный перевод ответов Вирта и Гуткнехта, но бережно сохраненная в памяти суть этих ответов. К слову, «щекотливый» вопрос в нормальной форме был задан вовсе не революционером, а кем-то из представительства... Microsoft. И опять Никлаус Вирт как-будто старается не понравиться многим. И опять, прежде чем не согласиться со стареньким профессором, осмотритесь внимательно по сторонам. Самой распространенной операционной системой в мире является вовсе не основанная на модели «черных ящиков» (компоненты со специфицированными интерфейсами и закрытыми исходными текстами, которые нравятся Вирту и Гуткнехту) ОС Windows, и даже вовсе не базирующиеся на принципах открытых исходных текстов UNIX-подобные ОС. Самая распространенная в мире ОС вообще существует в виде... PDF-файла, который любой желающий может загрузить с сайта японской исследовательской лаборатории TRON. И еще в тысячах реализаций подробных спецификаций интерфейсов, содержащихся в этом файле. А для кого новостью является факт, что сотни тысяч прикладных программ, грамотно написанных для API Win32, без перекомпиляции прекрасно работают под управлением ОС Windows XP, которой на момент создания этих программ принципиально не существовало? Так что модель открытых спецификаций интерфейсов на самом деле давным-давно победила, только говорить об этом неинтересно в силу очевидности победы.

Забавные символы

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

Вообще-то, Никлаус Вирт и Юрг Гуткнехт приехали в Москву не с пустыми руками, а с подарком. Они привезли для экспозиции Политехнического музея персональную рабочую станцию Lilith, принадлежавшую самому Вирту. Тот самый самодельный «от и до» компьютер, дитя уходящей прекрасной эпохи. Компьютер, спроектированный практически «с нуля» и доведенный до уровня концептуально целостной рабочей станции (несоизмеримо куда более логичной во всем по сравнению, например, с рабочими станциями под управлением ОС UNIX). Компьютер, уникальный в модели «одна машина – один язык программирования». Компьютер, доказавший превосходные свойства языка Modula 2, до сих пор применяемого при разработке высококлассного ПО вместо сверхсложного языка Ada (например, в Новосибирске на Modula 2 разрабатывают программное обеспечение бортовых вычислителей космических аппаратов).

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

И уж совершенно анекдотическим был заданный Вирту вопрос о «засилье» английского языка в... языках программирования. «Не пора ли заменить все эти BEGIN, END, WHILE, UNTIL и прочие англицизмы на слова национальных языков?» – профессор Никлаус Вирт был поставлен и перед таким вопросом. «Вы понимаете, – ответил слегка удивленный профессор (я не выдумываю, вопрос действительно был для Вирта ошарашивающим, это было отлично заметно), – все эти слова в языках программирования уже давно не слова, а символы. Символы с устоявшейся семантикой. Так зачем менять символы?».

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

Ready, set, buy! Посібник для початківців - як придбати Copilot для Microsoft 365

+11
голос

Напечатать Отправить другу

Читайте также

 

Ukraine

 

  •  Home  •  Ринок  •  IТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Мережі  •  Безпека  •  Наука  •  IoT