Американская ария князя Игоря: программирование в доисторическую эпоху

[начало | предыдущий]

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

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

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

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

Ну и теперь, когда угроза со стороны Аллы миновала, Сергей снова был предоставлен сам себе.

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

Работать дома он начал почти сразу после окончания Московского авиационного института. Ему просто повезло - это был первый год, когда не нужно было в обязательном порядке идти работать по распределению. По распределению работать Сергей не хотел - ему хватило наблюдений за работой отдела одного из "ящиков" Москвы во время написания диплома. А наблюдения были обширные и разнообразные...

Отдел был неплохой, люди там работали симпатичные, но практически все их трудовое время занимали питье чая, болтовня о просмотренных кинофильмах и прочитанных книгах, а также святая святых - розыгрыш продовольственных заказов. (Все-таки девяностый год - финальный аккорд счастливо умирающего Советского Союза.)

Сергея в отделе встретили с распростертыми объятиями - он еще с третьего курса серьезно занимался программированием, а программисты в те доисторические времена были на вес золота.

Что интересно, программистом в те годы Сергей становиться не собирался - его больше увлекали музыка и девушки, - однако в институте им на очередной РГР - расчетно-графической работе, - где нужно было решать уравнение третьей степени различными методами, сказали, что, кто сможет запрограммировать хоть один метод и получить решение на компьютере, остальные методы делать уже необязательно.

Сергей ненавидел считать на калькуляторе - на его взгляд, это было нудное, тупое и невероятно утомительное занятие. Поэтому он решил запрограммировать один из методов, хотя что такое программирование - даже и не представлял. В те годы в институте программирование не преподавали. Точнее, преподавали что-то древнее вроде "Фортрана", который потом никогда и никому не пригодился, да еще и для преподавания пользовались такими архаично-академическими методами, что Сергею из всего курса "Фортрана" запомнился только внушительный бюст преподавательницы, более ничего.

На вычислительном центре их факультета в тот момент активно продвигался Basic - новый язык, который получил горячего поклонника в лице начальника вычислительного центра. При этом Basic студентам не преподавали - было некому, так как бюстастые тетки с каменными лицами кроме "Фортрана" ничего не знали.

Поэтому Сергей поступил просто: достал у одного из знакомых приличный учебник по Basic, а когда пришло время ехать в вычислительный центр, вышел из дома, сел в метро на станции "Варшавская", где он в то время жил, раскрыл учебник и во время поездки до метро "Сокол", где располагался институт, увлеченно его читал. Явившись в институт, он отправился в вычислительный центр и там где-то за пару часов написал и отладил программу на Basic, которая решала уравнение третьей степени методом Берстоу. После этого для блезира он даже написал отдельную программу, которая оптимизировала стартовые коэффициенты.

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

Преподаватель, принимая РГР, долго хвалил Сергея и ставил его в пример остальным, а когда увидел еще и вторую программу подбора коэффициентов, чуть было не расчувствовался и сказал, что Сергей очень далеко пойдет по стезе программирования.

Оказалось, что преподаватель как в воду глядел. Сергей всегда был ленив по натуре и предпочитал, чтобы его работу выполняли другие, так что с программированием они друг друга нашли: достаточно было написать несколько строчек кода, после чего компьютер, пыхтя, за несколько секунд решал сложнейшую задачу, избавив Сергея от многих часов возни с калькулятором. Сергею это нравилось. Компьютеру вроде тоже. Да и начальник вычислительного центра, куда Сергей ходил каждый день, убедившись в том, что парень действительно пишет какие-то программы, а не пытается распечатать на АЦПУ "Сказку о Тройке" Стругацких или "Николая Николаевича" Алешковского, дал Сергею неограниченное машинное время, что в те времена было большой редкостью.

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

Правда, на пятом курсе Сергей пришел к выводу, что Basic, который вообще-то создавался как язык для обучения хорошему стилю программирования, этот стиль портит совершенно кошмарнейшим образом, после чего перешел на изучение Turbo Pascal, который тогда можно было найти только на первых персоналках. Однако на его институтские успехи это не повлияло, несмотря на то что Сергей совершенно забросил вычислительный центр: он уже прочно приобрел репутацию программерского гуру и преподаватели ставили пятерки даже за распечатки программ расчета биоритмов, которые Сергей нагло выдавал за решение очередной задачи.

В "ящике" на "Аэропорте", где ему предстояло делать диплом, программировали на языке Modula 2, который представлял собой улучшенный и расширенный Pascal. Впрочем, незадолго до этого там использовали тот же Basic, а внедрение Modula 2 шло с большим трудом. Сергею после Turbo Pascal на освоение Modula 2 потребовалось два-три часа, и в отделе на него смотрели с квадратными глазами, когда он в конце первого дня работы начал объяснять ведущему программисту некоторые особенности операторов Modula 2 для работы с матрицами.

Для диплома ему дали очень серьезную задачу - расчет какого-то уравнения с заранее заданными параметрами из "фильтра "Калмана". "Это, - внушительно сказал начальник отдела, - нужно будет запрограммировать. - На языке Modula 2", - добавил он для ясности. Впереди было четыре месяца напряженного труда, и Сергей решил, что успеет.

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

Он сел за стол и за пятнадцать минут набросал код программы. Получилось строчек двадцать. На одном листочке. Как это можно было считать дипломом, Сергей не знал: на его взгляд, задача никак не тянула даже на обычную институтскую расчетку. Он взял листочек и снова пошел к начальнику. Показал. Начальник, для которого код на Modula 2 выглядел как стихотворение на языке зулусов, слегка рассердился и объяснил Сергею, что тот больше не должен подходить советоваться по каждому промежуточному этапу. Задачу нужно запрограммировать, еще раз пояснил начальник. А это означает, что программа должна быть написана, внесена в машину (начальник имел в виду местный компьютер, располагающийся в вычислительном центре), отлажена, в результате ее работы должно быть получено правильное решение, после чего текст программы нужно распечатать, решение нужно распечатать, а если удастся получить какие-то графики - это уже будет просто на пятерку, хотя графики получить не удастся, потому что местный компьютер графики строить не умеет. Но графики, любезно пояснил начальник, можно нарисовать от руки. Карандашом. Или фломастером. Так что если вопросов нет, сказал начальник, - иди! Работай!

Сергей, не будучи дураком, все понял. Никому не хотелось серьезно отрываться от питья чая и разыгрывания продовольственных заказов. Навязали студента на их голову - ну что ж, надо его озадачить. Вот тебе, сынок, озадача, и чтобы месяца четыре ты никого сам не озадачивал. Вопросы задавать можно. Но не чаще раза в месяц. А еще лучше - не чаще раза в два месяца. И не в момент разыгрывания заказов. И не в момент, когда дамы отдела примеряют очередной комбидрес, так что всех мужиков, включая начальника отдела, отправляют на полчасика покурить. Причем вопросы, сынок, должны быть такие, чтобы на них мгновенно мог ответить любой работник отдела. Так что не надо лезть со своими "фильтрами "Калмана", операторами Modula 2 и прочей дрянью. Спроси, есть ли жизнь на Марсе, или поинтересуйся методикой разыгрывания заказов - вот это действительно интересно.

Ну и заодно ему сказали, что ближайшие три-четыре недели Сергею придется отлаживать свою гениальную программу на бумаге, потому что на вычислительном центре сразу машинное время не дадут: тут тебе, сынок, не институт, так что нужно записываться задолго.

Чтобы как следует привыкнуть ко всем этим интереснейшим вводным, Сергей, никому ничего не сказав, отправился в Сочи. Аж на три недели.

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

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

В Москву он явился загоревший почти дочерна, но в отделе, где Сергей нагло заявил, что три недели проболел, ему ничего не сказали. Видимо, там не принято было лезть человеку в душу: раз загорел во время болезни, значит, такая болезнь удачная попалась. Ему только напомнили о том, что для работы над дипломом осталось чуть больше трех месяцев, а это очень и очень мало, так что давайте-ка, молодой человек, отправляйтесь завтра в машинный зал - вам там на неделю выделили времени по два часа в день.

Машинный зал "ящика" на "Аэропорте" мало чем отличатся от институтского машинного зала: та же "СМ-4", стойки с перематывающимися бобинами магнитной ленты, здоровенное печатающее устройство, перерабатывающее непрерывный поток широкой перфорированной бумаги, терминалы с монохромными мониторами.

Машинный зал был довольно большой, терминалов на десять, но там, как ни странно, практически никого не было, за исключением парня лет тридцати типично "ботанической" наружности: засаленные польские джинсы, купленные лет пять назад, рубашка с подозрительными пятнами на груди, имеющими то ли пищевое, то ли алкогольное происхождение, длинные спутанные волосы, поповская козлиная бородка, а также почти обязательные в то время очки в допотопной роговой оправе, стекла которых последний раз протирали еще в прошлую пятилетку. Губы парня были плотно сжаты и слегка искривлены, что придавало лицу презрительное выражение. Рядом с парнем стояла здоровенная фаянсовая кружка с чаем, которую явно не мыли пару лет.

На появление Сергея парень вообще никак не отреагировал, продолжая шлепать пальцами по клавиатуре, которая непонятно зачем была разрисована фломастерами.

- Привет, - сказал Сергей. - У меня тут машинное время.

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

- Але, - громко сказал Сергей, - на борту! Тут вообще жизнь есть какая-нибудь или нет? Или мне за любой терминал садиться?

Тут парень наконец-то соизволил оторваться от клавиатуры и уставился тусклым взглядом на Сергея.

- Садиться здесь можно только туда, куда я укажу, - заявил парень каким-то скрипучим и очень противным голосом. - Я тут - начальник машины.

- Поздравляю, - сказал Сергей. - Тогда укажи, куда можно сесть. И я сяду, - объяснил он, стараясь говорить очень короткими и односложными фразами. - Кстати, - сказал он, показывая пальцем на кружку, которая внутреннюю белизну давно поменяла на нечто темно-коричневое, - а ты вообще в курсе, что человечество уже изобрело соду?

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

- А что делать-то будешь? - наконец спросил он Сергея.

- Диплом программировать, - объяснил тот. - Жутко сложное уравнение. Строк на десять.

- Я тебе программу писать не буду, - объяснил парень. - У меня времени нет - работы по горло. Ну то есть, если что, могу и написать, но сам понимаешь, работа серьезная, требует всякого... - он замялся, - сопровождения и так далее. Программировать - это тебе не бидоны возить. Тут башка знаешь как соображать должна? Обычный человек...

- Не надо мне ничего писать, - прервал его Сергей. - Программу я написал, надо просто вбить код, прогнать через интерпретатор, получить результаты и распечатать код вмеcте с результатами.

- Дай посмотреть, - требовательно сказал парень, протягивая руку за текстом программы.

Сергей молча протянул листок с написанным кодом.

- Только должен тебя огорчить, - торжествующе сказал парень, не заглядывая в бумагу. - У нас тут не какой-то вшивый Basic. У нас тут Modula 2. Так что все надо переписывать.

Сергей промолчал.

Парень, подхихикивая, поднес листок к глазам. Посмотрел на код и поскучнел.

- А, - сказал он вяло, - у тебя уже на Modula? Ну, садись тогда, - и парень махнул рукой на ближайший к нему терминал.

Сергей устроился за клавиатурой, положил рядом текст программы и начал вбивать код. После того как все было перенесено, он запустил интерпретатор, и тот тут же выдал ошибку в самой первой строчке программы. Сергей нахмурился. Там точно не было никакой ошибки. Но он на всякий случай попробовал то так, то сяк изменить написание - пробел вставить, "оператор" написать маленькими буквами - мало ли что. Но это не помогало, интерпретатор упорно выдавал ошибку. Пришлось обращаться за помощью к парню, хотя Сергею это делать совершенно не хотелось.

Парень, поправив очки, посмотрел код на экране, торжествующе улыбнулся и сказал:

- Ну так ты "операторы" неправильно пишешь!

- Как это неправильно? - удивился Сергей. - Что там неправильного?

- Ну так у тебя написано CONST, VAR, PROCEDURE, BEGIN, WRITELN и так далее, - так же торжествующе сказал парень, - а так нельзя!

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

- Чтобы можно было выводить русский текст, - объяснил парень, - нужно эти "операторы" писать по-русски. И переменные все по-русски. Вообще не должно быть никаких латинских символов - тогда интерпретатор не будет ругаться. Пиши КОНСТ, ВАР, ПРОЦЕДУРЕ, БЕГИН, ВРИТЕЛН.

- Ты что, серьезно? - потрясенно спросил Сергей.

Парень сделал гордое выражение на лице.

- Ну так учись, - сказал он. - Что бы ты без меня делал!

- А какой мудак, - все так же потрясенно спросил Сергей, - сотворил такой интерпретатор? Что, нельзя было подключить обе половины кодовой таблицы и при обработке русского просто переключаться на вторую половину? Там же русский только для текстовых переменных нужен. На черта такой геморрой с языком устраивать?

Парень скривился.

- Это я вообще-то отлаживал интерпретатор, - заявил он. - Только благодаря мне теперь по-русски можно что-то выводить. Если ты такой умный, делай свой.

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

- Во-во, явился умник, - пробурчал парень, вставая из-за своего терминала. - Если ты такой умный, - сказал он, - тогда сам тут и колупайся. Мне идти пора.

- Удачи, - сказал Сергей, надеясь, что дальше он сам как-нибудь разберется.

Парень ушел. Сергей еще два часа отлаживал программу, заменяя все операторы этими идиотскими русскоязычными "аналогами". Но так как аналоги придумывал ушедший начальник машины, а его сознание страдало потерей контакта с окружающей действительностью, Сергею пришлось изрядно попотеть, перебирая кучу самых дурацких вариантов написания тех или иных операторов. Проблема была еще в том, что количество символов в русских и английских названиях операторов должны были совпадать. Поэтому он потратил минут двадцать на то, чтобы выяснить, как в русском варианте должен выглядеть оператор WHILE. Оказалось, что ВХИЛЕ. Определив это, Сергей дал себе страшную клятву, что на следующей день он принесет сюда молоток и даст начальнику машины по башке изо всех сил - ну просто чтобы этот гад больше не смог нести в мир такой программный кошмар.

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

В конце концов Сергей более или менее освоился с этим идиотским интерпретатором, поэтому смог отладить программу и получить результаты. Распечатав текст программы, он посмотрел на него и грустно вздохнул: выдавать эти два листочка за диплом было просто неприлично.

Тогда он занялся тщательным документированием кода: писал в тексте, что означает каждая переменная и где она используется, зачем вводится этот цикл и что служит условием его прекращения, - в общем, на каждую строчку кода сделал две-три строчки комментариев. Текст увеличился до четырех листочков, но на диплом по-прежнему не тянул.

С этим надо что-то делать, решил Сергей, после чего взялся за код, засучив рукава. Он ввел штук двадцать новых переменных и констант, а потом начал набивать программу совершенно бессмысленными процедурами и циклами, которые занимались решением глубоко личных задач - например, подбором результата вычисления корня из заданного числа путем его подгонки к результату возведения в квадрат стартового числа, постепенно увеличивающегося на сотую долю. Также в текст вошла любимая Сергеем процедура расчета биоритмов, а потом, раздухарившись, Сергей добавил в код еще и классную процедуру очень непростого расчета движения Луны - туда входил прелестный полином, который сразу стал жемчужиной этой многострадальной программы. Одновременно приходилось следить, чтобы все эти вскипающие то здесь, то там процедуры и циклы не мешали выполнению главного уравнения и при этом смотрелись солидно и внушительно. После этих шаманских действий программа уже стала походить на диплом - аж десять страниц кода.

Далее Сергей вспомнил об обычных школьных ухищрениях, которые всегда используются в подобных случаях: поля сверху, снизу, слева и справа на страницах нужно увеличить в 3-5 раз, шрифт увеличить до 14 кегля, а расстояние между строк сделать через три интервала. Распечатал. Программа теперь занимала тридцать шесть страниц, и ее уже было не стыдно показать кому угодно - разумеется, при условии, что этот человек ни черта не понимает в программировании.

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

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

Еще пара дней ушла на то, чтобы привести текст программы в божеский вид со стандартными англоязычными операторами, - не показывать же на дипломе все эти дикие ВХИЛЕ и ВРИТЕЛН, - после чего диплом был готов.

Начальник отдела "ящика", посмотрев на распечатки, долго довольно качал головой и приговаривал: "Можешь ведь, когда хочешь". А потом добрался до графиков и спросил:

- Что это такое?

- Это графики, - пояснил Сергей, слегка удивившись. Начальник вообще производил впечатление вполне адекватного человека, хотя и ничего не понимал в программировании.

- Я понимаю, что графики, - сказал начальник. - Но наша машина не умеет делать графики. Как класс.

- У нее нет графического режима, - объяснил Сергей. - А это - графики, сделанные в текстовом режиме с использованием символов псевдографики. Плавную кривую я построить не могу, а поставить точки звездочками - запросто. Это же элементарная задача.

- Михаил, - громовым голосом сказал начальник на весь отдел, - подойдите ко мне!

Из-за стола у окна поднялся Миша - ведущий программист отдела - и подошел к начальнику.

- Это что? - так же громко спросил начальник, показывая графики Сергея.

- Какие-то графики, - честно отметил Михаил и пожал плечами - мол, я-то тут при чем.

- Эти графики, - сказал начальник, - сделаны на нашей машине. У нас. В институте.

- Не может быть, - твердо сказал Миша. - Наша машина не умеет делать графики.

- У нее нет графического режима, - терпеливо повторил Сергей. - А это - графики, сделанные в текстовом режиме с использованием символов псевдографики.

- Как это? - удивился Миша.

- Да просто точки проставлены звездочками, - объяснил Сергей. - По горизонтали в первой строчке делаешь одну ось, другую ось пускаешь по вертикали - одно деление на строку. Звездочка показывает значение: чтобы ее поставить куда нужно, значение превращается в пробелы. Вот и все.

- Понял? - спросил начальник Мишу.

- Ну, в общих чертах, - ответил Миша, всем своим видом показывая, что на фразе "наша машина не умеет строить графики" он будет стоять до конца.

- Короче говоря, - сказал начальник Сергею, - иди за стол к Мише и подробно объясни ему, как строить эти графики. Они нам нужны позарез.

С графиками Сергей и Миша возились три дня. Правда, Миша действительно врубился, и они вдвоем сделали программу построения довольно сложного графика с изменяющимся масштабом.

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

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

Чтобы избежать всех этих разговоров, Сергей перестал ходить в "ящик" и пару месяцев до защиты изучал графический режим Turbo Pascal на персональной XT-ке близкого друга, которая ему досталась от американского родственника.

Диплом он защитил на пятерку. Комиссия была погребена под различными программерскими терминами, начальник институтского вычислительного центра, который из уважения к Сергею также пришел на защиту, тащился от упоминаний языка Modula 2, о котором он много слышал, но никогда и в глаза не видел, а когда Сергей, распалившись, начал доказывать комиссии, что это полная глупость - писать программы для ПЗУ крылатых ракет на языке высокого уровня, когда тут явно нужно использовать только Assembler, - комиссия совсем заскучала и председатель объявил, что диплом уже защищен, потому что никаких вопросов у комиссии нет и быть не может. Так что, молодой человек, сказал председатель, вот вам пятерка - и вперед, шуруйте повышать обороноспособность Родины.

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

[ продолжение ]

Комментарии 44
Очень интересная глава получилась! Этот боевой путь Сергея (Алекса) заслуживает отдельно взятого рассказа. Но стоит ли его включать в финальную версию "Американской оперы"? Слишком уж специфичный текст. Люди, далёкие от программирования просто не поймут о чём речь. А большинство будущих читателей "бумажной" версии книги - отнюдь не программисты.
21.12.09 23:19
0
Redfield: Этот боевой путь Сергея (Алекса) заслуживает отдельно взятого рассказа. Но стоит ли его включать в финальную версию "Американской оперы"?





А я как раз именно так и думал поступить - убрать из повести и сделать отдельным рассказом. Просто выпущу, видимо, в том же издании, что и повесть. Но отдельно.
22.12.09 10:06
0
Да я не помню, как он назывался. На авиационном переулке.
21.10.09 08:42
0
Алекс, а этот загадочный ящик на Аэропорте после МАИ, часом не НИАС? Если да, то у нас очень похожие пути. :)
21.10.09 00:49
0
Эмм... Вообще-то в 90-е годы (а речь идет именно о них), на нашей СМ-4 стоял RSX-11-M Plus с компиляторами Fortran-4 и Fortran-77, Pascal и С. Ну бейсик разумеется. И уже было полным-полно головастых умных ребят, вовсю программирующих и на том, и на другом и на третьем. Предпочтение, впрочем, долго отдавалось Фортрану-77.
И это в обычном учебном институте, в МИЭМ. На ящиках (крупных) уже кое-где стояли запрещенные WAX/VMS.
Описанная картина характерна, наверно, скорее для начала-середины 80-х.
aag
19.05.09 16:23
0
aag: Вообще-то в 90-е годы (а речь идет именно о них)



Речь идет о 85-87 годах. 90-е - это уже диплом. В МАИ Фортран на СМ-4 не использовался, только Бейсик. По крайней мере до 90 года.
19.05.09 17:13
0
>> Господа, объясните молодому поколению, что такое "ящик", пожалуйста.

"Ящик" - это обычно секретный завод, работающий на оборонку. Ящиком он назывался, так как адрес его нигде не указывался, а почта к нему приходила на почтовый ящик по номеру.
12.05.09 11:29
0
С удовольствием прочитала. Спасибо!

Извиняюсь, но гораздо интереснее, чем про Игоря. :)
11.05.09 09:59
0
Алекс, а когда же будет следующая серия? Как-то без новой части в среду и неделя прошла не очень:)
08.05.09 23:46
0
Помню!

Как операционка по-русски ругалась...

Таск наме ис алреады ин усе...
08.05.09 19:25
0
В конце 80х... В конце 90х... А сейчас не зотите на фортране пописать? А ведь пишем... А интерфейс в С - так вообще песня.
08.05.09 17:51
0
СМ-4 мой первый компьютер :-)

К черту Игоря и Аллу. Давай про ЭВМ! :-)
07.05.09 22:40
0
to be continued??? :)
07.05.09 10:38
0
Господа, объясните молодому поколению, что такое "ящик", пожалуйста.
04.05.09 18:01
0
Можно вопрос? А "СМ-4" это что за зверь? СМ-1420 знаю, СМ-1402 тоже знаю. Вот модель самого терминала не помню за давностью лет, это оно?

Ну и про недоразвитость народа в программировании, я работал в СКБ одного ящика, так там народ достаточно продвинутый был, по крайней мере от слов "турбо паскаль" об стену себя не убивали.

А так зачОт! Спасибо, понастальгировал :)
Mad
02.05.09 14:30
0
Mad: Можно вопрос? А "СМ-4" это что за зверь? СМ-1420 знаю, СМ-1402 тоже знаю. Вот модель самого терминала не помню за давностью лет, это оно?

СМ-1...4 - СМ ЭВМ система малых ЭВМ, 16-ти разрядные вычислительные машины, выпускавшиеся в Cоветском Cоюзе в 80-х годах. СМ-1,2 цельнотянутые с HP, СМ-3,4 с PDP-11. СМ-4 выпускалась в Киеве (сам ездил заказывать) на НПО Электронмаш (так, кажется, называлось). Поработать, практически, не удалось - после установки и наладки грянула перестройка.

СМ-1420, кажется, дальнейшее развитие СМ-4, точнее, той же PDP-11.

Далее наши что-то тянули уже с VAX'ов.
03.05.09 00:28
0
Америкой не пахнет, Игорясика с Аллой нет - зато как душу греет

МАИ - это ты, МАИ - это мы, МАИ - это лучшие люди страны :)
01.05.09 22:56
0
Прям молодость вспомнил,диплом кстати был на "фортране".
30.04.09 15:19
0
Действительно, НОСТАЛЬГИЯ!

Я пришел в "ящик" в 84-ом после МАИ (2-й фак - ДЛА) В отделе СМ-3 (наша переделка DEC-овских машин), в соседнем отделе СМ-1 (переделка PDP). Стартовалась она с перфоленты, но уже были жесткие диски. Пластиковый серый футляр диаметром 50-60 см, весов в пару кг. Емкость сейчас уже не очень помню - что-то около 4 М.

Та же печать графиков звездочками, а потом еще круче символами /, \, |, в зависимости от направления графика.

Потом заказ крутейшей СМ-4 в Киеве. Потом покупка двух СМ-1810 (наша АТ). Чтобы запустить между платами вставлялись сложенные бумашки. Потом импортные ХТ без винчестера с 1 флопом. Запуск 9-ого AutoCad'а с двух дискет, попеременно заменяемых в дисководе.

Потом первая своя 386-я с 4-мя мегами 80 мег винчестер.

ЭТАПЫ БОЛЬШОГО ПУТИ!
30.04.09 10:40
0
Ностальгия пробила! Я проходил это года на три позже. Но отличалось все мелкими нюансами. Самыми существенными были: наличие в ящике графопостроителя, и объем я добивал не в программу, а в описание - кусками документации из автокада, которые можно было хоть как-то соотнести к проекту, таковых явно не хватало, так что некоторые места пришлось продублировать. В последствие куратор это заметил, чем нас сильно удивил, но докапываться не стал.

Правда есть еще один нюанс, наш проект таки поработал несколько лет в производстве. Чем я до сих пор слегка горжусь :)
30.04.09 00:16
0
А Фортран, кстати, пытался в середине 90-х пригодиться, ибо на нем куча математических библиотек написано было - и больше, на тот момент, ни на чем...
29.04.09 21:12
0
Alex Exler[/B]: дал Сергею неограниченное машинное время

Хехе, у меня тоже было неограниченное в любое время дня и ночи.
Моя программуська печатала на АЦПУ графику с полутонами (используя символы разной плотности и проходя при необходимости некоторые из них по нескольку раз). Знатные портреты получались... :)

[B]Sery Volk: А Фортран, кстати, пытался в середине 90-х пригодиться

В конце 80-х у нас весь отдел на нём считал...
01.05.09 03:01
0
Я вообще никогда не хвалю никого, но тут могу сказать, что получается очень достойная вещь ))
Cas
29.04.09 18:06
0
Cas: Я вообще никогда не хвалю никого, но тут могу сказать, что получается очень достойная вещь ))



Спасибо ;)
29.04.09 21:01
0
По классике вообще-то VAR = ЖАР (а не ВАР) и CONST = ЦОНСТ (а не КОНСТ). Хотя, конечно, эти несоответствия можно списать на "аналоги придумывал ушедший начальник машины, а его сознание страдало потерей контакта с окружающей действительностью, Сергею пришлось изрядно попотеть, перебирая кучу самых дурацких вариантов написания".
29.04.09 14:59
0
Alex Batishchev: По классике вообще-то VAR = ЖАР (а не ВАР) и CONST = ЦОНСТ (а не КОНСТ). Хотя, конечно, эти несоответствия можно списать на "аналоги придумывал ушедший начальник машины



Ну так, так все и было на самом деле ;)
29.04.09 20:20
0
Автобиография? :)
Cas
29.04.09 13:49
0
Cas:
Автобиография?



мне тоже так показалось ))
29.04.09 14:22
0
Cas: Автобиография?



Еще бы ;)
29.04.09 20:20
0
Описка:

Точнее, преподавали что-то древнее, вроде "Фортрана", который потом[/b] никогда и никому [b]потом не пригодился
29.04.09 11:39
0
Алекс, большое человеческое спасибо от программера со стажем!
Аж прямо как по новой пережил :)
ВХИЛЕ - это супер!
29.04.09 11:10
0
Grunisty:
Господа, объясните молодому поколению, что такое "ящик", пожалуйста.





Режимный или секретный обьект. Это лучше не "господам", а "товарищам" знать. Сам на таком практику проходил, правда, уже в 92-93-м.

White_Wolf: Алекс, большое человеческое спасибо от программера со стажем!

Аж прямо как по новой пережил

ВХИЛЕ - это супер!





Да, помню такое "чудо" в техникуме - болгарский "Изот"... Так и писать приходилось, правда, в нормальной перекодировке, без извращений...

100 фор и = 1 то 10

110 лет а[и] = ...

120 неьт и

Славные были денёчки. Спасибо, Алекс, что напомнил :).
04.05.09 21:53
0
White_Wolf:

ВХИЛЕ - это супер!



А как насчет ОТСЕРВИЗА (ОТХЕРВИЗЕ) - так у нас заочники именовали OTHERWISE в FoxPRO
06.05.09 11:34
0
Stils

Конечно лечится! Гильотиной!
29.04.09 09:48
0
Никогда не мог осилить описание языка и учебники по оному..

Это лечится? :)
29.04.09 09:11
0