Впечатления от встречи с
Дональдом Кнутом.
Мне удалось побеседовать с ним после встречи со студентами в
Американском Университете в Армении.
Первый вопрос который я задал был о компиляторах. Вирт писал в статье о
хороших и плохих идеях, что идея со стеком при генерации кода сейчас не
так актуальна потому что эффективней использовать массивы регистров
которые сейчас есть в современных процессорах.
Я спросил, есть ли еще устаревшие идеи в этой области ? Видимо, я
выразился
как-то непонятно, и Кнут вопрос не очень понял. Он стал говорить
что возможно Вирт имел в виду, что идея стека не совсем хороша, и он
согласен, но стек не может не использоваться потому что у нас есть
субрутины из которых нужно выйти, и вернуть что-то из стека :)
Помню вопрос о том, ожидает ли он изменений в теории алгоритмов в связи
с переходом на другого типа машины, нейронные или квантовые
Сначала Кнут описал вкратце нейронные и квантовые компьютеры. Сказал
что касается нейронных компьютеров никто толком не представляет еще как
их спроектировать. Сказал что все мы люди и думаем по разному, например
он думает иначе, чем его жена. И что программы вообще очень
индивидуальны в зависимости от тех, кто их пишет, и насколько я понял,
эти индивидуальные проявления всегда будут. Вообще я плохо помню ответ
на вопрос, насколько я понял вообщем, грандиозных изменений он не
ожидает :)
Кто-то задал вопрос о современных языках программирования.
Он вновь поговорил о том, что если бы в мире был всего один язык то все
мы думали бы одинаково. Но так как мы индивидуальности которые мыслят
иначе, то у нас есть разные языки программирования :)
Он сказал, не зацикливайтесь на языках. Распространенная ошибка думать,
что если вы хорошо знаете какой-то язык, то вы хороший программист.
Или если вы выучили еще один язык то вы еще лучше специалист. Потому
как не количеством языков которыми вы владеете определяется какой вы
ученый и гораздо лучше узнать новый алгоритм чем выучить новый язык :)
Еще он рассказал о истории с мылом. Его первая студенческая программа
называлась soap. Последние две буквы аббревиатуры означали
assembly program. Потом он куда-то поехал, показывал свою другую
програму, и оказалось, что в этой стране так называется мыло :) Затем
он поехал в Югославию и презентовал свой новый язык MMixal).
Оказалось на их языке это тоже означало 'мыло' :) Так, говорит, моя
карьера связана с купанием :)
Кто-то задал вопрос о том, на что он обращает внимание когда проверяет
работы своих студентов. Кнут ответил, что у него есть идея проверять
лишь случайную часть работ и выставлять оценку судя по ней. Так он
пришел к попытке изучения библии случайными частями. И так он обнаружил
что самые важные части в библии написаны у чисел 13:6 :)
Еще он рассказал о своих исследованиях библии и показал несколько ссылок
которые стоит прочитать на его сайте :)
Даже попытался скачать один документ ps, который был заархивирован gz :)
Виндовс предложил открыть документ незарегистрированным winzip-ом и
Кнут сообразил что на этой машине вряд ли будет postscript viewer, и
прекратил попытки :)
Еще помню его высказывание о том, что очень важно при уметь хорошо
писать
Что студентам нужно не только учиться а также учиться писать, и
доводить до других то, что они знают или выучили. Он сказал что нужно
ценить каждую возможность попрактиковаться в написании, и что когда он
читает работы сделанные в Соединенном Королевстве, то они всегда
отлично написаны, а в штатах пишут не так хорошо.
На вопрос, в какой области оп его мнению больше применяется математика,
он ответил что в криптографии :)
Еще как-то раз он запутался в ИЕ и кто-то, видимо ассистент пришел ему
на помощь, когда он сказал что не очень умеет пользоваться эксплорером.
Кнут также рассказал про свой проект компьютера MMIX основанном на risc
архитектуре. Показал ссылки где можно прочитать подробнее :)
Мне не дали задать остальные вопросы прилюдно, я стоял у микрофона,
когда
ассистент закрыл церемонию. Однако после снимков с Кнутом я подошел к
нему и извинившись попросил ответить вкратце на еще нескольцко вопросов
Первый, вопросом был : согласен ли он что есть брешь между наукой и
индустрией, и что можно с этим сделать? В этот момент некоторые люди
отошли приговаривая, 'ответишь тут вкратце, как же' :)
Кнут ответил, что несомнено есть, но наверное так и должно было быть, и
что в индустрии тоже бывают отличные научные идеи, и иногда даже науке
нужно поучиться у индустрии.
Еще я спросил, считает ли он современное программное обеспечение жирным?
Он ответил, что несомненно, оно очень жирное, неоправданно жирное.
Сказал что он использует лишь небольшой набор нужных ему инструментов,
причем минималистичных.
Я спросил, что он думает о миркоядрах. Он ответил что не знает.
Он сказал, что в области операционных систем еще много места для
новшеств
И добавил,что надеется увидеть ОС для его компьютера MMIX :)
Еще я спросил что он думает о open source? Он сказал highly
reliable, качественный софт, я ему доверяю :)
Сказал что очень хорошо что есть такое течение.
На мой вопрос какая его настольная ОС он ответил 'это Линукс'. 'And
also I am using macintosh when drawing' :)
Поблагодарив, я отошел, потому что стеснялся надоедать профессору Кнуту
:) Однако заметив что он беседует с другими студентами,
я все же вернулся и задал ему еще один вопрос. 'Вы были редактором
журнала structured programming ?' Он с трудом вспомнил, а потом
согласился, сказал, что теперь этот журнал называется иначе, и
подтвердил. Тогда я склазал : ' в Вашем журнале были опубликованы
работы Моссенбока и Вирта : oberon report. Что вы вообще думаете о
языке оберон?'
Кнут ответил, что он всегда рекомендует студентам посмотреть этот язык,
что это образец ясности и простоты, и он считает его выдающейся
разработкой. Сказал, что не может писать при отсутствии отладчика, а я
знаю, что под линукс нет нормального компилятора оберона с
отладчиком. Он добавил, что язык, который он в основном
использует сейчас (Си и плюсы) ужасен. Он не соответствует нормам
и научным положениям в CS
но он его все же использует так как у него есть хороший отладчик и
хорошие среды разработки. Рассказал как неправильно ведет себя
компилятор языка, который он использует при компиляции и даже иногда
зацикливается. А также про то, что код не читабельный и трудно понять
что написал ты, не говоря о том, что написали другие :)
Тогда я добавил, что также не нашел подходящего оберон компилятора с
отладчиком, и уже несколько месяцев пытаюсь написать компилятор
оберона
сам, мультиплатформенный, и открытый, с семью ударными пунктами, одним
из которых является отладчик.
Кнут ответил что это отличная идея, правда очень сложная :) Он
сказал что Вирт должен знать об этом, сказал что видел его недавно, и
что хоть он не преподает он все еще вертится в научных кругах и занят
интересными разработками :)
У меня конечно сильно поднялось настроение когда я выходил :)