Держаться корней (к 80-летию Никлауса Вирта)

Но, чтобы стоять,
я должен держаться корней.
Борис Гребенщиков


Юбилей Никлауса Вирта – очень значимая для меня дата. Вот уже три десятка лет считаю себя его учеником, начиная с 1982 г., когда впервые взял в руки сделанную на ксероксе копию его препринта о языке Модула-2. Примерно в то же время началась работа над нашим «Кроносом».

С профессором Виртом лично познакомился позже, в 1990 г., когда он приезжал к нам в Новосибирский Академгородок. В 1991 году провел, по приглашению Вирта, две недели в его ETH Zurich и заболел Обероном. Потом пошел своим путем, но путь этот был бы невозможен без того, что внёс в мою жизнь профессор Вирт.

Я счастливый человек. Мне невероятно повезло в самом начале пути: довелось оказаться на стыке трёх блестящих школ программирования.

Первая — школа академика Андрея Петровича Ершова (1931-1988), которую постигал, в основном, у его ближайшего соратника Игоря Васильевича Поттосина (1933-2001). Вторая — школа Никлауса Вирта. Сначала в Новосибирске, затем в Цюрихе. Была и третья, которую разглядел в себе совсем недавно. Это школа НФ ИТМиВТ (Новосибирский филиал Института точной механики и вычислительной техники).

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

Школа Ершова. Пожалуй, самое важное, что дала эта школа – чувство причастности к первоистокам, чувство причастности к Первопроходцам. Советская школа программирования шла своим путём и до беды с EC ЭВМ/IBM была вполне самостоятельной: в чём-то слабее, в чём-то сильнее европейских и американских школ. Чувство причастности к первоистокам давало силу и уверенность: раз наши учителя сделали оптимизирующий Альфа-транслятор на том железе, на котором они его сделали, то мы способны, по крайней мере, повторить их достижение, а потом пойти ещё дальше.

Школа Вирта дарила нам новые горизонты. Читая препринты Вирта, мы открывали мир и открывались миру. Что гораздо важнее, у Вирта мы учились простоте и искусству борьбы со сложностью. Простой пример. Первые компиляторы с языка Модула-2 были двухпроходными, того требовал язык. Так и наш первый кросс-компилятор, сделанный Дмитрием Кузнецовым (Leo) на Burroughs 6700 под руководством И.В.Поттосина, был двухпроходным. Потом была история “Кроноса”. Когда у нас заработал первый “Кронос”, мы в срочном порядке сделали компилятор с урезанной Модулы-2, чтобы можно было вести разработку на самом “Кроносе”. Мы называли этот язык и компилятор Модула-0. Компилятор был однопроходным, для чего пришлось внести изменение в язык. А потом пришла пора делать полный компилятор Модулы-2, и мы в соответствии с описанием языка начали делать его двухпроходным. Но тут пришло известие, что Вирт подкорректировал язык (добавил forward-описания процедур), и теперь можно делать однопроходный компилятор. В итоге мы упростили себе жизнь и ускорили разработку. Главное было в том, что язык программирования, который до того был «священной коровой», принесенной откуда-то свыше, стал всего лишь рабочим инструментом, который можно подточить и подправить. Мы получили урок: разрешение творчества и понимание важности и полезности упрощений.

Школа НФ ИТМиВТ. В НФ ИТМиВТ я делал свой университетский диплом. Темой его был компилятор с языка Edison для ЭВМ “Эльбрус” (спасибо Александру Гутману, который дал такую возможность). В дипломной работе соединились две школы: европейская школа программирования (язык Edison, разработанный Пер Бринч Хансеном) и советская школа, которая дала нам “Эльбрусы” и противоракетную оборону нашей страны. Во время работы над дипломом настольными книгами у меня были «Автокод Эльбрус», ксерокс книги Пер Бринч Хансена “On Pascal Compilers”, книга Дэвида Гриса «Конструирование компиляторов для цифровых вычислительных машин». И маленькая брошюрка — описание языка Edison.

Вот эту третью школу я раньше не видел. А она была очень важна для меня. С точки зрения технологии программирования это была, во многом, строгая академическая школа А.П. Ершова. Но дух там царил иной: реальная прикладная работа для решения реальных инженерных задач. Лично мне ближе настоящее осязаемое дело, хочется видеть не просто идеи и статьи, а инженерно воплощённый замысел. Мне очень важно, что мой компилятор с языка Модула-2 до сих пор используется для создания бортового программного обеспечения отечественных спутников. Я смотрю на небо и понимаю — там летает то, в чём есть частичка и моего труда. Это чувство причастности к чему-то большому и настоящему. А что может быть более настоящим, чем защита своей Родины?

Каждая школа дала своё, а вместе — ещё большее, так как школы не противоречили, а дополняли друг друга. Я не стал, да и не мог стать «фанатом» ни одной школы. От этих корней постепенно шёл к пониманию своего пути – принципиально иного программирования.

Читая новости о том, что сегодня происходит в Старом Свете, с горечью думаю: последними фундаментальными достижениями компьютерной Европы стало то, что дали нам Эдсгер Дейкстра, Тони Хоар и Никлаус Вирт.

Но не будем о грустном. Мы живём в России. И пусть «той России уж нет», но есть та, которая у нас есть, и та, которую мы можем построить.

Алексей Недоря

Рекомендуемые материалы
1. Kronos (история одного проекта): http://www.kronos.ru/
2. Проект Oberon2005 (Большое турне Вирта по России): http://oberon2005.oberoncore.ru
3. Виртуальный компьютерный музей Эдуарда Пройдакова.
Никлаус Вирт в Академгородке

Фото:
1. Алексей Недоря, Никлаус Вирт, И.В. Поттосин (на первом плане, слева направо), Новосибирск, 1996
Алексей Недоря, Никлаус Вирт, И.В. Поттосин

2. Алексей Недоря, Никлаус Вирт и Владимир Филиппов (слева направо) у рабочей станции «Кронос 2.6». Москва, Политехнический музей, 2005 г.
Алексей Недоря, Никлаус Вирт и Владимир Филиппов

3. Никлаус Вирт и Алексей Недоря, Ярославль, смотровая площадка колокольни, 2005 г.
Вирт, Поттосин, Недоря, 1996

Об авторе
Алексей Недоря – кандидат физико-математических наук (1994).
Родился 11 января 1962 г. (Чита). В 1979 г. поступил в Новосибирский государственный университет (НГУ). В 1982 г. стал одним из основателей Intruders Club – неформальной компьютерной группы студентов физического и механико-математического факультетов НГУ. В 1984 г. окончил НГУ (дипломная работа — компилятор с языка Edison Пер Бринч Хансена для многопроцессорного вычислительного комплекса»Эльбрус-1«). Весной 1984 г. участвовал в создании легендарной группы»Кронос«(первый советский 32-разрядный процессор), являлся основным разработчиком ОС Excelsior и нескольких компиляторов с языка Модула-2. С 1985 до 1988 гг. работал в ВНТК»Старт» (ответ СССР на японский амбициозный проект компьютеров пятого поколения). Далее до 1998 г. в Институте систем информатики им. А.П.Ершова Сибирского отделения РАН. В 1990 г. познакомился лично с Никлаусом Виртом; в 1991 г. был на стажировке у профессора Вирта в ETH Zurich (Швейцарский федеральный технологический институт, Цюрих). В 1991-1994 гг. работал над инструментальной многоцелевой системой XDS (Модула-2 и Оберон-2) и системами генерации программного кода для бортовых космических комплексов. C 1994 г. – глобальный ИТ-аутсорсинг и офшорное программирование. C 2001 г. — разработка нового инструментария программирования.
Поделиться публикацией
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама
Комментарии 39
  • +4
    О! Один из авторов знаменитого «Кроноса», на хабре!
    • +28
      Как классно, что на Хабре есть люди, которые учились у Вирта и ставят эпиграфы из БГ!
      • +1
        Ещё в тему:
        Я поднялся так высоко, потому что стоял на плечах гигантов
        Исаак Ньютон
      • +1
        Спасибо за интересный рассказ!
        • +8
          «Кронос» и ВНТК «Старт» — действительно малоизвестная страница нашей славной истории. Когда Советский Союз в 1980-е годы опережал Запад в своих перспективных разработках на уровне микропроцессорных архитектур, системного и инструментального программного обеспечения.

          Четыре студента из НГУ построили рабочую станцию на основе своего 32-разрядного процессора (у Вирта был 16-разрядный), создали отечественную ОС и мощный программный инструментарий, опережавший разработки швейцарского ETH Zurich и американских исследовательских центров.

          Примечательно, что в сентябре 2005 г. двое из той великолепной четвёрки — Алексей Недоря и Владимир Филиппов — подарили рабочую станцию Кронос 2.5 Политехническому музею в Москве. В экспозиции она находилась рядом со своим собратом — 16-разрядным ПК Lilith. Никлаус Вирт сделал России царский подарок — единственный музей мира имеет в своей коллекции личный компьютер великого маэстро.
          • +2
            C 2001 г. — разработка нового инструментария программирования

            Расскажете подробнее?
            • +3
              Расскажу. Понятно, что в общем, так как общедоступный сайт — это совсем не то место, где стоит рассказывать про технологические прорывы. Какую-то вводную статью выложу.

              Первые наметки, точнее направление движения, можно увидеть здесь: http://www.dgl.ru/articles/niklaus-virt-put-k-istine_4792.html
              • +1
                общедоступный сайт — это совсем не то место, где стоит рассказывать про технологические прорывы

                Почему??? Здесь как раз то место! Выкладывайте, пожалуйста.
                • +2
                  Вы никогда и ничего об этом не узнаете. Все, знакомые с Виртом и «причастные», считают себя высшей кастой. Читая «Алгоритмы и структуры данных» (на русском, перевод с английского под редакцией доктора физ-мат. наук, Ткачева Ф. В.), по самому тексту видно высокомерие этих людей. И попробуйте зарегистрироваться на форуме сайта (http://oberoncore.ru/), на котором большими буквами написано «Добро пожаловать». Посмеемся вместе.
                  • +1
                    Попробовал зарегистрироваться, все прошло успешно, администрация активировала мою учетку. Когда смеяться?
                    Все, знакомые с Виртом и «причастные», считают себя высшей кастой.

                    Автор этой статьи, при своем желании, мог бы себя таковым считать ;) Если бы я был лично знаком или общался с Виртом, тоже бы гордился сим фактом.
            • +2
              Держатся каких корней?

              Вот отличная статья про роль Ершова. Про Вирта с его Paskal умолчу, как Ягудин про Плющенко.

              malchish.org/index.php?option=com_content&task=view&id=400&Itemid=35
              • 0
                Как обычно: вопрос мотивации автора и достоверности. Желание опорочить академика А.П.Ершова, в общем, просматривается легко. Но фактология жидковата.

                Логика аргументации: отчет А.П.Ершова о командировке и некий звонок М.К.Сулиму. Всё остальное (и доклад Ксении Татарченко) — исключительно для антуража.

                Характерен и сам момент вброса этого материала: юбилей Вирта, юбилей проекта «Кронос», статья одного из участников того проекта…

                Контекст вопроса представлен в книге Б.Н.Малиновского «История вычислительной техники в лицах» (1995)
                lib.ru/MEMUARY/MALINOWSKIJ/3.htm#7
                • 0
                  «Характерен и сам момент вброса этого материала: юбилей Вирта, юбилей проекта «Кронос», статья одного из участников того проекта…»

                  Тут передернули, посмотрите на дату статьи и прочтите все статьи из серии. Автор Максон заслуживает доверия, читаю его давно и ляпов не находил. Хороший аналитический ум.

                  Остальное не знаю, может и вранье (хотя я знаком со несколькими людьми, которые мне примерно тоже говорили лет за 20 до этой статьи) или неправильное толкование фактов, но академики всегда политика и к сожалению не всегда НАСТОЯЩИЕ ученые и патриоты моей Родины.
                  • –2
                    Передергивания нет. Речь о вашем вбросе конкретно сюда.
                    • +3
                      В жизни всякое бывает. Вам удачи. Буду рад, честно, если Максон не прав и я вместе с ним.

                      Но я точно уверен, что серия ЕС ЭВМ это страшный вред моей стране, примерно такой же, когда идиот Горбачев принял за чистую монету «Звездные войны». Примерно также мы развели США с технологией стелс. Можно еще вспомнить подводные ракеты, лунную гонку и много чего, но тут тема не та.
                      • 0
                        ЕС ЭВМ — большой вред для нашей страны. Сомнений у меня в этом нет. Но причастность Ершова к этому судя по представленным «доказательствам» — домыслы. Нет убедительных фактов, не надо трогать такие имена.
                        • 0
                          Но я точно уверен, что серия ЕС ЭВМ это страшный вред моей стране, примерно такой же, когда идиот Горбачев принял за чистую монету «Звездные войны».

                          Да, это был лютый косяк. Имея на руках оригинальные разработки, копировать эту клоаку со всей периферией и, в особенности, со всем её ущербным матобеспечением было явным перебором!
                          • +1
                            Ну почему же клоаку? Система была хорошая (особенно ясно это понимаешь, глядя на x86), но бездумное копирование ни к чему хорошему никогда не приводит.
                            • 0
                              Угу. VM, в котоую можно было поставить новую версию VM, дабы оттестировать, перед тем как ставить на собственно железо.
                  • +1
                    Я обязательно буду говорить про Вирта (выше уже выложил ссылку на статью о Вирте), и про Ершова. Например, о том, что ершовская идея «лексикона программирования» была незаслуженно забыта, а сейчас самое время к ней вернуться, и переосмыслить на другом уровне.

                    Предполагаю, что мы встретим много сопротивления со стороны тех, кто ничего не хочет менять и кого устраивает хаос «либерального программирования» или «попсы». Думаю, что рано или поздно эру «попсы» (С++ и прочее) должна сменить эра «классического» программирования. На мой взгляд, в дело перехода к «классике», стоит вложить силы. От этого во многом зависит то, как будет жить наше отечество.
                    • 0
                      Не все имели счастье уродиться программистами. «Попса» в мейнстриме рынка инструментов программирования никуда не уйдет, потому что она позволяет за счет дешевизны вычислительных ресурсов приобщиться к программированию тех, кто в этом мало что понимает. Это очень востребованная ниша, хотим мы того или нет.
                      • +1
                        Безусловно, попса не уйдет. Вопрос для себя, в каком жанре ты сам «играешь»?

                        И еще вопрос — а если ты играешь «классику», то сделал ли ты что-то, чтобы те кто рядом, мог легко играть то, что им надо?
                        • 0
                          Я играю в классе встраиваемых систем (embedded), программирую на C и немного на асме, когда для некоторых критичных кусков кода требуется повышенное быстродействие. "… сделал ли ты что-то, чтобы те кто рядом, мог легко играть то, что им надо?" — веду сайт в виде блога, где описываю решения возможных проблем в программировании. Отвечаю на все вопросы пользователей. Но мои возможности весьма ограничены. Для современных платформ программировать на классике уже практически невозможно, даже если очень захотеть. За примерами далеко ходить не надо — Андроид. Вы обязаны программировать на JAVA, и следовать определенным правилам, шаг вправо или шаг влево — расстрел.

                          Мой друг, художник, хочет сделать книжку для детей под Android, и сейчас пытается разобраться, какую ему систему программирования выбрать. Для него вопроса в том, чтобы играть в классику, даже не стоит. Он и Java освоить не может, поэтому рассматривает варианты типа Construct 2 и GameMaker.
                          • 0
                            Вы правы, в том, что бывают условия, в которых надо программировать на вполне определенном языке.

                            Но при этом только от вас зависит, что вы играете. Это не зависит от языка программирования. Можно попсово писать на Обероне, а можно классически на С.

                            Приведу свой пример. Когда мне заказали менеджер памяти (о котором здесь уже упоминали), то его нужно было писать на Дельфи. И я писал его на том, на чем было нужно.

                            Если продолжить аналогию с музыкой, я не стану называть SapMM классическим произведением, это скорее джаз: искусная вариация на заданную тему. Я смог написать SapMM качественно, потому что у меня был опыт разработки менеджера памяти для Кроноса, разработки менеджера памяти и сборки мусора для XDS Оберон-2, разработки a la region-based менеджера памяти для своей среды разработки. И, кроме того, готовясь к работе, я почитал свежую теорию и заглянул в тексты несколько существующих менеджеров памяти для Дельфи. Я был готов к этой работе.

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

                            Так что не смущайтесь тем, что ваш друг собирается писать на Construct2 или GameMaker. Насколько я понимаю, ему нужен инструмент, который не будет мешать ему решать его настоящую задачу — сделать книжку для детей.

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


                  • +2
                    Для особо интересующихся. Подробный разбор вопроса.

                    Источник: Виртуальный компьютерный музей Э.М.Пройдакова.
                    Автор: Борис Николаевич Малиновский. Известный специалист в области вычислительной техники, член-корреспондент Национальной академии наук Украины, лауреат Государственной премии Украины.

                    www.computer-museum.ru/books/vt_face/6_rameev_5.htm
                    • +1
                      Малоизвестные страницы нашей истории…

                      Серия Эльбрус» советских многопроцессорных суперкомпьютеров, разработанных в ЛИТМО (ныне ИТМиВТ) в 1970—1980-х годах, кластер на базе БЭСМ-6 (Большая Советская вычислительная машина).

                      Мой отец имел опыт разработок на этих компьютерах, были расчеты связанные с космическими технологиями. На сколько мне известно, но история замалчивает, что ЦРУ запустило дезинформацию о выгодности технологии IBM 360/370 и нашим правительством была закуплена через посредничество Франции технология производства IBM 360, Однако документации по математическому обеспечению не передали, на верху порешили, что не дураки и сами разберемся. В результате мы с десятилетнем опозданием запустили ЕС-совскую серию: ЕС 1022, ЕС 1033., тем самым закрыв инвестиции в технологию БЭСМ и Эльбрус. Этим политическим решением мы закрыли свои наработки и принялись осваивать уже на этом момент устаревшию ЕС-совскую серию в чем опоздали скорее всего уже навсегда.

                      Более менее нормальная литература по этой тематике появилась с десятилетним опозданием. Это были мои студенческие годы. Хитовой книгой моей юности была: Джермейн. «Программирование на IBM 360»…

                      Вся вышеизложенная информация — это лишь мнение моего отца, который был тесно связан с разными IT технологиями в космической индустрии.

                      В ходе моей студенческой жизни пришлось работать и в упомянутом в статье альфа-транслятором… Да, были интересные и увлекательные времена… К сожалению, со звездами IT индустрии мне не удалось пересечься, как автору поста, но могу с гордостью похвастаться, что прошел 3 разные эпохи вычислительной техники, от альфа-транслятора М-222 до современных PC архитектур.

                      • +2
                        ИТМиВТ(Институт точной механики и вычислительной техники) никогда не назывался ЛИТМО, собственно ИТМиВТ был создан в 1948 году в Москве на базе трёх институтов АН СССР: института Машиноведения, Энергетического и Математического. ЛИТМО – это Ленинградский институт точной механики и оптики, который сейчас называется ИТМО. БЭСМ-6 — Большая Электронно-Счётная Машина, а не «Большая Советская вычислительная машина».
                        • 0
                          спасибо за информацию
                          когда я учился в Питере, он для меня был ЛИТМО… у меня там были друзья.
                          и наверно в сердце таким и останется,
                          для справки, сам я заканчивал Можайку — четырежды(или даже более) менявшую своё наименование, но в сердце останется Академия Можайского.
                      • –1
                        Автор эпиграфа — А. Крупнов.
                        • 0
                          У Крупнова «А чтобы стоять, я должен держаться корней».
                          • +2
                            Б. Гребенщиков: 1982 г. «Акустика», «Держаться корней».
                            Насколько я знаю, А. Крупнов пел похожие слова позже.
                          • +2
                            А еще Алексей Недоря продолжает и по сей день создавать нереально замечательные вещи. Вот, например, многопоточный менеджер памяти для Delphi, превосходящий по своим характеристикам большинство существующих аналогов (да, он круче FastMM4, прошу прощения у фанатов, к коим мы и сами относились, пока Алексей не перевернул наше представление).
                            • 0
                              Владелец репозитория некто alisov.a...gmail.com, где здесь Алексей Недоря?
                              • +3
                                Владелец репозитория это я. Код написал Алексей по контракту с нашей организацией для коммерческого проекта, договор предусматривал возможность перевода данного кода в разряд open source.
                            • 0
                              С Владимиром Малюхом или Михаилом Евстёниным не были знакомы?
                              • 0
                                Если это Владимир Малюх из группы Кронос, то знаком.
                                http://kronos.ru/members
                                • 0
                                  Да, он. Я потому и спрашивал. У меня человека три знакомых (форумных) с Кронос'ом работали, часто тема поднималась, потому и спросил. Тесен мир :)

                                  Жаль только, что Володя больше не с нами, земля ему пухом :( Так и не успели с ним в реальности пивка попить…
                              • 0
                                Мне довелось побывать на лекции Никлауса Вирта в Томске в 2005 году.
                                Запомнился его ответ на вопрос о C++: «Это монстр, который должен умереть»
                                • 0
                                  Лёшка, большое спасибо за статью.

                                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.