воскресенье, 2 января 2022 г.

Шеркало 05.01: любимые системы программирования (Рапира)

 - Миша, звал7

- Хм. Кажется звал. Хотя, это было в моём сне. Только не называй меня "Миша", пожалуйста, Шеркало.

- А как надо?

- Называй меня, например, Ёж!

- Вот нифигасе! Впрочем, как скажешь, Ёж. Так для чего ты меня звал? В прошлый раз, кажется, хотел что-то про язык Паскаль рассказать?

- Я уже передумал!

- А что, и так можно было, а, Ёж?!

- Не ёрничай, Шеркало! Я решил немного расширить тему. Просто молчи, слушай и отражай, если пожелаешь. Ты, знаешь, у людей есть такое понятие - "первая любовь". Это, когда то, что первый раз тебя впечатлило, становится потом идеалом на всю оставшуюся жизнь, даже, если объективно это вовсе и не идеал.

- Ну, Ёж, ты меня порадовал. Ты мне, своей зеркальной тени, пытаешься объяснять, что такое "импринтинг" (оно же "запечатление")?! И, кстати, ты ошибаешься, если полагаешь, что импринтинг свойственен лишь людям. Да, многие приматы эту фишечку при воспитании детей активно используют, но и другие млекопитающие тоже, и очень многие птицы. Да и рептилии тоже, хотя учёные это пока вроде бы не особо исследовали...Я уверено - у горгонопсов перед великим пермским вымиранием импринтинг уже заметную роль играл. Впрочем доказывать не берусь.

- Ладно, можешь не доказывать. Всё равно тебе не поверят. А я вообще о другом хотел вспомнить - о первом своём языке программирования.

- И что же это было? BASIC наверняка?

- Ошибаешься! Моим первым языком программирования была "Рапира". Выглядела она примерно вот так:









Вот только работала эта самая Рапира исключительно на компьютерах "Агат" (первый раз нам её показали на импортном компьютере "Apple II+" (с которого тот Агат и пытались тогда в СССР копировать)). А у нас в Томске ни Агатов, ни Apple'ов под рукой не было. Правда, там по ссылке в Википедии говорят, что существовал транслятор Рапиры для машины БЭСМ-6 (которая у нас как раз была), но вот я лично его не видел. В итоге, толком поработать на Рапире мне и не довелось. Но, кажется, сожалеть о том не нужно.

- Прям совсем уж примитивно было?

- Нет, Шеркало, не совсем. Рапира была по-сути студенческой разработкой в Новосибирском Университете (НГУ). Так тогда было модно. Для сравнения с западом скажу, что и язык Паскаль (и его развития Модула и Оберон), тоже были студенческими университетскими разработками, получившими популярность благодаря руководящей и направляющей руке Никлауса Вирта. И супер-популярный ныне Python - тоже изначально студенческая разработка. И Рапира была в том же ряду, ничуть не хуже! Если бы развивалась - могла бы стать в один ряд с Python, во всяком случае идеи там очень похожие (только отступов в Рапире не предусмотрели). Но разнице в уровне и в судьбе научных руководителей предопределила разницу в судьбе языков.

А амбиции были! Как тебе "Марш разработчиков Рапиры"?

Мы рождены, чтоб сказку сделать былью,
Чтоб мир забыл про Бейсик и Кобол.
Нас Крокодил вооружил Рапирой,
НИИ ВК дал каменный топор.

Все шире, и шире, и шире
Становится день ото дня
Любимая наша Рапира -
Система грядущего дня.

Рапиры штык вонзался в каждый атом,
Ее булат прочнее всех мечей.
И в нужный час монбланы из АГАТов
Переломаем в горы кирпичей.

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

Швыряя ДОС и Бейсик в бокс позорный
И наблюдая плавный их полет,
Мы без гроша оставим Commodore'а,
А фирму Apple пустим на компот.

Все ближе, и ближе, и ближе
Побед и триумфов черед.
Пусть в Риме, Нью-Йорке, Париже
Увидят Рапиры восход !

- Мощно, Ёж! Это ты сочинил?

- Ну что ты! НЕТ конечно, это типичная студенческая песня, сочинена группой разработчиков Рапиры.

- А при чём тут НИИ ВК? И что такое крокодил?

- НИИ ВК - это контора, которая с переменным успехом разрабатывала компьютеры "Агат". Агаты предполагались для поставки в школы, в качестве учебных школьных компьютеров. И Рапира предполагалась одним из основных языков программирования для этих компьютеров. Кстати, более поздние версии языка Рапира (я их, к счастью, уже не застал, а то бы очень расстроился) сильно напоминали по синтаксису "Е-практикум", он же "Учебный алгоритмический язык" Ершова - псевдо язык программирования, для описания алгоритмов в школьных учебниках Информатики.

А Крокодил - не что, а кто. Это кличка, прозвище, Геннадия Анатольевича Звенигородского, человека, который как раз и руководил студенческой группой, создававшей Рапиру. К огромному сожалению, Г.А. Звенигородский скоропостижно умер в 1984 году, после чего развитие Рапиры было практически полностью свёрнуто. 

Но у нас в Томске, никаких Агатов тогда не было (их на тот момент - вторую половину 1983 года, если правильно помню - и 10 штук на весь СССР сложно было бы найти), как и уроков Информатики тоже не было, их ещё не придумали. У нас были стандартные для школ того времени уроки труда в старших классах - назывались "Учебно-производственный комбинат" (УПК), этакая якобы близкая к жизни трудовая практика на реальных предприятиях перед выпуском из школы. А поскольку наша школа располагалась в академгородке, то одним из предлагаемых вариантов УПК оказалось обучение программированию на реальных живых компьютерах в одном из НИИ - Институте Оптики Атмосферы (ИОА). Следует заметить, что школьного предмета "Информатика" в то время ещё НЕ существовало, мы занимались на компьютерах именно в рамках УПК, отнимая дефицитные вычислительные ресурсы у сотрудников НИИ. Преподавали нам тоже не профессиональные педагоги, а на "общественных началах" обычные научные сотрудники и инженеры ИОА, причём программу обучения они кажется тоже разрабатывали самостоятельно.

- Ёж, погоди, не уклоняйся от темы! Ты начал про "первую любовь", вроде? Так всё-таки Рапира была твоей любовью, или, как ты выразился, "толком на ней и не поработал"?

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


Продолжение от 2022 года.

Собственно, в этом месте я хотел закончить свой рассказ о языке Рапира. В самом деле, что я мог ещё сказать? Мой личный опыт использования Рапиры закончился в 1985. Сам язык смерти своего вдохновителя Г.А. "Крокодила" Звенигородского, очевидно тоже не пережил, и скончался тогда же, в середине 1980-х. Так о чём ещё говорить?

Но что-то странное продолжало меня беспокоить. Чем дальше, тем сильнее. Рапира давно мертва, на ней точно никто ничего не пишет, но почему же я вижу её следы в текстах программ моей дочки? И ведь чем дальше, тем более ясные и вовсе не призрачные следы! Прямо мистика, и мурашки по коже!!!

Ответ я нашёл, мистика исчезла. Всё оказалось очень прозаично. Наследник нашёлся. Это язык Python (даже упомянутый мной выше и раньше), на который я уже писал шуточную рецензию. Python вовсе не зомби, это вполне современный, очень популярный, весьма распространённый язык. Просто между началом популярности Python и концом Рапиры прошло больше десятилетия очень бурного развития отрасли ИТ. Сложно было сразу заметить явную связь между языками из разных эпох. А всё просто:

В Википедии, в статье про язык Рапира, говорится, что он основан на двух более ранних языках (цитата):

"... Язык построен на основе объединения возможностей языков Сетл и Поплан. Изначально был реализован как набор макрорасширений на базе языка Поплан — интерпретатора языка POP-2 ..."

В более раннем варианте вики-статьи Сетл кажется даже не упоминался (могу ошибаться, но меня именно отсутствие упоминания Сетл тогда удивило, поэтому и запомнилось!) - только Поплан. На самом деле в Рапире от Поплана нет почти ничего, разве лишь странное присваивание "слева-направо" - оно именно из Поплана взято. А вот Сетл - реальный духовный предшественник Рапиры.

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

Что было дальше? Язык Сетл к тому моменту был большей частью БУМАЖНЫМ языком. Никаких промышленных реализаций не было, до них дело не дошло. Только чистые демонстраторы перспективных идей в форме алфа- бета- версий с крайне ограниченной функциональностью для подсветки светлого будущего. Развивать эти идеи на западе и в СССР продолжили независимыми путями.

Со стороны СССР осталась, в частности, новосибирская команда академика Ершова, в которую был приглашён лидером (не сразу лидером, сначала МНС, как водится) молодой перспективный Звенигородский. Эта команда, сначала формально следуя довольно шаблонно-традиционным рамкам системы Школьница, тем не менее рискнула выдвинуть к вниманию руководства абсолютно революционную на тот момент Рапиру.  Проблема была в технической базе - ну никак НЕ укладывалась Рапира (да и вся Школьница тоже) в технологии ВЦ на базе БЭСМ-6. Как манны небесной ждали появления персональных компьютеров, прежде всего надеялись на обещанные промышленностью Агаты. Агаты появились на пару лет позже, чем их в самом крайнем случае ожидали, при этом показали себя не только запоздалыми, но и зашкаливающе деьмовыми! Тем не менее, даже на фоне этого невменяемого дерьмищща, Рапира смотрелась, как яркий луч надежды. Даже на Агатах она блистала изящными возможностями - только дайте этой талантливейшей команде разработчиков чуть-чуть более надёжную и современную среду, вот там-то уж можно будет развернуться!

Смерть Звенигородского совпала с внедрением первых серийных Агатов. Страна шла к развалу. А тут ещё и смерть академика Ершова. Рапира больше никого не интересовала.

А что со стороны Запада? Коммерсанты там тоже Сетл не поддержали (впрочем, с самого начала и не собирались). Но Университетская среда Сетл оценила высоко. В том числе, планировали использовать идеи Сетл в системах обучения студентов. Для этого, в частности, разработали специальный язык программирования ABC. Вы, возможно, несколько удивитесь, но в разработке языка ABC на младших ролях активно участвовал некто по имени Гвидо ван Россум. ABC, в отличие от Сетла был отнюдь не бумажным языком, его вполне реализовывали силами студенческих команд. Другой вопрос, что и функциональность реализуемого языка была более-менее близка к учебной, а не к промышленной.

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


Вот и имеем результат. Python известен повсеместно. Рапиру не знает никто. Кстати, Сетл тоже никто не знает, но это и справедливо - Сетл никогда не был реализован в приемлемой конфигурации. А вот Рапира - таки была реализована.

Только Геннадий Анатольевич "Крокодил" Звенигородский, родился не совсем в том месте и не совсем в нужное время. Ещё хуже, умер он совсем уж точно не в нужное время.

А Гвидо ван Россум, вероятно, родился когда и где надо. Поэтому все учат Python, но никто не помнит Рапиру.

Комментариев нет:

Отправить комментарий