Learning to fly - McSeem2 - part1
От: McSeem2 США http://www.antigrain.com
Дата: 08.01.05 06:49
Оценка: 235 (41) +3 :))) :)))
#Имя: FAQ.Learningtofly.McSeem2.part1
Здравствуйте, SchweinDeBurg, Вы писали:

SDB>На самом деле, Максим, я имел ввиду несколько другую сторону медали. Хоть меня и учили, что "пример — не доказательство", позволю себе опереться именно на пример.


[. . .]

Понятно. Ну чтож, я тогда тоже поупражняюсь в графоманстве и сентиментальных соплях с описанием личной истории сексуальных отношений с электроникой, компьютерами и программированием.

Сначала я был яростным радиолюбителем и просто тащился от качественного воспроизведения звука. Широким полем для экспериментов у меня был советский социалистический магнитофон Маяк-205, который я заставил записывать и воспроизводить как Олимп-003. Народ брал его в аренду за небольшую плату для перезаписи с нулёвого винила на боббины на 19-й скорости (38-я была мало популярна в силу дороговизны). Замечание для нового поколения: 19 означает скорость движения магнитной ленты 19-чем-то-там сантиметров в секунду. В кассете — 4-с-чем-то. Забыл уже конкретные цифры. Я был представителем чисто транзисторного поколения, на лампах я так ничего так и не соорудил (было не модно), а сегодняшняя ламповая паранойя вернулась слишком поздно и проходит мимо меня, хотя было бы интересно поучаствовать и чего-нибудь там спаять (утирая пьяную слезу...).

Тем не менее, главная фишка заключается вот в чем (она будет дальше проходить красной нитью). Функциональность, которая обеспечивалась тремя ламповыми триодами, в полупроводниковом исполении требовала примерно десятка транзисторов. На трех транзиторах теоретически было можно сделать то же самое, но получался полный отстой.

Второй момент — меня (оглядываяь ретроспективно) никогда не интересовал конечный результат. Меня всегда интересовал сам процесс (поручики, молчать!). Конечный результат — это как горизонт, до которого нельзя дойти. Но, конечно же, на каждом этапе я всегда интересовался (и интересуюсь) именно прагматическим конечным результатом. Здесь нет никакого противоречия. Обобщая опыт, можно сказать, что я всегда имел и имею недостижимую цель и всегда имею некий промежуточный результат, реально полезный другим и позволяющий мне "выпивать-закусывать". Эта философия, кстати, очень созвучна с философией eXtreme Programming.

Ну это так, лирика. Перелом произошел на втором курсе института (1984), когда нам читали курс по Фортрану и языку JCL. Я на этот курс полностью забил, поскольку не мог понять элементарных вещей, например, почему оператор WRITE чего-то делает, а оператор FORMAT не делает ни чего, а существует лишь как приложение к операторам WRITE/READ (впоследствии я с этим смирился). В общем, курс был сдан кое-как, на тройку. Меня это все не интересовало, я был увлечен конструированием усилителей. Но во втором семестре понадобилось сдавать курсовую работу по теории цепей и расчитать чего-то там по схеме из пары RLC-контуров. Для этого предоставлялось машинное время на институтской ЕС-ЭВМ и надо было официально сдавать работы на бланках, которые барышни-операторы (...ночью, на стуле, около перфоратора... Ыыххх... — коленки потом были в синяках. Сейчас тоже в синяках, но по другой причине). В общем, там была некая подпрограмма на Фортране с примерно 20 параметрами, которую надо было правильно вызвать. Все это навевало на меня страшную тоску (кроме барышень), и после трех итераций я на это дело забил. Моя программа дошла только до трансляции, до этого были ошибки в JCL. Так и не странслировалось. Что самое интересное, все это можно было рассчитать на калькуляторе примерно за полдня, а цикл отладки на ЕС-ЭВМ занимал в среднем месяц. Но в требованиях было — использование ЭВМ (!). Без ЭВМ работы не принимались.

И тут на помощь пришел Друг,с погонялом Шура Балаганов. Оказалось, что в конце курса по Фортрану были две лекции по Бэйсику, на которые я забил, а Шура доблестно посетил их. И вот мы (он, если быть честным), сочинили программу на бэйсике из примерно 15 строк для расчета этой, блин, цепи. Он мне в кратце объяснил что к чему, и я пошел в компьютперный класс на Персональную ЭВМ Электроника Д-3-28. С загрузкой Бэйсика с магнитной кассеты. В результате, примерно за час я вбил эти 15 строк, умудрился все это отладить (не зная собственно языка, но имея общие представления о формальной логике) и получить распечатку с вполне правдоподобными результатами.

И я решил, что компьютеры вообще — рулез (по сравнению с калькулятором), но IBM (ЕС-ЭВМ, там была еще такая аббревиатура ЕБCДИК — EBCDIC) со своими перфокартами и распечатками — полный мазай (потратить месяц или потратить час).

Следующим этапом просветления был курсовик по трассировке печантых плат, тоже на Бейске и на ДВК-какой-то-там с перфолентой. Надо было сочинить и вбить алгоритм. Тогда я уже ориентировался и сочинил правильно. Программа с тремя вложенными циклами работала минут 10. А потом, преподаватьель включил дисковод с 12-дюймовыми дискетами, загрузил RT-11 с компилятором с Фортрана и показал всем, как этот алгоритм на самом деле должен работать. Это была какая-то фантастика. Программа на бейсике работала минут 10-15, на Фортране — баз какой-либо видимой задержки сразу выдавала результат. Со стороны преподавателя это был очень грамотный психологический трюк. Все поняли что Фортран (и вообще, компилятор) реально крут. А бейсик — так, заместо калькулятора.

Потом я устроился на работу (точнее говоря, мама меня-разгильдяя вытурила) в ВЦ ВВУГКС. Расшифровывался как Вычислительный Центр Верхне-Волжского Управления по Гидрометеорологии и Контролю Природной Среды. Конечно, до НИИХУЯ он не дотягивал (реально был такой — Научно-Исследовательский Институт Химических Удобрений и Ядов, но я в него не попал). Должность моя сначала называлась "помощник оператора ЭВМ", потом, через пару масяцев я уже был настоящим "оператором ЭВМ" (почти как "Водитель Кобылы"). Там я в свободное (ночное) время поближе познакомился с Фортраном (на девочек забил) и потом — с PL/I, причем по собственной инициативе. Все было на перфокартах! Ни какого механизма, все вручную! Но это было круто и задачи решались реально крутые по сравнению с бейсиком. Там можно было выполнять циклы из 10000 итераций за какие-то десятые доли секунды! А еще там был Дигиграф! Это чешский графопостроитель, с зеркальным полем 1x1.5 метра для рисования карт (типа изолиний давления). Карты "приклеивались" электростатикой, а приводные моторы были мощностью ватт по 300 каждый (всего три). При этом обеспечивалась точность позиционирования в 0.05мм и скорость порядка 2м/сек. Это был ураган, когда работает — земля дрожит. А компьютеры и все остальное хозяйство питалось не просто так, а через мотор-генератор для полной развязки от сети (трансформатора считалось недостаточно). И Дигиграф меня покорил! Я откопал библиотеку, которая позволяла рисовать из Фортрана линии, сплайны и текст. Чего я там только не рисовал! Но при этом и остальная, рутинная работа не вызывала во мне ни малейшего раздражения и я успевал все в срок и считался одним из лучших операторов и эта простая работа доставляла мне удовольствие. Чтобы сейчас достичь подобной нирваны, мне уже требуется гораздо более сильный "наркотик".

Первый звонок из серии "The grass was greener / The light was brighter / The taste was sweeter" прозучал именно тогда. В ВЦ ВВУГКС был еще советский компьютер Минск-32 (транзисторный!) аж со 100K памяти на борту на ферритовых кольцах. Никаких жестких дисков! Только магнитные ленты, перфоленты и перфокарты. И еще два дигиграфа в качестве периферии. И пара "Консулов" для операторов. И на нем была такая задача — обсчет метеопостов и метеостанций. Очень трудоемкая. Этот Минск-32 справлялся в 100K памяти плюс три магнитные ленты для Merge Sort. И в параллель умел рисовать одновременно на двух графопостроителях карты, наиболее критичные по времени. Потом, Минск-32 демонтировали, а софту переписали на PL/I и пустили на ЕС-1045. Для этого пришлось апгрейдить комп (и сооружать пристройку для этого!) с 256 аж до целого мегабайта памяти! Это было круто, но программа, ранее работавшая в 100K стала занимать почти весь мегабайт. При этом в ее распоряжении были жестские 100-мегабайтные диски с до сих пор непревзойденным средним временем доступа к дорожке в 5ms. Я недоумевал — что за фигня?! — и по своей наивной детской сущности спрашивал у начальства, а нафига это все? Начальство бодренько удыбалось, снисходительно гладило меня по головке с явным подтекстом "молодооой еще", а на самом деле прятало от стыда глаза. Ну типа, политика партии (ты что, не в курсе решений NN-съезда КПСС?!), надо быть в струе современности, и все такое (ничего не навевает?)...

В те времена профессия Ситемный Программист — было неимоверно круто. Инсталляция операционной системы ОС-ЕС (на самом деле IBM OS/360) занимала пару недель (!) напряженной работы (в то время, как для Минск-32 ничего не требовалось). И этим занимался Системный Программист! Не какой-то там жалкий админ, а именно Программист! Системный! А просто программисты — они чего-то там на своем PL/I (или Фортране) пишут, пускают распечатки на барабанный принтер... Типа тоже нужные люди, но имя им — легион. А системный программист был всегда один — и от него все зависело (как там в Формуле Любви, "Здесь все от Мэне Зависэть..." (вытирая лом пучком соломы)).


Если интересно дальше, завтра расскажу про PDP-11, Фортран с MACRO-11, Си на DEC, первые ПиСи, C++, и т.д. Ну, разумеется, в свете своего воспаленного восприятия и извращенного бреда... Если не интересно — просьба модераторам — удалить. Или не стесняйтесь ставить минусы — я не обижусь
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.