Из истории АСУ в СССР

| рубрика: История | автор: chief_editor

Серия заметок пользователя под псевдонимом Самуил была опубликована в августе 2009 года на форуме портала еврейской истории. Воспоминания интересны именно своей субъективностью, связью с реальными событиями, ситуациями и людьми. Рассказ охватывает период с конца 1960-х до 1990-х годов. К сожалению, автор прервал свои мемуары и даже удалил большую часть текстов "по просьбе некоторых коллег, увидевших себя в легко идентифицируемых персонажах и не желающих такой идентификации"

001. Моя первая вычислительная машина

Моя первая машина случилась много раньше первой программы. Нетипично для людей нашего поколения, обычно сводивших знакомство с компьютерами (тогда их называли «ЭВМ») в студенческие годы, осваивая программирование. Причем, многие программы-то писали, сдавали их на счет, получали распечатки с результатами, а саму машину, бывало, и в глаза не видели. У меня сложилось иначе: летом 1966 года, помню, как раз начались каникулы, я — тогда еще мальчишка — пошел работать…

И сразу же отвлекусь в сторону. Живя на Западе, мы привыкли к тому, что подростки работают. В каникулы повсеместно, но и во время занятий — в вечерние часы. Сообразно со своей никакой еще квалификацией: везде, где надо что-то разносить, укладывать, убирать, помогать, стоять за кассой и т.д. Это — норма. В стране победившего социализма, в государстве рабочих и крестьян, где с утра до вечера воспевались радости труда, родители изо всех сил оберегали своих чад от этой самой радости. Причем, речь не об избалованных отпрысках партийно-советского начальства — такие на нашей задымленной, грохочущей привокзальной окраине и не водились, но о детях простых работяг, что населяли облупленные панельные пятиэтажки. Считалось нормой, когда до окончания школы, а фактически — до армии, здоровенные великовозрастные балбесы шлялись по улицам, изнывая от безделья. И если паренек шел работать — это был знак беды. Это означало, что отец-слесарь пьет беспробудно, а мать-уборщица не в состоянии сама поднять троих детей. Так что новость, что де сынок главного инженера стройтреста, по тамошним меркам — богатея, пошел работать, это… Это было воспринято соседями весьма неодобрительно: кто видел здесь свидетельство ненасытной еврейской жадности («даже сына не пожалел, погнал на заработки»), кто — коварный еврейский умысел пропихнуть сынка в ВУЗ, загодя готовя ему привилегированный «рабочий» статус, кто что еще, но какая-то еврейская хитрость обязательно должна была быть. И она таки была!

Отец был в ту пору увлечен идеей «строительства с колес». Это когда все конструкции и материалы, потребные на стройке сегодня и сейчас, именно сегодня и сейчас подвозятся. Ничего необычного, так в нормальных странах и строят. Но вспомним, как выглядела типичная советская стройка (фильм «Операция Ы»: «надо Федя, надо») — огромная территория, заваленная кирпичем и панелями, досками и стеклом, рубероидом, металлом, столяркой… Все это месяцами мокло, ржавело и гнило под открытым небом, буквально взывая к окрестному населению: «ну укради, укради же меня, пусти, наконец, в дело в своем гараже или на даче»… Так вот, отец переманил из Киева молодого, амбициозного кандидата наук и тот возглавил центр комплектации строительства, где установили первую в нашем городе вычислительную машину «Минск-22». Они приятельствовали, частенько встречались в неформальной обстановке — по выходным, на природе, так что я присутствовал и слушал, раскрыв рот. Это было время, когда компьютер казался чем-то фантастическим, а программист в глазах мальчишки недалеко отстоял от мага-волшебника. Только вышел и мгновенно стал сверхпопулярным «Понедельник начинается в субботу». И вот, оказывается, в получасе ходьбы от нашего дома стоит это чудо расчудесное. Понятно, как я туда рвался. Отец же говорил, что не знает, удастся ли мне поступить в институт и получить диплом, но уметь зарабатывать и кормить семью я обязан. А при нынешнем (т.е. тогдашнем) увлечении вычислительными машинами работа где-то рядом с ними может, пожалуй, кормить. Так что он договорится с начальником центра и меня возьмут туда на летние месяцы. Ну, а дальше — как себя проявишь…

И вот я попал в вычислительний центр (ВЦ). Занимались они тем, что сейчас называется логистика. К концу первой смены приходили отчеты за сегодня и заявки на завтра. Их сверяли с календарными планами, утрясали и формировали наряды. На ЭВМ расчитывали загрузку и маршруты автотранспорта и печатали путевые листы. Также печаталась куча репортов и (вот это интересно) эдакий наглядный отчет, который можно отнести к отдаленным предкам современной деловой графики: на барабанном скоростном принтере АЦПУ-128 (совершенно фантастическая по тем временам машина) выпечатывались диаграммы Ганта. Цвета, конечно, не было, но разными «по густоте» символами достигался зрительный эффект градаций серого. Много позже схожая работа оставшихся безымянными программеров-художников привела к появлению целого направления компьютерной живописи. Помните Мону Лизу, Чебурашку или портрет Эйнштейна на «АЦПУшной» распечатке? Вблизи видишь мешанину букв, цифр, точек, звездочек; отодвигаешь лист от себя и… магически проступает картина из филигранно подобранной мозаики знаков. Это ныне утраченное (как византийская мозаика) искусство расцвело в 70-е годы и погибло в 80-е с появлением матричных, а затем — струйных и лазерных принтеров (потом еще и цветных), которые позволяли распечатывать графические изображения (впоследствии — с фотографическим качеством). И все, прогресс технологии убил искусство — банальная история…

Итак, я стал работать на ВЦ мальчиком-куда-пошлют-подай-принеси и был готов там хоть полы мыть, только бы не изгнали меня в конце лета из обретенного рая. Освоил подготовку перфолент, делал сверку данных (сверхнуднейшая работа). И постепенно стал там своим, пришелся ко двору. Работа на ВЦ кипела во вторую смену, а доделывалась в третью (туда меня, как несовершеннолетнего, не ставили). Причин бросать работу с началом учебы, равно как и переходить в вечернюю школу, не было — я продолжал учиться в дневной. Но… очень быстро отдалился от одноклассников: они оставались детьми, просившими у родителей пятиалтынный на мороженное, а я уже был взрослым — получал аванс и получку. Поначалу меня оформили учеником с окладом в 30 рублей, потом я стал оператором подготовки данных и наконец — оператором ЭВМ. Это уже была карьера! К программированию меня, естественно, не подпускали, там колдовал сам начальник — Игорь Владимирович — с помощниками. Моя обязанность была запускать задачи, т.е. аккуратно вводить перфоленты, сматывать их, укладывать в коробки, туда же прилагать полученные распечатки (широкую алфавитно-цифровую печать АЦПУ-128 берегли, поэтому для всяких отладок использовалась «стрекоталка» — принтер, печатавший только цифры и еще пару значков на узкую ленту, наподобие кассового аппарата). Ну и конечно, для каждого прогона надо было установить магнитные ленты (лентоводов было восемь), причем не напутать, какую в какой, а в конце работы все аккуратнейшим образом снять и разложить по местам…

Магнитные ленты были самой примечательной особенностью машины «Минск-22» (самой эмоционально примечательной) и заслуживают отдельного параграфа. Это были очень толстые, очень неэластичные коричневые ленты шириной в четыре, а то и пять дюймов. Без бобин. Вы представляете себе, без бобин! Как же с ними работать? А вот как. В лентоводе были два кармана, открытых сверху, — как два невероятно глубоких стакана. Надо было ухватить пальцами конец туго смотанной ленты и бросить моток в один карман, затем конец ленты протиснуть между магнитными головками и встромить в другой карман. В процессе движения, а лента использовалась как устройство прямого (!) доступа, она перемещалась между карманами, укладываясь там прихотливыми волнами (передняя стенка кармана была стеклянной и можно было любоваться). А чтобы лента не проскользнула целиком в один из карманов, по концам ее обычным дыроколом делались отверстия. В лентоводе же стояли специальные лампочки и светодатчики, которые должны были (по идее конструктора) стопорить ленту в последний момент. Ну да, как же! Каждые пару часов в одном из лентоводов лента «просклизывала» в карман. Тут-то и начиналась потеха… Как мы знаем из великой русской литературы наш великий народ — великий мастер по преодолению препятствий, им же воздвигнутых. Итак, когда лента «просклизнула», надо прежде всего… успокоиться, привести себя в состояние полной философской отрешенности и созерцательности, ибо дело тебе предстоит долгое, как зимняя рыбалка. Метафора тут неслучайна: надо встать на специальную табуреточку (поскольку верх кармана выше твоих плеч, а руки не должны уставать) и взять в руки «удочку» — специально же изготовленный из сталистой проволоки гибкий двухметровый прут с крючком на конце. Ну… вперед! Запускаем удочку в карман. Помните, на конце ленты есть отверстие, проделанное дыроколом. Вот за это отверстие надо зацепить ленту крючком. Ерунда, говорите? Да только лента, она укладывается в кармане как ей заблагорассудится и вам очень повезло, если конец ее лежит сверху и вы его видите. Обычно же он заныривает куда-то вниз и надо этого прихотливо свернувшегося удавчика осторожно поглаживать-постукивать, чтобы кольца его легли как-то иначе — а вдруг кончик и высунется. И осторожно! На ленте ценнейшая информация — результаты трехчасового счета. Поцарапаешь, повредишь магнитный слой — амбец! А время меж тем тикает, а отчеты надо в трест отсылать… А ты стоишь на табуреточке и удочкой вверх-вниз, дерг-дерг, вверх-вниз, дерг-дерг… Вы представляете, чтó тут высказывалось в адрес несчастного конструктора этого чуда и его родственников по материнской линии? А вот и зря, кстати. Если нервничаешь, никогда не выудишь… Я был непревзойденный удильщик магнитных лент. Жаль искусство это не успело оформиться в вид спорта (ленты сняли с производства), а то завоевывал бы медали высшей пробы. Но и без медалей талант сей немало поспоспешествовал моему карьерному росту…

А между тем Игорь Владимирович начал еще преподавать в пединституте. В нашем ВЦ стали появляться его страждущие ученики со своими курсовыми. И тут я с удивлением обнаружил, что эти старшие (!) на три-четыре года студенты (!!) и, главное, студентки (!!!) обращаются ко мне с искательными улыбками. Что я в их глазах — местный бугор, авторитет, с легкостью щекающий их несчастные задания типа «отсортировать массив чисел, используя»… Та-а-ак! Сопливые одноклассницы были позабыты окончательно. Жизнь удалась!..

А тем временем стали монтировать вторую машину — новейшую, только начался выпуск — «Минск-32». Мне она сразу понравилась. Это был уже настоящий, серьезный мэйнфрейм: шесть нормальных лентоводов (ленты в бобинах, прощайте удочки!), перфокарточный ввод-вывод (по сравнению с перфолентой это колоссальный прогресс, оценить который может только тот, кто хорошенько надолбался с перфолентами). Конечно, скоростной АЦПУ, никаких «стрекоталок». Быстродействие, память 64 килослова (в слове 37 бит) — супер! И самое поразительное — магнитные барабаны (вот забыл, сколько их было штук). В конце 60-х и первой половине 70-х «Минск-32» был самой популярной машиной (вне академической и военной сфер), неприхотливой, на редкость удачной. В ней как будто был угадан тот максимальный уровень сложности, который возможен в массовом (и не военном) изделии советского хайтека. Но… поработать толком на этой симпатичной машине мне так и не довелось. Я заканчивал школу. Надо было пытаться поступать в институт. И поступать как «производственник», брать бумагу с работы, где я числился на «пролетарской» должности. Все это, по идее, должно было как-то ослаблять тяжкое бремя пятой графы…

Почему я так не поступил? Не знаю, по наитию. Я ведь закончил нормальную, не вечернюю школу, чего с «рабочей молодежью» не бывает. Думал, как же буду там доказывать, что я не верблюд? А ведь прицепятся, как пить дать. Да, ну его к лешему, прикинусь обычным школьником. Так и поступил в институт в Киеве, причем, на дневное отделение (чтоб увильнуть от солдатской службы в Советской Армии). И пришлось мне из родного ВЦ увольняться. И оказалась у меня на руках трудовая книжка, о которой в институте никто не знал. Но это уже совсем другая история…

002. Мои первые программы

Итак, проработав несколько лет и привыкнув дважды в месяц получать в кассе хоть небольшие, но деньги (и пусть бóльшую их часть сразу отдавал маме, но делал это по своей воле и чувствовал себя мужчиной), я стал студентом в столичном Киеве и в то же время как бы вернулся в детство. Поселился на раскладном кресле в проходной комнате у бабушки с дедом. Было тесно. Днем для занятий использовался обеденный стол, а на ночь я под столом раскладывал пресловутое кресло и акробатически туда заныривал, так что наружу торчала только голова и плечи. А еще у меня была своя полочка для книг… Ну да ладно, ерунда. Отец каждый месяц передавал деду какую-то сумму на мое пропитание и мне выдавал на мелкие расходы. Вот эта подзабытая уже жизнь на иждивении меня донельзя угнетала. Нужно было искать заработок. Но где? Обычное студенческое хождение на станцию разгружать вагоны было разовым приработком, шальными деньгами, которые тут же в той же компании пропивались. Не для меня. Вообще, уже тогда сформировалось стойкое убеждение, что если есть голова, то руками работать как-то некошерно. Не окупает себя. Это было время расцвета стройотрядов и кому же туда ездить, как ни студентам строительного факультета строительного института. Я не ездил ни разу…

Ну ладно, первый курс. Тяжело на нем потому, что идет дрессировка: научают трудиться тех, кто к этому способен, и отсеивают остальных. Я же был так вышколен на своем ВЦ, что маялся от избытка свободного времени. А для трудоголика нет мучения тяжче… И вот иду как-то мимо кафедры строительной механики и вижу на доске объявление, что дескать приглашаются желающие на факультатив по алгоритмическим языкам и программированию. Со строительной механикой студенты знакомились аж на третьем курсе (те, кто выживал после сопромата). А я — салага-первокурсник. Да ладно, думаю, что я теряю — погонят, так погонят. Постучался, зашел. Сидят немолодые (по моим тогдашним меркам) мужчины лет 25–27-ми. Аспиранты, как потом выяснилось. Я говорю: «так мол и так, хочу заниматься программированием» — «А что ты об этом деле знаешь?» — «Да вообще, немного знаю — отвечаю, — три года оператором ЭВМ проработал». Тут все головы ко мне повернулись и в глазах вижу явный интерес: «ну-ка, ну-ка расскажи подробно, где, на каких машинах, что умеешь?» Рассказываю. — «А про БЭСМ-6 слыхал?» — «Вот именно, что слыхал» — «А хочешь?» — «Ха, что за вопрос?» — «Слушай, на кой тебе этот факультатив. Нам тут оператор нужен»… В общем, выясняется, что лаборатория при кафедре арендует машинное время на единственном в Киеве суперкомьютере БЭСМ-6, который стоит в Институте Кибернетики. Понятно, что злобные киберы все дневное время себе забирают, а на ночь, чтоб машиной пользоваться, лаборатория должна выставлять собственного оператора. Ну и кто, не доцент же пойдет. Ясен пень, что аспирант. А они — люди солидные, семейные. Когда дома молодая жена, большой интерес в машинном зале ночи проводить в обнимку с «бармалеем» (это такая кликуха была у карточного перфоратора за утробное урчание, с которым он выплевывал из своего нутра перфокарты). Короче, если согласен, то сегодня в ночь выходим. На месте себя и покажешь. Условия такие: три ночи в неделю (тут они наврали малость — бывало и четыре, и пять, а в авралы — так и все семь, и с вечера пятницы безвылазно по утро понедельника), волонтером без оплаты (тут чистую правду сказали), но зато де — намекнули — перспективы открываются по части аспиратуры там, защиты (ага, у еврея, как же). Я был в восторге и… в ту же ночь начался мой роман с БЭСМ-6, длившийся пять лет — немалый кусок жизни. И если первые мои машины «Минск-22» и «-32» были как полудетские (платонические) влюбленности, то с этой — настоящая, серьезная, взрослая любовь, имевшая вполне ощутимые плоды: я стал профессиональным программистом и заработал кучу денег. Это как же, ведь волонтером работал? А вот так, расскажу. Но сперва — о самой машине.

Думаю, БЭСМ-6 — величайшее достижение советского компьютеростроения, лучшая машина, созданная за 40 лет этого самого -строения (от выпуска МЭСМ в 1951 и до 1991 — завершения советской истории), последний шедевр академика С.А.Лебедева. Кто входил в машинный зал (именно зал — метров 200, не меньше), сразу ощущал — да, это суперкомпьютер! Огромные, уходящие вдаль, теряющиеся в затемненных глубинах зала ряды серых шкафов. Линейка лентоводов, их было штук 16, если не больше, — ленты располагались вертикально друг над другом (уникальный дизайн), так что шкафы были узкие и таких вот узких на беглый взгляд было столько, что крайние сливались, как сливаются лица солдат в шеренге. А за лентоводами в полумраке тяжко гудят магнитные барабаны на массивных чугунных станинах и ты физически ощущаешь их чудовищную энергию (к слову, много позже был свидетелем, как со шпинделя сорвался магнитный диск, который супротив барабана, что велосипед против «харлея»; так вот, этот диск прорвал, будто картонные, три шлакоблоковые перегородки, покрушил по пути шкафы с бумагами, ворвался в бухгалтерию и там наполовину вгрызся в кирпичную стену — счастье, что случилось это в обеденный перерыв и обошлось без жертв)… У входа в зал — устройства ввода-вывода. И сколько же их! Для перфокарт, для перфолент. Два барабанных принтера (АЦПУ) молотят беспрерывно, на глазах тают толстенные пачки белой фальцованной бумаги, складываясь в приемный поддон уже отпечатанными… А посредине — центральный пульт управления: из четырех секций, состыкованных под углом и как бы обнимающих оператора полукругом. На пульте — тысячи мигающих светодиодов, индицирующих состояние ячеек памяти, регистров и т.д. (кстати, эти лампочки были набиты столь плотно, без зазоров, что образовывали гигантский, в несколько квадратных метров, экран — как на стадионе — и на этом экране, загоняя в соответствующие ячейки нужные значения, умельцы выводили движущиеся картинки: вот вино льется из бутылки, наполняя бокал, потом из бокала в рот или вот лунный модуль отделяется от корабля и садится на Луну; если не ошибаюсь, первые интерактивные игры были сделаны именно с визуализацией на центральном пульте БЭСМ-6 — еще одна забытая страничка компьютерной истории).

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

Конфигурация машины постоянно наращивалась. Поначалу памяти было 32 килослова (по 48 бит), потом ее учетверили. Где-то, кажется, в 1970 году появилась ОС «Диспак» и к машине подключили дисплеи Videoton — маленькие такие, аккуратненькие, показывали всего 16 строк текста. Всего?! Это была подлинная революция в общении с компьютером — программист сидел за экраном, правил программу, не сходя с места отправлял на отладку-счет и на экране же видел результаты… Вообще, машина была на удивление современная. Судите сами: виртуальная память страничной организации со своппингом на барабаны, мультизадачность, защита памяти, конвейеризация… Ну все, все, остановился с техническими подробностями…

Итак, я стал работать ночным оператором на БЭСМ-6. Вечером заходил в лабораторию и забирал задания: колоды перфокарт и ленты. Моя задача была в том, чтобы как можно оптимальнее спакетировать эти задания: совместить, к примеру, долгий расчет с серией коротких отладочных прогонов, приняв во внимание кому сколько потребно лентоводов. Планированием пакетов занимался и сам компьютер, но с человеком ему не совладать: из нормативных восьми часов счета я неизменно «натирал» не меньше полутора в свое личное, безраздельное пользование. Такой себе многотонный персональный компьютер получался. И вот это «свое» время я тратил на освоение программирования. А даже если б и не хотел осваивать — пришлось бы. Аспиранты давали программы на отладку и говорили: «ну, ты там глянь, чего-куда, если что не так». Действительно, ошибся человек в пробивке карты, не ту букву ввел или там запятую пропустил. Формально я должен был распечатку с опечаткой забрать и утром страдальцу вернуть — все, его проблемы. Но что я, не могу тут же подправить и целые сутки (до следующей ночи) человеку сэкономить? И иметь, как результат, с ним хорошие отношения? Понятно, как я поступал — старался помочь, как мог. А чтобы мочь — штудировал ФОРТРАН, первый мой язык программирования. В ту пору еще и книжек по нему не было, мне вручили самодельный том с отвратительно «отрэмленной» (помните этот советский ксерокс?) инструкцией по CERN-FORTRAN. Чуть позже появилась книжка Мак-Кракена и Дорна «Численные методы и программирование на ФОРТРАНе». В коричневом переплете. Она до сих пор со мной — сорок лет. Всего-то. Конечно, давно ее уже не читаю, но берегу как память…

Первая программа, которую не писал, но дописывал, был популярный в то время «наборщик» (программное имя «CONSUM»). Это была программа форматирования текстов, набираемых на перфокартах. Первая позиция карты резервировалась для управляющего символа. Осталось в памяти: ‘I’ — начать абзац, ‘C’ — центрировать строку, ну и так далее. Уже в те годы программа интенсивно использовалась для подготовки разных руководств и инструкций. Хотя на тогдашних принтерах был только один регистр (прописных) букв и тексты получались не шибко красивыми, но зато не было в машинных залах удушающего гэбистского контроля за подготовкой и (в особенности) копированием документов. Ведь самый невинный технический текст размножить без санкции «товарища майора» можно было только подпольно, за бутылку и с определенным риском. А на компьютере — печатай себе, кто тебя проверит. (К слову: вот ведь что интересно. Знали, знали ведь гэбнюки, что народ в машинных залах на принтерах не только инструкции по программам, но и Высоцкого, и Стругацких, и Мандельштама с Ахматовой, и — страшно вымолвить — Солженицына печатает. Знали! А ничего, вот ничегошеньки поделать с этим не могли. Странно. С машбюро, с РЭМами, со светокопировками — без проблем: железная дверь и марш за разрешением в первый отдел. А с компьютерами как? Железную дверь поставить, шмонать на выходе? Лейтенанта рядом с каждым принтером посадить? Вроде и можно, а вот — хрен! Где-то читал, что именно компьютер (и особенно — персональный) похоронил Советский Союз. Что-то в этом есть)… Так вот, сперва заказали мне встромить в наборщик переносы слов по правилам русской грамматики, каковой алгоритм имелся, но написанный на АЛГОЛе. Справился. Потом добавил туда полноценную подсистему табличного форматирования, обрамление страниц рамками (по стандарту ЕСКД) и наконец — режим двухпроходной печати на листе по две страницы и с двух сторон так, чтобы после фальцовки-разрезания получалась книжечка…

После «наборщика» ученичество мое кончилось. Я получил для изучения опять же самодельную, отпечатанную на машинке, со вписанными от руки формулами, книгу Зенкевича «Метод конечных элементов» (изумительная по простоте, доступности изложения книга!), которую надлежало проштудировать и включиться в основную работу лаборатории. Проштудировал, что очень помогло в учебе: фатальный для многих, зловещий «Сопромат» Беляева читался после Зенкевича без особых проблем. И в основную работу включился, честно писал свои кусочки для разрабатываемой в лаборатории большой системы прочностного анализа. Честно, но… без фанатизма. Во-первых, понимал, что «хоть гопки пляши», а в аспирантуру меня не пропустят. А во-вторых, протопталась к тому времени тропинка, чтоб деньги зарабатывать. И немалые деньги.

Почти весь первый курс я проучился, будучи единственным евреем на потоке. Как вдруг появился (по переводу) соплеменник. Мы сразу друг друга заметили и подружились. Он был старше меня, закончил техникум, поработал в Киеве в проектных конторах, поступил (киевлянин) в институт в другом городе и вот — перевелся, наконец, домой (обычная история). Намеревался он немедля начинать работать. Стипендия ему (как и мне) хотя бы и при круглых пятерках не полагалась — у нас в институте она назначалась не по успеваемости, а по «социальной справедливости»: детям рабочих и селян — да, детям инженеров и прочих интеллигентов — фиг. Впрочем, хоть бы и была — как на нее прожить взрослому парню? И мне уже мое иждивенчество в печенках сидело. Тут мы сразу пришли к согласию. Вопрос, где? А там, где он раньше работал, в расчетном отделе считать колонны, фундаменты, фермы, подкрановые балки. Работа эта сдельная, оплата от числа «форматок» (листов, заполненных формализованной записью последовательности расчета). Вычисления, естественно, делаются на арифмометре или на клавишной вычислительной машинке — это был тогда в большинстве киевских проектных контор самый передовой рубеж, cutting edge, последний писк моды. (Какие там компьютеры? На весь город — десяток наберется). Ага-а-а! В голове у меня начал вырисовываться бизнес-план… Проблема только, как устраиваться на работу. У него-то, у товарища, есть родственница домохозяйка, которая, чтобы стаж ей тикал, готова свою книжку положить, а вот как тебе? Да без проблем — у меня дома лежит собственная трудовая! Немая сцена…

Тут надобно бы пояснить молодым читателям, что все мы в совчине были государственными рабами. Когда приходил человек на первую свою работу, на него заводилась трудовая книжка, где в дальнейшем фиксировались все места его службы, должности, квалификация, награды и взыскания — все! Хранилась она в отделе кадров. При увольнении выдавалась на руки, при поступлении на новую работы — изымалась снова. И так — пожизненно, до выхода на пенсию. Что до студентов, то кто поступал в институт, успев поработать, тот сдавал трудовую в канцелярию и получал ее по окончанию учебы. Наличие-отсутствие книжки у студента тщательно фиксировалось и об этом затем сообщалось в отдел кадров предприятия, куда он «распределялся». Таким образом, без трудовой поступить на работу можно было только один раз в жизни — в самый первый раз. Завести себе две книжки было практически невозможно. А я вот, на тебе — взял, да завел. То есть, покамест припрятал, утаил свою и вовсю использовал, пока учился. А как закончил институт, на «законном основании» получил вторую. Но об этом позже. Осталось объяснить, к чему все ухищрения. А к тому, что если ты хочешь подрабатывать где-то, принеси с первой работы справку, что дескать знают и не возражают. Однако, инженерам и на таких условиях «совместительство» было запрещено. Студенту дневного курса — сторожем можно, а расчетчиком — фиг. Заботилась о нас родина, чтоб ненароком лишнюю копейку не заработали. Точнее, копейку-то ладно, а рубль — низззя! Потому что ей не просто рабы были нужны, а нищие рабы…

Ну вот, устроились мы оба расчетчиками со сдельной оплатой и вскоре заделались героями-стахановцами. Считали больше и качественнее всех остальных. А работала наша маленькая фирма вот как: мой товарищ ведал контактами с клиентом, набирал заказы. Он же, лучше меня разбираясь в строительной механике и имея опыт расчетов, делал постановки задач, четко описывал алгоритмы. Я же тихонечко их программировал, а потом прогонял на своем персональном суперкомпьютере БЭСМ-6. Программы эти были странноватые: они имитировали ручной счет, т.е. выводили на печать все промежуточные результаты, как если бы считал человек. Только человек — опытный расчетчик — пыхтел дня три, а я вводил исходные цифры и шел вынимать из принтера распечатку — на круг три минуты. Оставалось переписать с распечатки на форматки и получить деньги. Впрочем, со временем в фирме появились две симпатичные сотрудницы, которые аккуратно переписывали все округлым девичьим почерком, т.е. каждый занимался своим делом. Фирма процветала — деньги в кармане всегда были и студенческие годы прошли вкусно… А что потом? Товарищ мой как-то уверовал, что нас оставят в аспирантуре (при наших-то «заслугах», рекомендациях кафедры, дипломах всесоюзных студенческих научных сборищ). И когда этого не случилось — сильно осерчал и свалил в Штаты. Мне свалить не удалось, так как загребли на военную службу, где без всякой моей вины наградили первой степени допуском (что хуже, чем сифилисом). Пришлось мне, по возвращении, выстраивать бизнес заново — на двух моих трудовых книжках и совсем с другими компьютерами. Начиналась эпоха ЕС ЭВМ. Но это уже совсем другая история…

003. Семидесятые. ЕС ЭВМ

Кажется, ни одна техническая инновация в Советском Союзе не породила такого дружного неприятия специалистов, как внедрение ЕС ЭВМ. Осуждали, ругали и проклинали «еэски» все: теоретики и практики, хакеры и пахари, эстетствующие программеры и запойные электронщики, люди самых разных взглядов — от патриотов-почвенников до низкопоклонствующих западников. При столь редком единодушии столь разных людей аргументы их неприятия были весьма разнообразны: от версии, что это де диверсия ЦРУ и Моссада, с целью загубить замечательные отечественные разработки, насильственно насадить в стране устаревшую западной технику и тем усугубить ее отставание от Запада, до версии, что это де очередная глупость партийных чинуш, науськанных бездарными но коварными интриганами из Академии наук и ГКНТ, имеющими целью загубить замечательные разработки их талантливых но наивных оппонентов с помощью насильственного насаждения в стране устаревшей западной техники, хотя бы это и усугубит ее отставание от Запада…

А ведь как хорошо, идиллически начиналось. Весть, что разворачивается массовый выпуск мэйнфреймов для деловых приложений на базе тогда самой популярной архитектуры IBM/360 в кругах, как говорится, «широкой программистской общественности» был встречен с энтузиазмом. Тут я могу быть свидетелем. Не знаю, какие соображения были у обитателей высоких кабинетов, но наш брат программер воспринимал это просто: больше машин — больше задач — больше спрос на мои услуги. Помню книжку Джермейна «Программирование на IBM/360». Она вышла в 1971 году каким-то огромным тиражем, но все равно — всем не хватило. За книгой гонялись, ею спекулировали с немалым наваром. Мне повезло купить и я читал с интересом, постепенно переходящим в восторг. Толстенный том был хорошо написан и переведен, содержал массу технических сведений и кроме того, вырисовывал целостную картину — по мере вникания в цели и концепции проекта архитектура IBM/360 все больше и больше поражала своей мощью, универсальностью, совершенством и элегантностью. То, что машинный ряд собирались без затей заимствовать (цельнодрать), никаких нареканий не вызывало. Наоборот, как раз в то время удалась аналогичная затея с автомобилями — вышла в свет легендарная «копейка», которая смотрелась… помните как — на фоне «москвичей» и «горбатых запорожцев». Так же смотрелось семейство 360 на фоне «минсков» и «уралов» — как роскошный американский кадиллак. Не просто лучше по всем статьям, но… небо и земля. Сравнение с БЭСМ-6 было некорректным: там массовые универсальные ЭВМ эконом-класса, тут числодробилка (number cruncher) — суперкомпьютер, заточенный под скоростные математические расчеты и стоящий бешеных денег. Однако, даже при столь некорректном сравнении было видно, что большинство архитектурных «наворотов» БЭСМа в новейших на тот момент машинах IBM/370 (семейство 360 было и впрямь слегка устаревшим) реализовано с избытком. В общем, фанфары играли… играли… играли… играли… игра-а-а-а…

Только в 1973 мне довелось увидеть первую машину ЕС-1020. И она… не работала. Ее налаживали, налаживали, налаживали… Наконец, к концу года заработала с горем пополам и оказалось, что машина по памяти, быстродействию, периферии слабее, чем «Минск-32», который уже лет пять как скромно трудился себе в соседнем зале. И так повсюду. Обещанные массовые машины действительно поступали туда, где еще вчера обладание настоящей ЭВМ было несбыточной мечтой: в рядовые (не оборонные) проектные институты, КБ и НИИ, в областные статуправления, на предприятия министерств, не входящих в пресловутую «девятку». Однако, качество техники было ужасающим, она налаживались месяцами и требовала неустанных усилий для поддержания работы. Конечно, были исключения. Кое-каким счастливчикам перепадали немецкие 1040 и польские 1032. Которые работали! Если с немецкой техникой реальность соответствовала ожиданиям — от аккуратиста немца халтуры и не ждали, то от гжечного пана поляка, от его маленького славянского Парижа (Варшавы) можно было ожидать красивых шмоток, журналов мод, всего такого кружевного-галантерейного, но чтоб хороших компьютеров… Однако, добротная продукция братьев-демократов была каплей в море бессовестного брака, где особенной наглостью отличались «тридцатки» — творения армянских мастеров. Те попросту приходили без трети комплектующих. Шутили, что их «разливают» в подсобном цеху Ереванского коньячного завода. Шутки шутками, но первоначальный энтузиазм и большие ожидания мало-помалу сменялись раздражением и неприязнья к «этой затее». Затея массовой компьютеризации явно пробуксовывала.

Честно говоря, неверно будет всех собак вешать на заводчан. Совершенно неготовой оказалась инфраструктура. Сплошь и рядом бывало, что в организацию приходит ЭВМ, а машинный зал под нее еще только строится. Контейнеры с оборудованием, стоящие во дворе под дождем и снегом — отнюдь не редкая картина. По сходному делу, кстати, мой отец был пропечатан аж в «Правде». К ним вот так же привезли новую машину, а помещения вычислительного центра не закончены. На улице — январская лютая стужа. Оставить там — загубить миллионную технику. Отец распорядился очистить «ленинскую комнату» в рабочем общежитии от гипсового идолища и престола со святыми дарами (сиречь, почетными грамотками и вымпелами), от столов, застеленных тяжелыми бархатными скатертями, на которых монтажники и крановщицы предавались несуществующему в советской стране сексу. Все это убрали, а в святилище затащили ящики. Что тут началось… Обиженные обитатели общежития стукнули в газету, приехал корреспондент и с гневным пафосом рассказал читателям страны, как в славном украинском городе славные украинские парни и дивчины — строители комунизма — придя в общежитие после героической трудовой вахты шли в ленинскую комнату трах… хм… конспектировать «эту… как ее… переписку Энгельса с этим… как его — дьявола — с Каутским». Но главный инженер такой-то, ради презренных железок, сорвал регулярные занятия по идейно-нравственному воспитанию трудового советского быдла… Увы, находятся еще политически близорукие партийные руководители, не сознающие всей важности правильной расстановки инженерных кадров в духе решений хернадцатого съезда партии… Передовой рабочий, парторг бетономешалки Остап Петрович Переперденко ставит вопрос по-пролетарски, ребром: «На кого работаешь, Исакович?»… Прокуратура, проверки, комиссии. А бросил бы под снегом, ни одна собака бы не тявкнула…

Неготовность сказалась и в острой нехватке специалистов — электронщиков и механиков, программистов и постановщиков задач, технологов и операторов. Спешно созданные факультеты ИВТ и АСУ выпустили первых питомцев лишь к середине десятилетия. И кого? Зеленых новичков с нулевым опытом. При таком раскладе тертые программеры были нарасхват и я не сильно переживал насчет работы… Меж тем заканчивалась моя учеба. В отличии от своего друга, я не питал иллюзий насчет аспирантуры. Оставить меня в лаборатории инженером не могли — не было «ставки». Так что, расставание с БЭСМ-6 было неизбежным. Да и наш маленький бизнес тоже подходил к логическому завершению — в проектные конторы со скрипом, но стали поступать компьютеры. Руководители расчетных секторов становились начальниками отделов автоматизации проектирования. Наш многолетний клиент и благодетель не был исключением. Шила в мешке не утаишь — он давно знал, что мы считаем на машине. Теперь это обстоятельство сильно его вдохновляло, он жаждал заполучить нас вместе с уже готовыми (!) программами. Что ж, ему карьера, нам деньги — это была честная сделка. Так что, я продолжил у них числиться, только вместо расчетчика, стал техником-программистом. По распределению же попал в совершенно замечательную фирму (маленькое КБ и при нем опытное производство), куда никто из сокурсников не пожелал идти: на краю города, принадлежит министерству сельского хозяйства (!) и не сулит никаких карьерных перспектив. Там я встретил прекрасный коллектив, на треть состоящий из инвалидов пятой графы, на другую треть — крепко пьющих, а на третью — заядлых лодочников и яхтсменов (которых удерживало там расположение: на берегу Днепра, аккурат рядом с эллингами киевского яхт-клуба). Разумеется, приведенная классификация не совсем точна; было там немало личностей, входивших сразу в две и даже во все три вышеуказанные категории. Но программист я там оказался один и мне выдали карт-бланш. Что делать? Автоматизировать все — от прочностных расчетов до бухгалтерии… Только приступил к делу, как меня загребли под красные знамена.

Армия — период жизни колоритный, но совершенно не относящийся к теме рассказа. Поэтому, кратко: ушел — вернулся. Туда же, на ту же работу, к тем же людям (только с другом своим попрощался на перроне у вагона Киев-Чоп, как нам тогда казалось — навсегда)… Пока я служил, с машинами полегчало — стали выпускать более-менее приличные ЕС-1022 и 1033. И еще — мою любимицу М4030. Которая вообще-то к ЕС отношения не имела, проходила по разряду управляющих машин, но поскольку была клоном немецкого мэйнфрейма Siemens BS2000, который в свою очередь был командно-совместим с IBM/360, то все ЕСовские программы на ней благополучно шли. А достоинство у нее было одно — пахала как трактор… Ну вот, вернулся из армии и продолжил трудиться. На двух работах. И… даже не знаю, что еще добавить. Это в юности все такое яркое, выпуклое и каждый день — новое. А потом — работа, заботы, работа, заботы, работа…

Расскажу о языках ЕС ЭВМ. Как все «старики», пришедшие из мира научных компьютеров, я продолжал писать на ФОРТРАНе. Впрочем, в те времена было еще немало по-настоящему (в моих глазах) старых (под и за сорок) программистов, признававших только и исключительно машинный язык (ассемблер). Великая битва между благородными ревнителями чистоты и строгости священнописания в кодах и вульгарными расточителями, думавшими лишь о собственном удобстве и скорости программирования (на высокоуровневых языках) и нисколько не озабоченными сверхэкономным распределением драгоценных ячеек памяти, эта идеологическая битва была к тому времени с треском пуританами проиграна. Ввиду того, хотя бы, что давно уже не драгоценная память становилась все дешевле и все больше, а вот труд человека не дешевел — даже в Союзе — и мозгов у него тоже не прибавлялось. Но как остатки разбитой, но не сдавшейся великой армии, как несгибаемые ревнители истинной веры, предпочитающие костер троеперстию, тут и там попадались чудаки, готовые уволиться, но не оскверниться ФОРТРАНом, КОБОЛом или особо ненавистным им кудряво-барочным ПЛ/1. На самом деле, для пишущего на ассемблере всегда найдется работа, например, разрабатывать драйверы устройств. Однако, вид умного, бесспорно заслуженного ветерана, маниакально-каллиграфически выписывающего «в кодах» программу печати какой-нибудь бухгалтерской ведомости, которая на КОБОЛе клепалась за полчаса, вид этот внушал жалость. Счастье их, что в Союзе увольняли только за совсем уж беспробудное пьянство (и за «политику»), так что встретить сих курьезных персонажей можно было аж до последних лет советской истории.

ФОРТРАН — прекрасный язык, идеально заточенный под вычислительные задачи. Я работал на нем сорок лет назад и кто поверит, что вот сейчас, в данную минуту я на одном экране пишу вот эти самые воспоминания, а на другом экране открыт текст ФОРТРАН-программы, которую правлю по просьбе клиента… Однако, помимо инженерных расчетов мне надо было обслуживать бухгалтерию и плановый отдел, где применение ФОРТРАНа становилось крайне неудобным и неэффективным. В поисках подходящего инструмента я познакомился с великим творением легендарного американского адмирала “Amazing Grace” (Grace Hopper), в память о которой плавает по волнам эскадренный миноносец Тихоокеанского флота США “USS Hopper”. Конечно, я говорю о КОБОЛе. Подобно ФОРТРАНу, этот язык идеально заточен под свою проблемную область (что даже в названии отражено: COmmon Business Oriented Language — COBOL). В мире языков программирования КОБОЛ занимает то же место, что китайский среди языков человеческих, — он самый распространенный. На нем написаны миллионы программ, сотни миллиардов строк кода. И это заслуженно: главные принципы языка, гениально воплощенные Грейс Хоппер, — самодокументируемость и расширяемость — актуальны по сей день и по сей день лучше всего реализованы… в КОБОЛе. В нем немало архаичных, наивных черт — ведь язык создан полвека назад. Над КОБОЛом всегда потешались за его заумное многословие. Однако, столь же заумно многословен язык юридических документов. У них, у этих языков, много общего — оба призваны максимально четко описывать (не кодировать и не выражать формулами) сложные взаимоотношения (людей ли, объектов программ). Тексты на обоих могут читаться, пусть и с трудом, как тексты на английском языке. Почему же о КОБОЛе так мало говорят сейчас, почему молодежь его не знает? Моя версия такова: по той же причине, по какой сейчас не носят плиссированные юбки или рукавчики-фонарики — вышел из моды. Но бывает, что мода возвращается (это я не только о юбках)…

И еще об одном языке. Неудачном. Сошедшем со сцены. Но это была великая неудача, достойная уважительного упоминания. Я говорю о ПЛ/1. В начале 60-х, реализуя амбициозных проект «компьютеров на все случаи жизни» (название System/360 означало 360 градусов, т.е. полный круг) фирма IBM решила создать и язык на все случаи, назвав его скромно Programming Language One (PL/1). Цель была благородная: чем изучать два языка, один для научных и инженерных расчетов (FORTRAN), другой для бизнес-приложений (COBOL), программист мог бы пользоваться одним универсальным. Самое поразительное, что столь грандиозный замысел был-таки реализован. Язык получился сверхсложным и громоздким, что обычно называют причиной его неуспеха и раннего забвения. Мне думается, причина не в этом, а глубже — в психологии человека, в громадном различии двух миров — науки и бизнеса. Программист, моделируя маленькие фрагментики того или иного мира, думает на языке того или иного мира, а пишет — на языке программирования. Ему тем легче работается, чем меньше разрыв между двумя языками (каковой он преодолевает в своей голове; по сути — труд переводчика). А тут, в попытке совместить несовместимое, смешали в одной тарелке торт и огурец. Ну так он, закусывая водку, выковыривает ломтики огурца, а налив стакан чая, — кусочки торта. То есть, вместо двух языков использует два диалекта одного: что в лоб, что по лбу, да только и огурец подслащен, и торт подсолен… Так или иначе, в 70-е годы ПЛ/1 был еще очень популярен, его преподавали в институтах и широко применяли. Мне он был не шибко нужен. Однако, в конце десятилетия, уже на новой работе, пришлось ковыряться в чужих программах, на нем написанных… Впрочем, по порядку.

Я трудился себе и до 1979 года все шло хорошо. А тут как-то разом разладились. Мой благодетель, для которого десять лет назад стал делать якобы ручные расчеты, был уже замдиректора. По старой памяти он ко мне благоволил, но в отделе автоматизации образовалась теперь чертова прорва начальников. И мой «особый» независимый статус, а главное — свободный график посещения работы новоиспеченных бугров сильно напрягали. Главный же босс сидел слишком высоко, чтоб меня отмазывать, да и полезность моя для него, прямо скажем, поуменьшилась… И в замечательном конструкторском бюро на берегу Днепра тоже пошли нелады. Новый секретарь парторганизации, засланный к нам из райкома, крепко меня невзлюбил и решил извести. Не меня одного: вскоре став директором, он лет за пять сделал в конторе полный «юденфрай». Но начать решил с меня… Так вот, звонит мне начальник отдела кадров: «Зайди». (Он, напротив, душевный был дядька. Интересно, однако: везде, где я работал, парторги были редкостными гнидами, а кадровики — порядочными людьми, насколько это возможно на такой говенной должности). Я зашел, он говорит: «Прошла информация, что ты на двух работах работаешь. Смотри, может плохо кончиться. Завязывай». Я не выдержал: «Да что ж это за блядство! Я что, ворую? Вред наношу? Вкалываю как карла, чтоб семью кормить. Честно же зарабатываю! Кому от этого плохо?» Он: «Ты чего от меня хочешь? Сочувствия? Сочувствую. Ну и?» Я говорю: «Посоветуйте». Он: «Совет простой — ищи другое место, здесь тебе житья не дадут» — парторга прямо не назвал, но я понял, откуда ветер дует — «И с той, второй своей работой завязывай, давай»… Невдолге прихожу на ту работу, а микроначальничек (без году неделя) начинает канючить: вот де не являюсь как все к 9-ти утра, пора этому конец положить. «Действительно, пора» — отвечаю. Положил… заявление. Забрал и припрятал ту, первую, книжку. Десять лет она меня кормила, но дальше продолжать становилось опасно. И сразу же я почувствовал, что значит жить на одну зарплату…

Как вдруг (не раз со мной бывало вот такое «как вдруг») звонит приятель: «Слушай, не хочешь у нас лекции почитать?» Я хотел, причем, на любую тему, хоть по византийской истории. Оказалось, все-таки, по ОС ЕС. «Всегда готов!» Лекции инженерам читать дозволялось. Оплата через общество «Знание», все законно. Читаю… Прихожу за деньгами — выдают половину оговоренной суммы. «Что такое?» — «А это новая инициатива. Все лекторы перечисляют половину гонорара в Фонд Мира, на поддержку борющегося народа»… Уж не помню, кто там из троглодитов о ту пору за мир боролся. Ну, что ты будешь делать? Говорю ребятам: «Не выйдет дальше лекции продолжать: раздевают, суки» — «Да ладно» — отвечают — «У нас к тебе другое предложение. Давай к нам в наладку. Работа артельная, ставка плюс командировочные, да премии за срочность-срачность, за то, за се, да заказчик на объекте обязательно чего-то сверх плана захочет и налом оплатит. По командировкам мотаться, конечно, но… жить можно» Я подумал и пошел…

Работа в «наладке», вечные мотания по заводам, промышленная автоматизация (АСУ ТП, как тогда говорили) — это другой образ жизни, другой круг общения, другой мир. Естественно, что другие компьютеры, другие задачи, другие языки и системы разработки. Но покамест я должен был заканчивать старые проекты, унаследованные от предшественника. Что, кто-то подумал, что меня пригласили, да на немалые (по советским меркам) деньги за мои красивые глаза или за хорошо прочитанные лекции? Завал у них случился, понадобился золотарь дерьмо разгребать. Вот эти-то, унаследованные, проекты были ориентированы на ЕС ЭВМ и я с ними года два проваландался. Так что, в последний раз зашел в ЕСовский машинный зал в 1981 году. И там стояла все та же ЕС-1033…

004. ЕС ЭВМ — pro et contra

Итак, в начале 80-х продолжали работать все те же ЕС ЭВМ, основанные на 360-й архитектуре, которые были заявлены десятью годами раньше. Тогда собирались за пару-тройку лет наладить выпуск этих «бюджетных» моделей, а затем, набив руку, быстро перейти к старшим моделям архитектуры семидесятых годов — 370. Стратегическая цель была: ликвидировать за десятилетие семидесятых отставание от Запада, существенно обозначившееся в шестидесятые годы. Давайте разберемся, что получилось. Но для начала определимся с «архитектурами», всеми этими магическими кодами 360, 370…

Надо понимать, что «новизна» архитектуры — на самоцель, это не модный фасон платья. Легендарный Gene Amdahl и его инженеры проектировали System/360 в начале 60-х, а первый компьютер этого ряда вышел в свет в 1964 году. Это была подлинная революция в компьютерном мире, но… в компьютерном мире время спрессовано донельзя и десятилетие есть целая эпоха, век. Уже в 1970 году IBM анонсировала архитектурного наследника — System/370. Почему? В 360-х машинах не поддерживалась т.н. виртуальная память. Специалисты знают, что это, другим же нет нужды забивать голову: расскажу, к чему это приводило. На таких машинах крайне трудно, да практически невозможно организовать мультиобработку, т.е. одновременное выполнение разных программ, чтоб они эффективно разделяли ресурсы компьютера и не мешали друг другу. Если этого нет, то плакали все идеи (очень неглупые, кстати) о создании вычислительных центров коллективного пользования (ВЦКП). Без этой возможности телеобработка, т.е. доступ к машине многих пользователей напрямую с помощью дисплеев, становится тоже практически нереальной (можно было пытаться делать одну монолитную программу, работающую со многими пользователями, но на практике это выливалось в такой геморрой, что подобных программ самыми героическими усилиями было создано очень мало). Итак, машины System/360 (и их архитектурные клоны ЕС ряда 1) можно было использовать в небольших организациях, для автоматизации уровня отдела, фактически — как мини-компьютеры. Что тоже было полезно, нужно и замечательно, так что сама IBM продолжала выпускать 360-ки аж до 1977 года, пока их, наконец, не вытеснили «настояшие» мини-компьютеры, стоившие существенно дешевле. Для автоматизации же уровня предприятия, тем паче — для центров коллективного пользования применялись все более и более мощные мэйнфреймы 370-й архитектуры (которая сама постоянно пополнялась новыми свойствами, отвечавшими потребностям рынка — вычисления повышенной точности, расширение адресного пространства, поддержка виртуальных машин). Это на проклятом Западе. А что в Союзе?

А в Союзе с горем пополам лет за пять научились делать «бюджетные» модели 360-й архитектуры, т.е. большие мини-ЭВМ для небольших рабочих групп. И все, дальше затык. Десятилетие спустя настоящих мэйнфреймов (главной цели всей затеи) так и не появилось. То, что выпускали — использовали, конечно, но с удручающей неэффективностью. Был, к примеру, в проектном институте или в заводоуправлении отдел АСУ, а в нем –десяток-два людей, обслуживающих ЭВМ и ничего по профилю предприятия не делающих, — программистов, электронщиков, операторов, механиков. И вот конструкторы и расчетчики, плановики, бухгалтеры и сметчики должны были писать на бумаге свои заявки, по которым готовились на перфокартах задания на счет (с неизбежными ошибками ввода, проверками-перепроверками-переделками по многу раз), потом ночью машина считала и наконец, дня через три (о счастье!) на стол пользователя падала километровая распечатка, в которой он выискивал нужный ему показатель. (Это вместо того, чтобы прямо на рабочем месте самому ввести с клавиатуры данные и на экране посмотреть результаты расчета — без посредников и за десять минут). Да проще на счетах или на линейке посчитать! Что многие и делали…

Хороша ложка к обеду. За десять с лишним лет сложилась целая ЕС-индустрия — заводы, НИИ и КБ, издательства и ученые советы, писались книги, защищались диссертации, строились наполеоновские планы…. И все это было уже никому не нужно. Вроде бы освоили, наконец, выпуск долгожданных 370-х аналогов. Случись лет на семь-восемь раньше — был бы триумф. Сейчас же — никому не нужно… На дворе стояли восьмидесятые и компьютерный мир сотрясал структурный кризис: централизованные вычисления (с мэйнфреймами, с вычислительными центрами коллективного пользования) стремительно вытеснялись моделью распределенной обработки данных прямо на рабочих местах (персональных компьютерах), которые соединялись между собой локальными сетями и оснащались по мере надобности серверами для хранения общей информации. Мэйнфреймы становились нишевыми изделиями, их рынок схлопывался под натиском миникомпьютеров и «писишек»…

Даже в СССР к началу 80-х уже выпускались «эсэмки», «искры», «электроники», не оставляющие «еэскам» никаких шансов. А потом (с Перестройкой) накатил вал дешевых персоналок «желтой сборки» и всей советской компьютерной индустрии пришел карачун… Последняя, посмертная уже страница истории — это начало 90-х — массовое зверское уничтожение «еэсок» (и других ЭВМ) ради серебра и золота в их платах. Происходило это на моих глазах и выглядело как… как мародерство на кладбищах. Крушили-терзали порой те же самые люди, что годами ухаживали за своей машинкой, которая худо-бедно кормила их. Ладно, не будем о грустном… Итак, затея под названием ЕС ЭВМ потерпела «полную фетяску». Ни одна из декларируемых целей не была выполнена. Споткнулись как раз на том, ради чего весь сыр-бор затевали: на организации массового выпуска высокотехнологической продукции, на развертывании инфраструктуры для ее эксплуатации. На том, чего в Советском Союзе органически, генетически не умели делать ни в одной из отраслей, кроме оружейной (и то, может это «кроме» от нашей неосведомленности?).

А с другой стороны… А с другой стороны, чего уж так убиваться? Ну, не выполнили программу ЕС, а программу КПСС выполнили? Как там насчет построения коммунизма к московской Олимпиаде?.. Если забыть об амбиционных программах, не тужиться «догнать и перегнать» Америку, то все выглядит совсем неплохо. На рубеже 70-х слово «программист» звучало… ну не как «космонавт», конечно, но на девушек производило впечатление. Особенно, когда я — юный программист — что-то записывал-зарисовывал на фальцованной АЦПУшной бумаге «с дырочками», небрежно так эту драгоценность отрывая и комкая, «мол, у нас добра такого завались», а потом невзначай, вроде как перепаковывая сумку, вываливал на стол пару магнитных лент и колоду перфокарт в «щечках»… Вспомните «программистскую сагу» — замечательную книгу Стругацких «Понедельник начинается в субботу». Такой вот романтический флер окутывает занятия редкие — геолог, программист, астрофизик… Если б спустя десять лет решил бы сдуру очаровывать юных дурочек и произнес «я — программист», то… с тем же успехом мог сказать «я — механик». Хотя нет, что я такое говорю, механик на станции техобслуживания «жигулей» — это была очень, очень романтическая фигура, куда там программисту. В общем, за десять лет профессия стала обыденной, ЭВМы жужжали в каждой мало-мальской проектной конторе, НИИ, заводе. В бумагу «с дырочками» отлично заворачивались бутерброды, летом на грядках весело поблескивала магнитная лента (не забыть об этом рассказать), на перфокартах очень удобно было делать записи. Десятки если не сотни тысяч людей по всей стране зарабатывали свой хлеб около компьютеров и как показали дальнейшие события, сумели стать отменными профессионалами, востребованными на Западе. А кое-кто, не забывший свой ЕСовский опыт, вдруг обнаружил себя обладателем ценной и весьма оплачиваемой специализации и по сей день трудится на мэйнфреймах IBM…

Так что, moralité простое. Не стоит щеки надувать, лопаясь от гордости неизвестно за что, но и волосы драть на голове (у кого остались) тоже нет резону: была вот такая эпоха, не особо великая, но и не шибко плохая, кусок нашей жизни, в которой всякого понамешано — хорошего и дурного — и которую вспоминаем… с улыбкой.

005. Быт программиста. Командировки

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

Вот представьте программиста, снаряжающегося в ночь на машину. Термос и бутерброды… ну, без них никак. Дальше, колоды карт с программами, которые в работе. Ленты с архивами. Ленты с данными. Последние распечатки с пометками — результаты подготовительной работы. Так, а книжку? Как без чтива время коротать, пока сидишь и ждешь результатов счета. Рюкзачок уже с усилием от пола отрываешь. А еще туда рабочую кофту или тапки. Или-или: летом тапки на ногах, кофта в рюкзаке; зимой — кофта на тебе, тапки в рюкзаке. Но так или иначе — должны быть. Попробуй-ка просиди в помещении восемь часов в теплых ботинках — взвоешь. И без шерстяной кофты никак нельзя, даже летом: в машинном зале всегда прохладно, а ночью, особенно под утро, — такой колотун. Так что кофта всегда или целиком на тебя надета, или вокруг поясницы: боль в спине (и в кистях) — это наше профессиональное. А случится прикемарить часок, так кофтой и накроешься — расстегнешь все пуговки, чем тебе не одеялко. Вот из-за этого, кстати, кофта и предпочтительней свитера — накрываемая площадь больше. Моя, к тому же, изначально была размеров на пять корпулентней меня тогдашнего, даже сейчас вполне привольно в ней помещаюсь… Да, сейчас! Она сейчас со мной, как же иначе. Мы вместе пропахали сквозь восьмидесятые, девяностые, уже в Новом Свете и в новом веке — нулёвые. Вместе, Бог даст, доскрипим десятые. Так что, потертая, чиненая не раз, с латками на рукавах — моя рабочая кофта висит себе в шкафу и, как только дело к зиме, я — невзирая на протесты домашних — опять «напяливаю это страшилище»… Знаю, в последнее путешествие обрядят меня в нелюбимый, пару раз в году надеваемый, костюм и ненавистный, считанные разы за жизнь надевавшийся, галстук. А по справедливости бы надо — в старых удобных джинсах да в рабочей кофте…

Ну вот, рюкзак на спину, в руку сумку с парой магнитных дисков (фунтов по десять каждый — ерунда) и программер-номад к походу готов. Как настоящий кочевник — все мое при мне — я могу передвигаться от машины к машине, как наши пращуры от колодца к колодцу… Конечно, кочевали далеко не все. Даже не большинство. Большинство составляли изнеженные жители оазисов, что изо дня в день отсиживались от звонка до звонка и ничего тяжелей бутерброда на работу не носили. Некоторые, чтоб не перегрузиться перемещаясь между своим столом и компьютером, имели при машинном зале персональные шкафчики (как в предбаннике) для лент и карт. Все у них было, кроме свободы… Но это — выбор каждого. Для меня дискомфорт кочевой жизни становился исчезающе малым, когда неспешно возвращаясь «с машины», видел толпу спешащих на службу, опаздывающих, бегущих (насколько позволяли каблуки и одышка), боящихся опоздать людей. И такую же толпу, вываливающую в пять часов из проходных, штурмующую автобусы и трамваи… Отмазываясь тем, что надо де ездить на машинное время в разные концы города и в разное, преимущественно вечернее и ночное время, я успевал поделать домашние всякие дела, заскочить на обе свои работы — сдать результаты расчетов и обсудить следующие этапы, вечером (или в ночь) сбегать на машинку, с утра поспать, опять порешать домашние проблемы, пройтись по магазинам, пока весь народ на работе. Ну и… коллективные радения на политучебах, тягучие до одури профсоюзные собрания, поездки в колхоз и на овощебазу — все мимо меня. «Я так страдал, я так рвался вместе с коллегами перебирать гнилую капусту, но… ах, какая жалость!.. опять не получилось — машинное время»… Однако, чтобы такая жизнь (на безопасном отдалении от родного коллектива) была возможной, надо иметь умного начальника, чтобы он четко видел, насколько больше ты ему лично выгоды приносишь в сравнении с офисным планктоном, и готов был тебя прикрывать. Без этого… приходилось искать другое пристанище, мне за двадцать лет — только однажды.

На новой работе было полно упомянутого планктона, сиречь теток, вязавших за своими столами десятилетиями и выковырять их оттуда было не легче, чем ржавые гвозди из стены (да никто и не пытался). Однако ж, кому-то надо и работать — фирма была отнюдь не академическим НИИ и отбрехиваться в конце года отчетом о благотворном влиянии партии на «косинус фи» как-то не могла. В незапамятные времена занималась проектированием и шеф-монтажем КИПиА (контрольно-измерительных приборов и автоматики). Упомянутые тетки во время оно чертили на кульманах релейные схемы и кроссовые шкафы. С тех пор автоматика плавно перетекла в автоматизацию (с компьютерами и программами). Однако, проектные стандарты не претерпели изменений и программы полагалось чертить, что они и делали (oх, не забыть бы рассказать, как чертились программы). Для того же, чтобы программы, помимо чертежных экзерсисов, все-таки работали, а проекты все-таки внедрялись на объектах, а институт — получал бы премии и прогрессивки, приходилось держать бригады трудяг, готовых вкалывать по-черному и мотаться по командировкам, но только платить извольте соответственно. И не наша забота, как там по бумагам, а фактически, — чтоб сдельно. Заказчики-заводчане тоже были мужики взрослые и хорошо знали: «технику надо смазывать, а техников — подмазывать». Так что там (на одной работе) зарабатывал я хорошо, на жизнь хватало…

Многолетними стараниями многих и многих советских научных и проектных контор слово «АСУ» и глагол из него — «асучивание» — стали синонимами деятельного безделья, пустопорожней имитации, псевдонаучной фанаберии. И это чистая правда. Но не вся. Немало было команд специалистов (ненавижу слово «коллектив»), которые это уничижительное клеймо совсем не заслужили. Особенно касается тех, кто занимался автоматизацией производства, технологических процессов. Не потому, что были такие сознательные и праведные идиоты. Боже избавь! Вот, как-то свалился вдруг в контору проект, даже название помню — АСП СОУ — «Автоматизированная Система Проектирования Систем Организационного Управления». Во как! Махонький компонентик эскизного проекта первой очереди АСУ СССР, сметной стоимостью в триллион (я не шучу, в триллион!) рублей. Там эскизный проект заканчивался в 2000-м году (дело было в 85-м), а ввод в эксплуатацию первой очереди — аж в 2050-м. Гуляй, не хочу! Гуляла по буфету, конечно, Академия Наук, но с какого-то бодуна капнуло амброзией и в нашу затрюханную контору. Так все оприходовали в лучшем виде, чтоб вы не сомневались. Не в моей бригаде эту панаму окучивали, но в соседней — свои ребята: отоспались, отдохнули, программы начертили, отчет написали, любо-дорого. Но если коту масленица раз в год, то программеру такое счастье — раз в жизнь. А обычно, к великому сожалению, «шара не канает» и работа твоя закончена, это когда обжиговая печь зафурычила, энергоснабжение комбината контролируется и «утренние-вечерние пики» сглаживаются, когда лист-катанка или химволокно пошли в пределах уставок, а датчики с вибростенда стали сообщать что-то, похожее на правду. Вот тогда — наконец-то! — подписываем акт сдачи-приемки, накрываем поляну и водку пьянствуем…

Командировочная жизнь не сильно сказалась на экипировке. Ну, бросаешь еще в рюкзак смену белья, зубную щетку да кипятильник. В командировке сидишь обычно на заводском ВЦ, или в цеху с заводскими инженерами, или спишь в заводской же гостинице. Ну, пройдешься-погуляешь разок по городу. Только много ли радости гулять по Северодонецку или Новомосковску, или по Балакову, вдыхая полной грудью аромат… нет, не цветущего миндаля, а того — с запахом миндаля, — что извергается из труб местного химкомбината. Правда, бывали командировки и в места, пригодные для жизни. Заводчане же — повсюду — лучшие люди, с кем довелось пересекаться. Грамотные, толковые инженеры, скромные трудяги, без столичной спеси, без академического гонора. Конечно, квасили в большинстве своем (особенно в России) по-черному. Ну, не они одни… Вспоминаю этих людей с грустью. Особенно, зная сейчас, что случилось дальше… Одно время приходилось ездить на Тираспольский ХБК. Тихий сонный южный город. Из тех мест, где «лучше жить, если выпало в империи родиться». Так тогда казалось… Летом хорошо было поваляться на пляже на берегу Днестра, что рядом с мостом. По этому мосту ездили на правый берег, в окрестности Бендер, закупать вино. Там уже настоящая Бессарабия. А в Тирасполе и вокруг — странная межеумочная земля, не Украина и не Молдавия. Тогда это никого не волновало… Рядом с комбинатом — книжный магазин, где спокойно себе лежали книги знаменитых тогда издательств «Картя Молдавеняска» и «Литература Артистикэ». Вот так просто заходишь в пустой магазин и покупаешь за 3 рубля толстенный том Воннегута или Маркеса, Ивлина Во или Фолкнера. Только почему или? И, и, и! Сейчас-то книжкой кого удивишь, но ведь то был 82-й год… А как славно приезжать туда весной. У нас еще холодрыга, а у них уже черешня продается — на таких веточках или палочках, к которым ягоды приматываются ниткой за черенки. Идешь с этой палочкой, как с эскимо, и обрываешь по одной ягоде. Дешевизна там была, в сравнении с Киевом, запредельная. Возвращались домой нагруженные овощами-фруктами, как мешочники из фильмов про Гражданскую войну… Войну… Десять лет спустя бомбили тот мост, что рядом с пляжем, и город, и не знаю, уцелел ли тот книжный магазин, и что случилось с теми людьми, с которыми вместе работали, а потом пили домашнее молдавское вино…

А бывали города, вызывавшие устойчивую неприязнь. Вот, не раз приходилось ездить в Калинин, в командировки в пресловутый «Центрпрограмсистем». Впечатления — самые гадостные. Понимаю, что так не бывает, непременно видел же я в Калинине и что-то хорошее, ну, красивых девушек хотя бы. Однако, в памяти осталось: мрачные краснокирпичные, до черноты закопченные заводские корпуса постройки начала века; и деревянные, посеревшие от времени, кособкие хибары с подслеповатыми оконцами. Будто попал в декорации фильма о тяжкой доле рабочих в царской России (по роману Горького «Мать»). И грязища — непролазная грязища во всяко время года. И дорога в этот самый ЦПС — в центральный на всю державу, на шестую часть планеты — фонд алгоритмов и программ: по склизким досочкам, в грязюку эту брошенным, через какие-то подворотни, мимо лавки с алкашами, сшибающими у прохожих монетку, недостающую до заветной бутылки шмурдяка,.. в истоптанную сотнями ног, грязную проходную, по вытертому линолеуму коридоров, к двери, которая перед самым твоим носом захлопывается: «обед». Твою дивизию!..

Тут надобно пояснить несведущему читателю обстоятельства дела. Когда-то в самом начале компьютерной эры в чью-то начальницкую голову пришла здравая (на первый взгляд) идея: а чего это, товарищи, одну и ту же задачу должны решать в нескольких организациях? У нас, чай, не капиталистические джунгли, конкуренции быть не может, экономика передовая — плановая. Ну так и воспользуемся ее преимуществами, т.е. пусть кто первый сделал какую программу, сейчас же сдаст ее в центральный фонд; другие же народные деньги попусту не тратят, не дублируют работу, а используют готовую. Ну, усовершенствуют там, если надо. Как не захотят отдавать в фонд? А сознательность? Ах, все равно не хотят! Так это мы быстро — издадим постановление, что покуда нет справки из ЦПС о приемке в фонд проектной документации, покуда тамошний клерк вам эту бумажку не подмахнул, сдача вашего проекта заказчику даже начаться не может; ни о каком выполнении плана, ни о какой премии и разговора нет. Система получилась: ius primae noctis — своего рода право первой ночи применительно к программированию. Что оно большой радости не доставляло, это можно пьесу Бомарше вспомнить. Только там (в пьесе) Альмавива не утратил еще величия и влиятельности; Фигаро привычно еще ему кланяется; сам комизм ситуации говорит о возможности полюбовного покамест ее разрешения. У нас же какой там смех, грех один. Ладно бы провинциалы (вроде моей конторы) на поклон туда ездили, так ведь столичные надменные фигары, институты, возглавляемые академиками и членами ЦК, тоже — куда денешься — отправляли ходоков на поклон к убогому тверскому альмавиве за заветной справкой. Кафкианский абсурд бессмысленного ритуала в том был, что никто ни разу этим фондом не воспользовался, захотел бы — не смог…

А почему, кстати? А потому, хотя бы, что сдать требовалось именно документацию, сиречь запись программы на бумаге. Это когда все только начиналось и программировали с помощью штырьков на коммутационной панели, идея может была и ничего; не прилагать же штырьки, в самом деле. С течением времени появились, правда, магнитные носители и в правила добавили, что комплект документации можно дополнить магнитной лентой. Ха! Отдать им еще на халяву и магнитную ленту. Ха-ха-ха! А списывать ее как? А самим что? Помидоры-то как подвязывать?..

Тут опять же надобно пояснить, какое отношение имеют помидоры к советским информационным технологиям. Самое прямейшее, чтоб не сомневались. По весне весь советский народ, как вы помните, выходил на свои шесть соток и высаживал картошку, огурчики, помидорчики и прочие овощи, которые по неведомым агрономической науке причинам упорно не хотели произрастать на миллионах гектаров колхозных полей… Ну так вот: помидоры надо подвязывать. Чем? В ход шли веревки всякие, бечевки, которые быстро размокали, рвались… короче — тот еще геморрой. То ли дело мы, причастные к передовым технологиям XX века. На наших грядках весело играли на солнце блестящие коричнево-черные полоски магнитной ленты — прочные, неразмокающие, они держались все лето и осень до холодов. Поэтому, по весне странная эпидемия косила магнитные ленты: они и падали-разбивались, и рвались в лентоводах и размагничивались с невозможностью дальнейшей эксплуатации. В одном знакомом ВЦ так даже крысы-мутанты обьявились — сгрызли, гады, целый шкаф с лентами аккурат в мае месяце… Короче, вы понимаете, что отдать за просто так ценнейший для домашнего хозяйства ресурс… ищи дураков.

Вредные калининские тетки ленты не требовали. Зато на книжках с документацией пытались отыграться… А тексты программ надо было представлять не просто так, а как всякую проектную документацию — на листах-форматках в рамочке и со «штампом» с тремя подписями (исполнитель, руководитель, нормоконтролер). Позже, к середине 80-х, было разрешено эти рамки-штампы выпечатывать на компьютерном принтере вместе с текстом, что породило лавину разработок оригинальных документаторов и усовершенствования западных программ (nroff-troff) на предмет научения их печатанию «в рамках»… Ну это все будет потом, а покамест требования ортодоксально-твердые: или рамка и штампик чертятся тушью от руки, или они отпечатаны типографски на бланке. Но тогдашние барабанные принтеры печатать умели только на фальцованной бумажной ленте. Так что оную ленту потом резали, наклеивали на бланки, а затем светокопировали «на синьки». Каковые (синьки) давали совсем не синий, а слабый красновато-фиолетовый оттиск на грязновато-желтом фоне. Но если даже кто-то особо зоркий мог на этих синьках различить текст программы, далеко не факт, что он видел всю программу!

Как я говорил, распечатку на фальцованной ленте надо было нарезать на листы. Ну вот, она и поступала к вечно пьяненькому переплетчику Яше (наша гордость — пьющий еврей-пролетарий). Так он устраивал тот еще брис! Если справа чуток больше рубанет — уйдут концы длинных строк. Потом по фальцам — чик-чик. Что там было около сгибов пропечатано, да кто ж теперь узнает. А если те листочки локтем задел и потом сложил, так вы думаете, в том же порядке? А если в это время клиент пришел книгу переплетать, бутылку принес (святое!), закусь; так листочки колбаску разложить они из клиентовой книжки, думаете, брали?.. Да, а сам я, как вы думаете, загодя, за месяц распечатав программу, потом ее больше не правил? А как же ее заставить работать, если ничего не менять? Работать она начинала аккурат в последнюю ночь перед сдачей…

В общем какого качества макулатура сдавалась, всем было ясно. Однако ж, надо тащить это дерьмо в Калинин. А начальство норовит, как всегда, совместить-сэкономить. Едешь себе в нормальную командировку. «Вот и славненько; заскочишь (!) в Калинин, сдашь там махонький, легонький совсем (на пуд с гаком!) проектик». Куда деваться, тащишь. Можно представить, — с каким чувством. А тамошним теткам этот негативный заряд, вероятно, передается и они в ответ начинают куражиться. Скажет одна: «А вот мы возьмем сейчас… да хоть эти вот два листа, отперфорируем и введем в ЭВМ. Будут работать?» — «Конечно, — отвечаю, — какие сомнения. А ближайшая колонна химического синтеза у вас где?» «Какого-такого синтеза?» «А такого. Видите, что в названии прописано: Новомосковское объединение “Азот”, АСУ технологических процессов. Синтезом, значит, управляем. Так что, колонна-то где?» Скривится, подпишет бумажку…

Возвращаешься в веселом настроении, газетку читаешь. Там как раз статья о грандиозных успехах советского программизма. Что в то время, дескать, как дураки-западнюки разбазаривают свои ресурсы в конкуренции, наш «Центрпрограмсистем» уже накопил три миллиона программ и тридцать тысяч автоматизированных систем на благо народного хозяйства. Так что, мы далеко ушли вперед и микросхемы наши — самые большие в мире! Читаешь и думаешь: если у вас, ребята, в ракетных шахтах таких же кондиций стоит, как в «цэпээсе» лежит — мир может спать спокойно…

006. Еврейская составляющая

Вот написал я давеча с некоторым удивлением, что дескать везде, где работал, начальники отделов кадров были на редкость порядочными людьми. Сейчас до меня дошло, какую глупость сморозил: как будто я мог попасть туда, где кадровик ревностно исполнял линию партии: «старые гвозди не выдергивать, новые не забивать». Что означало: тех евреев, которые здесь работают — всех этих старперов конструкторов и бухгалтеров — их не гнобить, пускай досиживают до пенсии; но новых — всех этих молодых насмешливых математиков и программеров — не брать ни в какую. Особенно ревностно стали этой установки придерживаться в конце семидесятых, после первой волны еврейской эмиграции. За каждого уехавшего руководство организации, где он трудился, получало втык по партийной линии (за недостаток бдительности и воспитательной работы). Так что многие руководители, до того вполне индифферентные к еврейскому вопросу, начали подстраховываться. Конечно, явные гонения, какие устроил новый директор моей первой работы, — это было редкостью. Но он сам был редкостью — редкостным по падлючести подонком, интриганом, доведшим до инфаркта и преждевременной смерти прежнего директора… Обычно же, просто и тихо, кто с графой — не брали. Типичная прибаутка того времени: в отдел кадров заглядывает такой себе украинский дядько: «Хлопці, а ви отих, хто має призвіще (фамилию) на “ко” на роботу приймаєте?» — «Авжеж!» — «Ну, що я тобі казав, Коган, приймають! Заходь»…

Однако, возникает вопрос: а как же тогда люди устраивались, ведь все же где-то работали. А так: не брали в академические НИИ, в престижные проектные институты, вычислительные центры министерств, главков, обкомов-исполкомов, где работа не бей лежачего, где ставили «на очередь» на квартиры-машины, где давали всякие надбавки, пайки с дефицитом. Ладно. Но это означало, что у руководителей заштатных, непрестижных, третьеразрядных проектно-конструкторских, пусконаладочных, эксплуатационных контор, всех этих париев, выполнявших неприметную, черную работу по заводам да в провинции, — у них появлялся шанс заполучить хороших специалистов, которые в других обстоятельствах в их сторону бы и не глядели. Помню, наш директор — он был неплохой, невредный, простоватый такой мужик (белорус) — горестно вздыхал, разглядывая анкету очередного кандидата, за которого хлопотать являлась в его кабинет целая делегация (ну, и я там): «Вы же знаете меня, я совсем не этот… ну, как их… не антиметист. Но, почему всегда у вас получается, что как хороший специалист, талантливый, так обязательно это… ну… с графой» — «А потому, что специалист, да талантливый, да без графы, — он разве к нам пошел бы? Он пойдет в «Институт кибернетики» или в «Горсистемотехнику». Будет кропать там диссертацию, на конференции научные ездить»… Директор обреченно махал рукой и подписывал заявление.

В результате, в нашей, к примеру, конторе евреев было… никогда не высчитывал проценты… много. Может даже половина. А если взять производственные отделы, т.е. программистов и электронщиков, то… перебираю в памяти… как бы не семеро из десятерых. Когда в 89-м начался обвальный отъезд, контора буквально пустела на глазах. Но в это же время столь же обвально падал спрос на наши услуги, так что руководство было даже радо, что люди вот так сами, по своей воле увольняются, облегчая латание тришкина кафтана — сокращающегося бюджета. Никаких собраний, никаких осуждений, никаких официальных истерик и персональной злобы (как в семидесятые) и близко не было. Тепло желали успеха на новом месте. И чем хуже становилось, тем откровенней завидовали отъезжающим… Но это я забежал вперед.

Кроме влияния статуса организации — чем ниже, тем больше евреев — действовал и фактор профессии. Безусловно, ремесло программиста (в меньшей степени — электронщика) была отчетливо еврейским, как в былые времена ремесло зубного техника или парикмахера. Почему? Профессия эта была своего рода убежищем, отстойником, резерватом. Выпускника университета, если даже удавалось ему туда прорваться, в науку, за редчайшими исключениями, не впускали и он выбирал между карьерой школьного учителя или… программиста. И выпускник провинциального пединститута, вечернего мелиоративного, заочного лесного (где только ни учились, ни просачивались сквозь заслоны-рогатки еврейские детишки) работать шел… программистом. И как ни обидно мне это констатировать, но общераспространенным было мнение, что программирование — это такая осетрина второй свежести, уцененная наука, вторая лига для тех, кто не сумел пробиться в первую. Большинство из приходивших в профессию вскоре начинали понимать, что сказанное выше — заблуждение, что это — самостоятельная, исключительно интересная, захватывающе сложная, невероятно динамичная отрасль инженерного дела, дающая мастеру беспрецедентный (как нигде!) простор для творчества… Но так или иначе, концентрация евреев в нашем ремесле зашкаливала.

И еще штрих. За первые двадцать лет работы мне пришлось пересечься с доброй сотней, наверное, коллег-евреев. Так вот, собственно еврей, т.е. человек серьезно интересующийся Торой, старающийся соблюдать традицию, изучающий иврит, встретился только один. И то… И то, до этого он успел отметиться в буддизме, потом в Израиле стал пламенным марксистом, защитником угнетенного палестинского народа, а уже в Штатах — как я слышал — заделался истово православным русским патриотом. Ну, тут ничего не поделаешь, это — диагноз… В абсолютном же своем большинстве «программистская общественность» была в то время совершенно секулярной (как еврейская, так и нееврейская; в девяностые годы все стало стремительно меняться, но я пишу сейчас о семидесятых-восьмидесятых). Еврейство наше надежно тогда сохранялось отделами кадров…

007. Быт программиста. Призвание

Однако, вернемся к быту, к житейским мелочам. А то стал было рассказывать о перфокартах и… понесло меня из Тирасполя в Тверь, а оттуда — в подсчеты евреев на душу населения. Да что же это я никак не закончу о простейшей вещице, о кусочке желтого картона, на котором были размечены 80 колонок и десять рядов, да сверху два неразмеченных ряда — итого двенадцать… Два важных умения должны быть у советского программиста по части карт: читать их и «фиксать». Читать, это понятно что такое: взять карту и на просвет по дырочкам прочитать, что на ней пробито.

Я помню две системы перфорации. Одна применялась на БЭСМ-6: перфокарта заполнялась построчно, слева-направо и сверху-вниз; символ кодировался комбинацией пробивок в семи соседних позициях; каждая восьмая колонка была разделительной — в ней пробивок не было. Такая система частенько называлась «сидисишной», поскольку была позаимствована у фирмы Control Data Corp. С другой стороны, старики говаривали, что она использовалась еще на совсем древних машинах и была чисто советской разработкой. Поди сейчас разбери, кто прав… Для удобства чтения применялись «читалки» — это такие карты, у которых были пробиты все дырочки во всех колонках, кроме восьмой, шестнадцатой и т.д. И еще эти разделительные колонки для пущего разделения графились карандашом. Читалка накладывалась на карту, зоны символов четко выделялись и читались так же легко, как если бы текст был напечатан… Другая система применялась в ЕС ЭВМ и пришла, понятное дело, из IBM, которая разработала ее еще в двадцатых годах прошлого века. Там символ кодировался одной или несколькими пробивками в колонке, так что номер колонки точно соответствовал позиции символа в строке…

Бытует легенда, что при строительстве первых железных дорог в Европе их прокладывали по трассам старых еще римских дорог, вписывая в существующие габариты мостов и туннелей. Дескать, поэтому железнодорожная колея равна колее римской колестницы (и соответственно — ширине римской дороги), которая была законодательно стандартизирована еще Юлием Цезарем. А поскольку габариты всех перевозимых по железной дороге грузов (контейнеров, танков, ракет) определяются размером колеи, то и выходит, что определяются они артефактом двухтысячелетней давности (злые языки добавляют, что размером лошадиной задницы они определяются, ибо впрягаемая в колесницу пара гнедых аккурат вписывалась в колею)…

Вот так и в современных компьютерах продолжает жить артефакт XIX века — перфокарта. Все виденные мной текстовые дисплеи вмещали в строке ровно 80 символов — размер перфокарты. Сейчас, на громадном графическом дисплее видишь окно какой-нибудь программы: и сколько же символов можно ввести в поле? Кто бы сомневался — 80… Но вернемся перфокартам, точнее к кодировкам символов на них, которые определялись стандартом с малоприличным названием «ебздиц» (EBCDIC). Цифры там кодировались одной пробивкой в колонке, буквы латинского алфавита — двумя, прочие символы — тремя и более. Запомнить коды было легко, но… тяжело отслеживать саму колонку на карте, глаз легко мог перескочить на соседнюю. Читалки с вертикальной разграфкой мало помогали и их редко использовали. Короче, читать такие карты было занятием утомительным. Вы спросите, а на кой ляд их вообще читать? Правильный вопрос. У изнеженных американцев перфораторы вместе с дырочками еще и надпечатывали текст по верхней кромке карты. Но величие нашего народа в том и заключается, чтоб с изумляющей иноземца сметкой победно преодолевать собственноручное рукосуйство. Печатающий механизм в перфораторе, конструкция которого была цельнодранная с иноземного образца, сочли баловством, барской забавой и упразднили стараниями какого-то безвестного рационализатора (думаю, все шпионы, считая со штабс-капитана Рыбникова, все вредители, враги народа, включая «шакалящих у посольств» литераторов, все они вместе взятые не нанесли великой державе и тысячной доли того вреда, что учинили рационализаторы-изобретатели)…

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

Тут (в который уже раз) надобно пояснить несведущему читателю, а зачем вообще перфокарты надобно фиксать. Ведь дырочки в них пробиваются на клавишном перфораторе. Ну и чего бы оным не воспользоваться, не заменить всю карту? Эге, как это у вас, нонешних, все просто… Перфораторы, они где стоят? Правильно, в группе подготовки данных. А кодекс законов о труде (КЗОТ), он что гласит? Правильно, работа во вторую-третью смену разрешается только на предприятиях непрерывного цикла и на особо важных производствах. Ну, полная комната барышень, в ожидании женихов колотящих по клавишам, это что, особо важное производство? То-то же! И чего отсюда следует? А того, что ровно в 17:00 барышни идут домой, а все перфораторы — под замок. А ЭВМ, между прочим, работает круглосуточно, как особо ценный ресурс, и ты — программер — выходишь «на время», например, с 22-х до 6-ти утра. А перфораторы… вон там они, за запертой дверью. Конечно, если начальник ВЦ — человек, он один аппарат в машинный зал для нас поставит. А если он — советский человек, тогда… фиксай, программер, свои перфокарты.

Так вот, высокое искусство заключалось в том, что умелец читал карту, находил место, где надобно исправить, ловко вырезал недостающие дырочки (тут необходим был остро заточенный скальпель) и залеплял лишние, для чего использовался продукт жизнедеятельности перфоратора — маленькие, как опилки, картонные прямоугольнички, которые перфоратор «выбивал» из карты, делая в ней отверстия. У запасливого программера с собой была коробочка с этим добром. А нет, так подойди к «бармалею» — компьютерному перфоратору, нажми кнопку — он мигом тебе навалит пригорошню этих опилок. Так что, вперед, лепи. Но… только всухую! Использовать клей, слюнить палец — это безнадежное ламерство. Ловко прихватить на кончик пальца крохотный прямоугольничек (он приставал к пальцу, цепляясь к коже ворсинками картона), точно встромить его в отверстие и, повернув палец, загладить ногтем (при этом ворсинки по периметру стыка надежно переплетутся). На всю операцию — секунда. Кстати, иной раз попадали в руки импортные перфокарты — гладкие, твердые, глянцевые, точь как игральные карты. Так вот, в них дырочки не фиксались, хоть плачь. Видно материал был таков, что ворсинки по краям перфорации не образовывались. Как, думаете, американские программисты обходили это ужасное неудобство. Не поверите, они еще в 60-е все пересели за экраны дисплеев. Ну, и что эта расслабуха им дала? Как начали отваливать на Запад наши закаленные бойцы, так все преотлично там устроились, потеснив аборигенов. А почему? А потому, что все умели (спасибо родной Советской власти!), даже перфокарты фиксать голыми руками…

Заканчивая с картами, расскажу историю, приключившуюся со мной в Харькове. Это было одно из последних моих рандеву с ЕС ЭВМ. Приехали мы с напарником вечером, уже затемно — дело было поздней осенью. Дождище льет, не переставая. Дали нам адрес (инструкцию как добраться) какой-то металлобазы, где нас ждал компьютер и где мы могли за ночь все подготовить, а утром явиться уже на официальную приемку. На вокзале сели в автобус и долго-долго куда-то ехали. За окном, за сплошной пеленой дождя только огни витрин можно было различить. И по тому, как этих огней становилось все меньше и меньше, как все реже и тусклее светили уличные фонари, мы догадывались, что едем на какую-то окраину, за город, к черту на рога. А потом и вовсе чернильная мгла за окном; автобус остановился — «конечная» — мы вылезли под дождь. Ни души, промзона, сверху льет, под ногами хлюпает и мрак вокруг. Куда мы попали? Спросить не у кого. Оставалось точно следовать указаниям: триста метров вперед, свернуть направо… «Блин! Куда сворачивать, забор… А-а-а, вон туда»… Наконец, чуть ли не на ощупь, добрались вроде куда нужно — ворота, проходная. Стали тарабанить в дверь… К нашему изумлению дверь открылась. Стоит паренек: «Вы киевляне, конечно? Вот хорошо, я вас заждался… пойдемте скорей… машину я включил, она вообще-то рабочая, но немножко… с АЦПУ только осторожней, ладно?» — пока он без умолка тараторит, ведет нас вдоль бесконечных черных пакгаузов — «осторожно, тут рельсы… и тут» — наконец, подводит к какой-то двери, внутри свет — «ну все, заходите и я вас запру, а то тут скоро собачек на ночь выпустят… за вами утром шеф заедет, а мне надо бежать уже, последний автобус в город» — и был таков… Хорошее начало, а? Собачек, значит, выпустят. Куда же мы попали?

Такого машинного зала я в жизни не видывал — выгородка в пакгаузе, лишь кое-как, с большой натяжкой, смахивающая на помещение. Из худой кровли, сквозь фальш-потолок не капает, льет. Льет прямо на компьютер! На шкафах тазы стоят, на полу — тряпки брошены, воду собирать. А ведь это фальш-пол, под ним — наверняка в лужах грязной воды — кабельная разводка. Силовая, в том числе. Кругом мокро. И один стул за пультом. Один! …..! .. …. ….! Один стул на двоих и тазы с мокрыми тряпками. А мы-то, дураки, еще думали покемарить по очереди в гермозоне. М-да-а-а! Деваться некуда, начинаем работать — последние правки вносим, прогоняем тесты. Время от времени возимся с этими тазами, тряпками — куда денешься. Печатаем отчеты. Кончается пачка бумаги, надо вставить новую. Что там паренек говорил об АЦПУ? Осторожней? Ну ладно. Осторожно открываю дверцу, кладу новую пачку. Теперь надо бумагу пропустить под печатающий барабан, для чего следует нажать на рычажок, чтоб он слегка отодвинулся. OK, осторожно нажи… Бабах! Тяжеленная рама с приводом и барабаном (килограмм сорок, не меньше) обрушивается мне на ноги…

Слава Богу, не на ноги, а с ужасным грохотом на пол (как я успел отпрыгнуть, ума не приложу). Козлы! Козлы (другого слова нет) что-то делали и отложили на завтра, суки, не удосужившись накинуть крепежные гайки. Трех минут не хватило — на автобус спешили… Так, остались без принтера. Ну что ж, выводим на магнитную ленту — завтра перед сдачей попросим где-нибудь печатануть на бумагу. Работаем… По-прежнему льет, опорожняем тазы, тряпки выкручиваем. Во как, попутно в уборщицы записались… Тут накопившая на фальш-потолке вода вдруг низвергается водопадом прямо на системную консоль — в ней что-то шипит, искрит, она дергается в агонии и замирает. Это уже почти кранты: если машина сбойнет, перезапустить без консоли не сможем. Мало того, мы лишились последнего, пусть медленного, печатающего устройства и средства ввода — с клавиатуры консоли можно было править и запускать программы, не заморачиваясь с перфокартами. Теперь на них последняя надежда. Перфоратора нет (ну еще чего захотели!), однако ввод и бармалей рабочие. И началось: в четыре руки не фиксаем — режем карты целиком, вводим, типа как «печатаем» на бармалее, читаем эти карты, режем новые… Египетский труд! И все время молим машинку: «ну давай, милая, держись… не сдавайся… ну, еще полчасика» И она держится. Как умирающее животное — уже не видит, не слышит, только, что реагирует на прикосновения. Она от этих тварей, от персонала этого козлиного, ни заботы, ни ласки не видала — довели до руины… Однако, выдержала. Все сделали, закончили, обесточили страдалицу и… стали ждать рассвета, попеременно присаживаясь на единственный стул…

Под утро дождь перестал. Наконец, загрохотала дверь нашего узилища (собачек, видать, снова посадили на привязь) и появился лощеный хмырь — начальник. Мы бросились к нему — так и так, барабан отвалился, чуть ноги не покалечил, консоль вон сдохла, вода кругом, тряпки эти… Тут… вижу по глазам: ему это все… глубоко по барабану… и еще глубже. Цедит: «А-а-а, эту рухлядь списываем, в управлении новая смонтирована». Мы переглянулись — так-так, значит, есть новая машина, а нас сюда загнали. Не нашли, значит, никого, кто б с нами ночь посидел — лучше запереть подрядчика в мокром сарае под собачьим конвоем. Ладно, запомним, учтем… Меж тем хмырь подводит нас к новенькой «семерке» и… остановился, любуясь своей любимицей. Машина блестит, аж сияет чистотой, а ведь вчера лило весь день и всю ночь и грязи на дорогах… Это, значит, была охота вставать спозаранку и выдраивать, чтоб через час снова была в грязи. Ну-ну… Поехали. Разговор, точнее — монолог, об авто: эта «семерка» у него не «жигуль», а экспортная «лада», литраж увеличенный, какой-то моновспрыск на ней, еще навороты… «А вы на киевском авторынке на днях не бывали, почем там …?» — «Да мы, признаться, не знаем, где этот рынок находится» — «А-а-а» — заметно поскучнел, потерял интерес. Приехали в офис. Вчерашний паренек там. «Ну вот, вы тут с Петей, покажите ему как и что. У меня, извините, дел сегодня… К обеду подскочу». Честно признаться, мы шокированы. Приемка — это и экзамен тебе придирчивый, но и ритуал торжественный. Чтоб начальник АСУ, кому это все эксплуатировать, вот так «на Петю» сбросил… А мы-то дурни старались — навернули им такую оптимизацию, язык запросов, генератор отчетов… Ну ладно, обучаем Петю. Время тикает. Когда же приемка? Наконец, к обеду появился: «Ну вот, акты — все подписано. Петя в курсе?» — «Да, Марк Семенович, я все посмотрел» — «Ну и славно. Я извиняюсь, столько дел сегодня, надо бежать. Счастливо, привет Киеву»… И это все? И это приемо-сдаточные испытания? Однако… Слышу за спиной: «Иван Иваныча машину в покраску повез»… И неудобно им при посторонних, и так же хочется шефу косточки помыть. В общем, вскоре диспозиция стала нам ясна: у мужика золотые руки — перебирает двигатели, рихтует кузова; покупает битые (после аварии) авто, восстанавливает, продает. Целая мастерская в гараже. Ну, и чего еще надо? Ремесло в руках надежное, деньги — какие инженеру не снились. Статус социальный не тот: быть «гаражным Мариком» (с годами — «Семенычем») — не комильфо. Поэтому — начальник отдела АСУ. Понятно, красит-рихтует не только местному начальству, но самому «Иван Иванычу» (кто это — не ведаю, но имя произносилось с придыханием). Так что, на работу ему глубоко начхать, а за место свое — не тревожится… Забрали мы акты и пошли. Вторые сутки на ногах. Как до поезда гуляли по Сумской — в упор не помню. В вагоне залез на верхнюю полку и… проснулся в Киеве.

Поразмыслили мы бригадой и решили: больше по этому объекту не делаем ничего. То есть, отчеты туфтовые, какие надо, пишем, но саму работу — а ни на йоту. Что вы думаете, потом уже Марк Семенович к нам приезжал (я больше в Харькове не был). Привозил заранее подписанные акты. Мы на его ленту раз за разом записывали те же самые файлы, без единого изменения. И ни одна собака не заметила (а если и заметила, то не гавкнула). Так года полтора прошло. Он всегда, как отдает ленту на запись, сам на часы смотрит, нервничает — на авторынок торопится. И вот в последний раз, при завершении проекта, разыграли мы комедию: он ленту отдал, час проходит — ленты нет. Он уже извелся весь. Я с понтом звоню: «Ну что так долго?.. А-а-а… И когда исправят?.. Поторопите их там, человек ждет». Он: «Ладно, я побегу, пожалуй. Вы же почтой вышлете?» — «Ну, непременно». Фиг мы ему выслали («это тебе за собачек на базе»)… Прошло много лет. Как-то приятель говорит: «Ты Марика харьковского помнишь?» — «Еще бы!» — «Так вот, харьковчанин знакомый рассказал, автосалон у него. Процветает». Ну и славно, нашел человек свое призвание — стало комильфо…

Описанный случай — это из ряда вон. Обычно же, эксплуатационники — работники отделов АСУ на заводах, персонал ВЦ — были настоящие профи. И коль уж я определил профессию программиста как еврейскую, то электронщик, особенно начальник машины — без сомнения, украинец: хозяин основательный, неспешный, себе на уме, прижимистый, запасливый, пестующий свою машину, как вуйко — свой огород. Уж у него и чистота, и порядок, и ЗИПа тройной комплект. Дай ему волю, он бы программистов отстреливал на подступах к машинному залу — «ходят тут всякие — машину трогают». Но приходится ему с нами мириться, как с неизбежным злом. А нам надо налаживать с ним добрые отношения. И если наладил, то живется тебе на машине комфортно.

Я вот упомянул раньше насчет гермозоны. Это такая выгородка в машзале, комната без окон, где стоят диски и должна быть особая чистота. Видевшим только современные диски-винчестеры (коробочки в ладонь величиной), трудно вообразить тогдашний дисковод: здоровенный комод с крышкой сверху (похожий на стиральную машину), куда вставлялся пакет 14-дюймовых дисков. Механизм очень капризный — пылинка, попавшая на поверхность диска, могла вызвать сбой. Поэтому гермозону не герметично, конечно, но изолировали, нагнетали избыточное давление кондиционированного воздуха и влажную уборку делали особо тщательно. Там наш брат мог поспать часок: относительно тихо (сильно шумят АЦПУ, консольная машинка и перфокарточные устройства — но они за стенкой), темно (только лампочки на дисководах мигают) и чисто (хоть на пол ложись) . Ну, конечно, на полу жестковато. Но если начальник машины твой друг, то у тебя есть ключик от тайного шкафчика, что укромно схоронен тут же, в гермозоне. В шкафчике упрятаны вещи нужные, но запрещенные: электрочайник и матрас-тюфячок… Комедию с чайниками помнят все, кто работал в советских учреждениях. Естественно, они были в каждой комнате. Но поскольку считались главными источниками пожаров, то официально их не было. Периодически организацию приходили проверять пожарные инспекторы — тогда все чайники (а также кипятильники, щипцы для завивки, фены, электробигуди — чего только не было в столах сотрудников и, особенно, сотрудниц) лихорадочно прятали в сейфы, куда проверяльщики доступа не имели… Ну, а против тюфячков восставало советское «облико-морале», которому все рисовались сладострастные сцены и никак было невдомек, что электронщики значительную часть времени проводят на полу, на карачках, согнувшись в три погибели: кабельные разводки — под фальш-полом, все разъемы в шкафах, все механизмы — внизу. Не удивительно, что хотели люди примостить «пятую точку» на что-то мягкое… А наш брат-программист, внедряя на объекте серьезный проект, сутками пропадал на машине. Хоть были мы тогда молоды, но у всякой выносливости есть предел, и поспать часок в гермозоне за дисководами, на мягком тюфячке друзей-электронщиков, укрывшись старой доброй рабочей кофтой — это был кайф…

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

010. Восьмидесятые. Мини-ЭВМ

Что такое мэйнфрейм на первый взгляд? Это большой зал, заставленный шкафами гудящего и стрекочущего оборудования. Это множество людей, снующих туда-сюда с распечатками, перфокартами, магнитными лентами и паяльниками. Большая ЭВМ, она — большая. А что такое мини-ЭВМ? То же, но в миниатюре: комнатка, стойка в две-три секции, рядом дисплей, иногда поодаль еще парочка экранов, принтер — чаще медленный матричный, но если даже быстрый барабанный, то не громадный, похожий на сервант, а небольшой такой, с постельную тумбу. И никаких тебе фальш-полов с кабельной разводкой и стационарных систем вентиляции-охлаждения — провода проброшены прямо по полу (да и много ли их — сетевые, к дисплеям да к принтеру), а в окно врезан комнатный кондиционер бакинского завода (впрочем, ясно что бакинского, других в Союзе просто не было). Большая ЭВМ впечатляет. Ее любили показывать в кинохронике — линейку лентоводов с бешено вращающимися магнитными лентами (кстати, в реальной работе такого дружного скоростного вращения достичь невозможно, поэтому в кино ленты вращаются в обратную сторону, т.е. перематываются к началу автономно, без взаимодействия с компьютером). А в сюжетах об умной машине обязательно трое-четверо очкариков в белых халатах напряженно пялятся в перфоленту, словно надеются вызнать из нее что-то сокровенное; под торжественное восклицание диктора «Задача пошла на счет!» кто-то нажимает на кнопку Reset, т.е. сбрасывает, вырубает компьютер, после чего аппаратный тест заставляет бойко мигать лампочки на инженерной панели (что как раз и нужно киношникам)… На мини-ЭВМ такую веселую лабуду не снимешь: лентопротяжек две (а то и одна) и это — миниатюрные устройства в стойке, крутят ленты они невыносимо медленно; диски тоже вставляются в выдвижные (прямо из стойки) ящики. Все по сравнению с мэйнфреймом беднее, меньше и видно, что дешевле. Последнее обстоятельство «еэски» и погубило: настоящими мэйнфреймами, одновременно обслуживающими сотни или хотя бы десятки пользователей, они стать не смогли, а обслужить двоих-троих с успехом могла относительно дешевая «эсэмка» или «электроника»…

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

Правда, на несколько лет раньше появились дисплеи ЕС-7920. Но, во-первых, далеко не на всех машинах. А во-вторых, они не были полноценными системными консолями (я касаюсь этого в главе «ЕС ЭВМ — pro et contra»). Отечественные умельцы быстро разработали программы, позволявшие на нескольких экранах одновременно выполнять ограниченный набор операций, в основном — редактирование текстов, компиляцию и просмотр сообщений об ошибках. Помню две такие программы: Primus и DProcessor. Разработчики явно конкурировали друг с другом и каждый новый релиз включал все функции программы-соперника плюс еще что нибудь. И все-таки, возможности этих программ были ограниченны, они не могли заменить собой операционную систему разделения времени. Кроме того, постоянно приходилось мигрировать с одной машины на другую: только привыкнешь к сладкой жизни с дисплеями, как — бац оземь! — возвращаешься к перфокартам. Только мини-ЭВМ, где дисплеи были обязательным и единственным средством «ручного» ввода-вывода, как-то психологически зафиксировали переход в новый мир, где компьютер стал ассоциироваться с клавиатурой и экраном. Этот переход стал революцией! Производительность нашего труда выросла невероятно: за один день (или ночь) сидения за экраном можно было сделать больше работы, чем раньше за неделю. Лично для меня, правда, этот новый стиль работы был возвращением к хорошо забытому старому: десять лет назад я именно так работал на БЭСМ-6. Однако, мой случай не просто нетипичен, он крайне редок — я случайно попал в элитарный мир суперкомпьютеров и после того, как неслучайно из него выпал, больше никогда не видал живую БЭСМ…

С массовым внедрением мини-ЭВМ связано и явление, которое могло бы повлечь даже социальные последствия, если бы не случились аккурат в это время такие катаклизмы, что о компьютерных проблемках никто и не вспомнил. Я имею в виду «обезлюдивание» вычислительных центров. В машинном зале мэйнфрейма днем толклась уйма народу: операторы ЭВМ, немаленькая бригада электронщиков, программисты, работники эксплуатационных служб АСУ. Тут же цвел — щебетал и хихикал — целый цветник юных дев, операторов подготовки данных. А рядом сидели суровые тетки, ответственные за контроль информации, архивирование, системную поддержку. Вся эта армия была разбита на группы, сектора и отделы со своими начальниками, парторгами и профоргами… А теперь посмотрим, что делается на мини-машине. В машзале… пардон… в комнатушке уткнулись в экраны два программера да из-за стойки торчат ноги электронщика, который, как обычно, колдует там чего-то с паяльником. Все! А когда программеры написали наконец свои программы и их стали применять пользователи, то… ничего не изменилось: в комнатушке уткнулись в экраны два инженера-расчетчика или сметчика, а из-за стойки, по-прежнему, торчат ноги электронщика. И вся армия посредников между компьютером и конечным пользователем — не нужна! Не нужны милые девушки, что перфорируют исходные данные: пользователь собственноручно их вводит; не нужны суровые тетки контролеры-проверяльщики: интерактивная программа все проверит «на лету» и тут же — в процессе диалога — данные можно поправить. Архивирование сделает сам пользователь или тот же электронщик, его одного на одну машину — больше, чем нужно, вот и пусть еще ленты помотает, чай не перетрудится. С переходом на малые машины теряло смысл само понятие вычислительного центра как самостоятельной организационной структуры, как отдельного помещения (порой даже — отдельного здания), по напичканности всевозможным железом, по пожираемым киловаттам больше похожего на производственное, чем на конторское. Недаром мини-ЭВМ назывались средствами автоматизации уровня отделов, лабораторий, рабочих групп. Их можно было запросто поднять на нужный этаж, поставить в лаборатории, в закутке рядом с бухгалтерией. Можно было даже установить дисплей прямо на рабочее место, например, диспетчеру нефтебазы или сменному инженеру в цеху… Так что, с начала восьмидесятых над персоналом эксплуатационных служб АСУ стали сгущаться тучи…

В то время автоматизация держалась на триаде: программисты, электронщики, асушники. Первые крайне редко «принадлежали» предприятию, где внедрялась АСУ. Обычно они были работниками специализированных проектных или (когда проект особо сложен и/или престижен) научно-исследовательских институтов. Зато предприятию приходилось нанимать много электронщиков. Не от хорошей жизни — качество советских ЭВМ было таково, что требовался бесконечный, каждодневный ремонт… Профессия эксплуатационников восходит еще к докомпьютерной эре, к табуляторам, фактурным и счетно-перфорационным машинам. Мне приходилось в те годы встречать на вычислительных центрах ветеранов, начинавших в сороковые, когда кибернетику клеймили «продажной девкой империализма». (Естественно, к машиносчетным станциям ЦСУ и к расчетно-кассовым центрам Госбанка эти сексуально-философские претензии не относились). Но массовой профессия становится в семидесятые, по ходу массового внедрения ЕС ЭВМ и других компьютеров невоенного (не только военного) назначения. Именно тогда к ней приклеилось прозвище «асушник». А к восьмидесятым профессия достигает своего расцвета: успели выучиться и приобрести рабочий опыт выпускники факультетов автоматизации, сформировались организационно, сложились и устаканились коллективы на предприятиях, наконец, программисты успели понабивать себе шишек во всех местах, тоже понабраться опыта и сделать — запроектировать, отладить и внедрить эти самые АСУ. В начале десятилетия вся громадная (в масштабах страны) махина вертелась, наконец-то, почти без сбоев. И точно так, как всегда в жизни бывает, не успел наступить расцвет, как повеяло упадком. Не явно, разумеется. У программных систем довольно долгий жизненный цикл — лет десять; большинство проектов АСУ были как-раз развернуты к рубежу восьмидесятых и должны были экплуатироваться до начала девяностых. Так что, внешне почти ничего не менялось. Однако, самые прозорливые асушники чувствовали в мини-ЭВМ угрозу для себя. До саботажа дело не доходило, но по моему опыту, внедрение новых проектов на базе мини-машин на предприятиях, где уже были ЕС ЭВМ, проходило куда тяжелеее, чем «с чистого листа»… К концу десятилетия, к окончанию сроков эксплуатации и софта, и железа службы АСУ ждала структурная перестройка и незбежные сокращения. Но тем временем случилась «Перестройка», а вслед за нею сокращению подверглась вся советская экономика. Кто уж, когда останавливались заводы, вспоминал о каких-то АСУ… Однако, это будет еще нескоро, вернемся к началу десятилетия.

Бытует устойчивый миф, что до начала проекта ЕС в стране было де множество разных типов компьютеров, а после — унылое однообразие «еэсок», ну и еще может быть «эсэмок». Конечно, в действительности все не так. К восьмидесятым (а это, пожалуй, наивысшая точка развития советской компьютерной индустрии) разнообразие применяемых архитектур достигло апогея, намного обогнав «славные» шестидесятые. Просто упомянутые выше машины были «мэйнстримом» и многие из ностальгирующих не подозревали о существовании еще каких-то… Однако и я начну обзор мини-машин, с которыми пришлось иметь дело, с мэйнстрима, с так называемых «эсэмок»… Почему так называемых? Судите сами. Семейство СМ ЭВМ имело в своем составе машины пяти (!) абсолютно разных архитектур. С другой стороны то, что принято называть «эсэмкой», выпускалось только в Союзе под четырьмя (!) различными наименованиями: СМ-4 (1420 и ряд других моделей), Электроника-79 (и ряд других моделей), М-400, Наири-4. Добавьте еще польские Mera, венгерские TPA, болгарские ИЗОТ-1016. Все эти машины были совместимы между собой, поскольку являлись клонами PDP-11 компании Digital Equipment Corp. Тут не удержусь, чтоб не воскликнуть: легендарной архитектуры PDP-11 и легендарной компании DEC!

Менее всего программистам свойственны сентиментальность или восторженность. Уж не знаю почему, но типичный программер — это довольно-таки неприятный тип, иронично-насмешливый, язвительный до глумливости. Чтоб что-то похвалить, да еще в превосходных степенях… лучше удавиться. Но заведите с ним разговор о PDP-11 и вы услышите, как голос его теплеет. А ведь работал он даже не на самих PDP, а на кондовых советских клонах. В чем же дело? Эти машины были красивы! Не внешне, конечно. Красива, изящна, элегантна была их архитектура… хм… как объяснить красоту инженерного решения, не вдаваясь в технические детали? Оно было минимально, ортогонально и гомогенно. Главным инструментом дизайнеров была бритва Оккама: при богатстве возможностей — ничего сверх необходимого. Машины получились мощные, надежные, простые в изготовлении (даже советским монтажникам не удавалось их испортить), были на редкость неприхотливы и дуракоустойчивы. Первая модель была выпущена еще в 1970 году. К началу восьмидесятых, когда в Союзе развернули, наконец, их клонирование (да-да, опять десятилетнее отставание) семейство PDP-11 было признано хитом десятилетия, пользовалось заслуженной любовью программистов и имело колоссальный фонд программного обеспечения. Операционные системы производства DEC (а их на наше счастье не пытались «улучшить», а просто переименовали и перевели на русский документацию) отличались простотой использования, надежностью и элегантностью — все логично, ничего лишнего. Были компиляторы двух главных языков — ФОРТРАНа и КОБОЛа… И все-таки, для меня (как и для многих советских программистов) эти машины остались навсегда связаны с другой операционной системой и другим языком, оказавшими в последующие тридцать лет огромное влияние как (глобально) на IT-индустрию, так и (персонально) на мою профессиональную судьбу. Вместе с «эсэмками» появились в Союзе магнитные ленты с дистрибутивами операционной системы Unix и первыми компиляторами языка C. Однако, эта тема заслуживает, пожалуй, отдельного разговора…

Другим семейством машин, на которых пришлось изрядно потрудиться, были СМ-2 и ее многочисленные, также по-всякому именуемые родственницы (СМ-1, СМ-1210, М-7000, ТВСО). Прототипом их послужило почтенное семейство HP-2100 компании Hewlett-Packard, выпускавшееся 30 лет, с 1966 по 1996 годы. Где-то к середине семидесятых (опять это десятилетнее отставание!) в Союзе выпустили первый клон — М-6000. Эти машины были основой промышленной (т.е. на заводе, в цеху) автоматизации. В архитектуре машин не было особых красот и изысков, она была честно заточена под задачи управления технологическими процессами. Системная математика от HP (естественно, переименованная и с документацией по-русски) была такая, как нужно на заводе (или в танке): кондовая, простая, без «бубенчиков и свистулек», но — все работало. Из языков использовался ФОРТРАН и ассемблер. Машины эти были посложнее микроконтроллеров, но попроще тех микропроцессоров, что встраиваются сегодня в микроволновые печи. Никого особо не очаровывая красотой и элегантностью, эти неприхотливые скромные трудяги достойны искреннего уважения. Я где-то читал, что их более десяти тысяч было внедрено непосредственно в промышленности и в «оборонке», на честном автоматизированном управлении техпроцессами. Цифра для Союза — офонаренная! Однако, хотя эти машины и задействовались на самых «престижных» объектах (Олимпиада-80, Байконур), они не были «на слуху». Может дело в том, что разработчики сидели в Северодонецке — в провинции, на отшибе — и в столичной тусовке не засвечивались…

И eще одна провинциальная разработка — вильнюсские машины М-5000. Вот они, кажется, были оригинальной архитектуры. Во всяком случае, никогда не слышал об их прототипах. Выпускались они с начала семидесятых и шли на замену старому счетно-перфорационному оборудованию. Соответственно, машины были заточены под задачи статистики и бухгалтерские расчеты, а из языков (помимо ассемблера) имелся совершенно уместный для таких приложений КОБОЛ. Вот, кстати, пример естественной, нормальной судьбы инженерного решения — без великих взлетов, но и без провалов. Десятилетие спустя, когда пришел срок эти машины списывать, литовцы наладили выпуск двухпроцессорных комплексов СМ-1600. Это был клон PDP-11, но содержащий дополнительный блок — процессор, реализующий систему команд М-5000. Понятно, что в компании DEC понятия не имели о таком монстре: всю работу по программному сопряжению в единый комплекс двух разнородных архитектур сделали в Вильнюсе, и сделали очень грамотно. Процессор М-5000 был ведомым и активировался из основного процессора; дальше обе «машины» работали, разделяя общие ресурсы. Так по задумке разработчиков можно было безболезненно перебазировать на новую технику старые приложения «в двоичном виде», вообще их не меняя. А потом потихоньку, в процессе модернизации программ, переносить их на собственно «эсэмку», благо компилятор КОБОЛа там имелся… В конце концов, ставший ненужным блок М-5000 выключался, а то и выбрасывался из стойки, а СМ-1600 продолжала работать в однопроцессорном режиме… С этой машиной у меня связаны воспоминания о необычном, неожиданном комфорте — на грани сибаритства. Сколько себя помню (за вычетом службы оператором на «Минск-22»), всегда мотался по вычислительным центрам, приходя на арендуемое машинное время. Контора, где я работал, хоть и занималась автоматизацией с 50-х годов, но собственной ЭВМ никогда не имела. А тут вдруг подвернулся заказчик, который за плевый в общем-то проект — помощь в миграции с М-5000 на СМ-1600 — обещал выделить для работы одну «эсэмку» и потом она у нас останется. Проект слепили мигом (как я описал выше, все было уже сделано литовцами — знай, следуй их инструкциям), а потом блок сопроцессора вынули из стойки, докупили память и… стали наслаждаться оседлой жизнью: пришел на работу и никуда дальше не надо тебе бежать с лентами-дисками в рюкзаке, спустился на машинку — по кнопкам постучал, поднялся в офис — чаю попил. Красота!

Напоследок о машинах, на которых, правда, не работал, но имел, как говориться, «самые серьезные намерения»… Немногие знают, что были такие «еэски», которые совсем даже не «еэски», в смысле — ничего общего с архитектурой IBM/360. Это — ЕС-1010 и 1012. О том, как оказались в «едином семестве» ЕС ЭВМ эти «приемные дети», ходили легенды. Ну вот, как запомнилось, так и передам — за правдивость не отвечаю… Было в Союзе нехилое такое Министерство нефтегазовой промышленности, то самое, что стало впоследствии ОАО Газпром — тоже немаленькой такой компанией. Поскольку и в давние уже семидесятые годы нефть и газ так же кормили Советский Союз (в прямом смысле — канадской пшеничкой), как кормят сейчас Россию (в лице ее некоторых, особо достойных граждан), то Миннефтегаз мог позволить себе всякие прихоти, которые не сошли бы с рук какому иному министерству… И вот как-то так получилось, что применялись на предприятиях министерства французские мини-компьютеры Mitra компании CII, которая вскоре была поглощена знаменитой Honeywell-Bull. Почему именно эти машины (а были они не хуже, но и не лучше других) — история умалчивает. Скорее всего, получили их вместе с технологическим оборудованием, освоили, привыкли, а дальше… «от добра добра не ищут». Вскоре стали выпускать клоны французских машин на заводе Videoton в Венгрии, причем, не какие-то ворованные контрафактные копии, а все честнo, по лицензии. А происходило это в самый разгар «еэсовской» пиар-компании и, чтобы все были довольны, присвоили машинкам маркировку ЕС. Ну, хоть горшком назови — не убудет…

Теперь, каким боком тут наша контора. Не получая от родного министерства достаточно проектов и не имея гарантированного бюджетного финансирования, наше начальство хваталось за любую работу — платили бы гроши. Поэтому, мы могли вести проекты на громадных предприятиях, вроде Ингалинской АЭС или Николаевского НГЗ, и одновременно «окучивать» какую-нибудь нефтебазу в Жмеринке… Так вот, наш главный инженер вдруг ненароком задружился с важными перцами из Миннефтегаза и те обещали подкинуть проектики. Командировки в Западную Сибирь никого у нас не смущали — наоборот, прельщали северными надбавками (людей, побывавших в разных Эльбанах и Солнечных, не испугаешь Уренгоем). Нам была дана команда изучать машины и готовиться. Я честно поизучал — понравилось. Сходил в местный Институт газа, где они водились, попробовал по кнопкам поклацать — все вроде нормально. Обычный комплект языков — ФОРТРАН и КОБОЛ — в наличии имелся. И кроме того, очень воодушевляло, что в МГУ делали C-компилятор и портировали Unix, причем, должны были вот-вот закончить… Ну, что дальше? Дальше обычная история: слишком уж радостно предвкушали сладкие, жирные проекты от богатеньких буратин-газовщиков — по «закону зловредности» не могло не сорваться. Много, видать, было желающих откусить от газового пирога и наших не шибко пробивных и влиятельных командиров, как водится, оттерли. Ну что ж, не сложилось. Бывает...

011. Unix & C. Гамбургский счет

Любопытно, что вполне подцензурное советское искусство запечатлело в семидесятые-восьмидесятые годы довольно реалистичный образ советского учреждения. Если героические «Сталевары» варили сталь прямо на мхатовской сцене, а бригадиры-бетонщики горели на работе вместе с пламенными секретарями парткомов, то показать героическое трудовое горение счетовода в нарукавниках было слабó даже гениальным Ефремову и Товстоногову. Так что, неспешная, расслабленная, полусонная жизнь многочисленных НИИ, КБ, ПKTИ, всевозможных учетно-расчетных, контролирующе-регистрирующих, планирующе-администрирующих и совсем уж непонятно чем занимающихся контор была вроде бы как в порядке вещей. Конечно, когда имелся личный интерес, люди работали. В тех же НИИ очень даже упирались, делая диссертацию. Но после защиты можно было «выпасть в осадок». А на заводах и в «пусконаладках» вкалывали из-за хороших (сравнительно) денег — премий и прогрессивок. Но в том же заводоуправлении вполне можно было «припухать» десятилетиями. В целом же система не стимулировала труд: «как вы нам, якобы, платите — так мы вам, якобы, работаем». Впрочем, с оплатой-работой не все так просто…

Пожив достаточно долго на Западе, повидав повседневную жизнь в офисах больших корпораций и государственных ведомств, я уже не «качу бочку» на «самый передовой строй». Вероятно, оплачиваемое беловоротничковое безделье есть непременный и чем-то необходимый атрибут цивилизации… Но оставлю теоретизирование интеллектуалам. По моему скромному разумению, в разумно устроенном обществе у человека есть выбор: гужеваться ли ему на привязи в уютном офисе клерком (с перспективой выбиться в столоначальники) или идти в неуютный, даже жестокий мир бизнеса, где у него будет полная свобода совершать свои собственные ошибки под свою собственною ответственность. В Союзе последняя альтернатива отсутствовала, а взамен ее были три возможности, три дороги. Первая и самая исхоженная, столбовая — водка. Недаром по-русски говорится «уйти в запой». Сколько вот так ушло коллег, знакомых, соучеников, начиная еще со студенческих лет, причем, как назло — талантливых, умных, честных… Не сосчитать. Когда-то читал оправдывающее русское пьянство научное изыскание о генетической, дескать, предрасположенности северных народов к алкоголю. Будучи народом южным, я по этой дороге не пошел. А припустил по кривой и ухабистой тропке «заколачивания бабок». Естественное, обыкновенное вроде желание заработать (не украсть), настолько оно было противно естеству и обыкновению советского жизнеустройства, что носитель оного автоматически превращался если не в преступника, то в субъекта асоциального, уж точно. Сколько лет я работал на двух работах по двум трудовым книжкам, столько ходил, что называется, «по лезвию ножа». В конце концов, когда запахло серьезными неприятностями (и за что?) — бросил. Пошел в промавтоматику. И опять не ладно. Опять приходилось изворачиваться, хитрить, химичить с липовыми нарядами и фальшивыми командировками. И все это, чтобы просто получить свои честно заработанные (да и не ахти какие) деньги. Противно. К тому же, очень уж тяжело эти деньги давались — в ущерб семье, отдыху, чтению, в ущерб профессиональному росту. Поэтому, нет-нет, да и поглядывал я не без зависти на избравших третий путь — «удовлетворение личного любопытства за казенный счет»…

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

У меня еще в те годы закрадывалось подозрение, что Совья Властьевна все это прекрасно понимала и сознательно давала возможность технической интеллигенции резвиться на рабочем месте как заблагорассудится — лишь бы в политику, в диссидентство не лезли. Разумеется, я говорю о вегетерианском периоде советской истории, об относительно сытых семидесятых и восьмидесятых, когда вся страна сидела на халявной нефтегазовой игле и — по большому счету — ни хрена не делала. Народ пьянствовал, подворовывал тихонько. Ну, так чего бы не дать интеллигентикам безобидной ученой дурью помаяться?.. Вот так же помаяться увлекательной дурью, но чтоб не бесплатно, а в рабочее время — и мне хотелось. Но как? Кафедры и НИИ были надежно для меня закрыты. Надо было устраиваться на месте, благо возможность такая имелась: контора отчаянно нуждалась в проектах; добудь хоть-какой для своей бригады — тебя не просто одобрят, на руках будут носить. Так-так, а я регулярно ездил в Госплан — сопровождал (в качестве свиты) нашего главного инженера. Ну и завязывал там полезные знакомства, искал удобного случая. И он представился, случай под названием Unix… Но, по порядку…

Впервые о языке C, о системе Unix я прочитал еще в семидесятые… Пользуясь семейным блатом в ГРНТБ (республиканской научно-технической библиотеке), я имел доступ к журналам, которые переводились на русский или реферировались, т.е. считались благонадежными и были всего лишь «для служебного пользования». Каковое пользование заключалось в том, что они в пятницу вечером уносились в сумке из библиотеки, а в понедельник утром благополучно туда возвращались. Так я лет пятнадцать читал Electronics Weekly и Acta Informatica… Но то были рассказы о чем-то далеком и недоступном. Как вдруг, году эдак в 81-м, сразу во многих местах появились магнитные ленты с дистрибутивами Unix v6 и v7. Откуда? Переписали у знакомых, те — у своих знакомых… далее — везде… Система преспокойно запускалась на СМ-4 (игнорируя, естественно, русский язык), а дистрибутивы содержали исходные тексты ядра, компиляторов, утилит, а также полную документацию. Конечно, требовалась русификация драйверов дисплеев и принтеров и «обучение русскому языку» многочисленных программ обработки текстов. Но это все были вполне посильные задачи, главное же — система изначально была вполне работоспособной…

Удивительного в самом факте появления лент мало: в Союз попадала математика от IBM, DEC и HP, теперь вот попали разработки Bell Labs — большое дело! Удивительна была дальнейшая судьба этих лент в Союзе. Не передача (под большим секретом) в пару-тройку институтов, чтобы там на их основе с понтом якобы разрабатывать якобы советскую математику, но бесконтрольное и явно несанкционированное распространение по разным ВЦ в разных городах страны. Похоже, что ленты привезены были в Союз не доблестными героями из «конторы глубинного бурения», а аспирантами-докторантами, выезжавшими по обмену на стажировку в западные университеты (где дистрибутивы Unix распространялись свободно и бесплатно). Конечно, людям вроде меня, бывшим долгие годы невыездными, в это верится с трудом. Когда мне разрешили, наконец, навестить родственников в Польше, я всерьез трясся, что на границе не пропустят купленные там книжки Лема. К счастью, пропустили. Однако помню, как в том же вагоне погранцы повязали старика-поляка. Они когда шли по вагону, то громкой скороговоркой возглашали: «оружие-наркотики-религиозные атрибуты». Это что запрещено, дескать, ко ввозу. Именно так, через тире: оружие — иконки — наркотики… И вот старика обшмонали и обнаружили дешевенькую литографическую бумажную иконку. Старик — явно сельский житель из галицийской глубинки — путая от волнения украинские и польские слова, сбивчиво пытался объяснить, что его старуха больная, он ей везет освященный образок Матки Боски Ченстоховой, только ей, больше никому даже показывать не будет. А когда иконку забрали — заплакал, попытался бухнуться на колени, лопотал, что у старухи рак, она умирает, он только за этим образком в Польшу и ездил… Погранцы увели его и никто в битком набитом вагоне за старика не заступился. И я молчал — такой же трусливый раб, как все, только что с фигой в кармане… Так вот, тогда у меня и в мыслях не могло возникнуть тащить через границу магнитную ленту. Но… это пуганый воробей стреляную ворону боится. А вот знакомый поляк, учившийся в заочной аспирантуре в Киеве, постоянно мотался туда-сюда и именно с лентами. Вряд ли на границе проверяли, где материалы его личной диссертации, а где что-то другое. Да и люди, выезжавшие на Запад на стажировку — хоть и мало таких, но были (даже среди авторов «Заметок» есть) — с хорошими анкетами, непуганые… Так что, по здравому размышлению, версия о привозе в Союз этих лент в порядке частной инициативы выглядит вполне реалистичной.

Другая версия — еще (сюр)реалистичней: через знаменитый рыболовецкий колхоз имени В. И. Ленина, что на острове Сааремаа (вот написал и засомневался: Ленина ли или какого другого краснопузого ублюдка калибром помельче?.. но, не суть важно). Сведущие люди не удивятся и не спросят, а какое это отношение имели эстонские рыбаки к операционным системам и вообще — к компьютерам. Те же, кто не в курсе, могут погуглить “Datasaab affair” — это будет предыстория. Что до самой истории, то позднее мне довелось познакомиться с этими славными колхозниками, о чем расскажу в свое время. На прямой вопрос об их причастности к “Unix affair” я получил довольно уклончивый ответ. Что, как говориться, наводит на…

Ну ладно, так или иначе ленты в страну попали, а дальше… А дальше сработала та Unix-магия, которая очаровывала всякого, кто начинал знакомиться с системой. И которая за считанные годы принесла сугубо исследовательскому, любопытства ради затеянному, некоммерческому проекту феноменальную популярность по всему свету… Хм… тут, чувствую, необходимо сделать некое предуведомление. До сих пор я рассказывал о делах давно минувших, о компьютерах, сохранившихся разве что в музеях, о программах и языках, если и доживших до наших дней, то доживающих где-то в укромных уголках, вдали от столбовых дорог. Unix же сегодня — это даже не одна конкретная система, а целый континент, целая техническая цивилизация со своей сорокалетней историей, что и по меркам человеческой жизни много, а в масштабе спрессованного времени IT-мира соответствует столетиям, эпохам. Это определенная философия, стиль, комплеск идей, определивших облик современной IT-индустрии. Наконец, это весомый сегмент рынка, многомиллиардные активы. Что же до языка C, то он и его потомки (C++, Objective-C, Java, C#) составляют мэйнстрим, доминанту современного программирования… и трудно сыскать язык, созданный в последнюю четверть века и не испытавший его влияния. А для большинства активно работающих программистов (тридцати- и сорокалетних) нынешний мир — единственный, другой они не застали. Я же пытаюсь рассказать о том другом, исчезнувшем мире. О далеких предках могущественных фамилий Unix и C, передавших потомкам свои имена и родовые черты, но отличавшихся от них, нынешних, поведением и мотивацией, привычками и идеалами — очень, очень многим… Тогда в начале восьмидесятых в Союзе мы имели технику семидесятых годов (неизбывное технологическое отставание) и версии Unix нам были доступны из предыдущего десятилетия (не потому даже, что более современные не удалось спереть на Западе, а попросту не было машин, где б они могли работать). Итак, если вдруг кто-то из молодых коллег будет читать этот текст, пусть примет во внимание временнóй фактор: речь идет о первом десятилетии сорокалетней истории. Это все равно как первое столетие четырехвековой истории Нью-Йорка — безлюдные лесные чащобы Манхэттэна, крошечное поселение на побережье и… все еще впереди…

Так чем очаровывал Unix? Прежде всего, языком C, на котором был написан. Долгожданным языком программирования для программистов. Стоп! А другие языки, тот же ФОРТРАН или КОБОЛ, они для кого? Да, для нас, конечно, для кого ж еще. Но только эти языки были заточены под решение тех или иных прикладных задач — инженерно-расчетных или бухгалтерско-учетных, а вот как быть с задачами неприкладными? Они как невидимая часть айсберга — неприметная громадина, с которой пользователь напрямую не соприкасается: операционные системы и базы данных, компиляторы тех же языков программирование, утилиты, драйверы устройств и и еще тысячи всяких разных программ, сервисов, библиотек функций и т.д. и т.п. И все это нам надо программировать. На чем? Нынче и вопроса такого не возникает, но ведь было время, когда в ответ звучало: «на ассемблере» — на низкоуревневом машинном языке. Или же на языках вроде ФОРТРАНа или ПЛ/1 — чересчур высокоуревневых. Гений дизайнера (Денниса Ритчи) как раз и проявился в безошибочном выборе уровня языка, уровня абстракции — достаточно близкого к «железу», чтоб обеспечить эффективность и достаточно далекого от него, чтоб не утратить мобильность… А еще язык был как-то очень ладно скроен, явственно ощущалось, что запроектировал его человек, знаюший ремесло программера не понаслышке. Короче говоря, прочитав с восторгом описание языка (тут еще сыграла свою роль изумительная книга Кернигана и Ритчи, недаром называемая «the White Bible» и по праву считающаяся шедевром технической прозы) и написав пару-тройку программок я уже ни на каких других языках работать не хотел. (Но всему свое время: уже лет пятнадцать, как я на нем не работаю и… не хочу — на C++ или C# куда как удобней)…

Сама же система Unix привлекала своей компактностью, обозримостью, концептуальной стройностью, легкостью. Она изначально задумывалась и создавалась как антитеза тяжеловесным, многофункциональным, переусложненным, труднопостижимым, внушающим почтительный ужас разработкам огромных коллективов, что было характерно для эпохи мэйнфреймов. Квинтэссенция, яркий зримый образ этих чудищ нарисован в замечательной книге руководителя разработки системы OS/360 Фредерика Брукса «Мифический человеко-месяц» (“The Mythical Man-Month” by Frederick Brooks) — асфальтовая топь, зыбучая смоляная трясина, неумолимо затягивающая попавших в нее динозавров. В книге убедительно показано, каких чудовищных усилий и денег стоит разработка больших систем, достижение должного уровня качества и надежности. Создатели Unix участвовали в разработке операционной системы Multics, само название которой (Multiplexed Information and Computing Service) недвусмысленно указывало на сложность, множественность исполняемых функций. Устав барахтаться в смоляной яме «отцы-основатели» Кен Томпсон и Деннис Ритчи принялись делать простую и понятную систему, которую они с явным вызовом поначалу назвали Unics, т.е. “uniplexed” по контрасту с “multiplexed”. (Забавно, что пресловутый монстр Multics выглядит предельно компактным и простым до примитивности на фоне современных операционных систем, потомков Unix).

В своей книге Брукс вспоминает излюбленные журналистами сказания о том, как дескать пара энтузиастов склепала на коленке в гараже замечательную программу, оказавшуюся лучше корпоративных разработок с многомиллионными бюджетами. Многоопытный менеджер проекта с понятным сарказмом вопрошает, почему же дуэты одержимых парней из гаражей не заменили собой софтверные компании? А ведь правда — не заменили. Но и пресловутые гаражные дуэты — не выдумка: Билл Хьюлетт и Дэйв Паккард, Билл Гейтс и Пол Аллен, Стив Джобс и Стив Возняк, из совсем недавних — Ларри Пейдж и Сергей Брин. Они — больше, чем правда: «двое в гараже» — архетип современного мифа. А разгадка кажущегося противоречия в том, что в гаражах начинают, но успешное начинание успешно продолжаться может только в офисе… Unix, созданный хоть и не в гараже, но небольшой группой исследователей, тоже стал мифом, а точнее — жертвой на алтаре собственного культа.

К концу семидесятых Unix являл собой идеальную систему для университетов и исследовательских лабораторий, т.е. для групп энтузиастов. Он был ясен и прозрачен, поскольку реализовывал только «самые вкусные», концептуально важные идеи. По сути, это был замечательный набор инструментов и заготовок для творческого применения при самостоятельном построении операционной среды. Дополнительным плюсом было то, что помимо великолепно написанных программ имелась не менее великолепно написанная документация. Впрочем, тексты эти грех называть казенным словом «документация». Чего стоила только «Книга Джона Лайонса» (“Lions’ Commentary on Unix” by John Lions), которая объясняла функционирование ядра системы «в лицах», комментируя работу его модулей и служб — совершенно уникальное, бесценное пособие… Так, а чего же в системе не было? Не было ничего даже отдаленно напоминающего интуитивно-понятный «дружественный» интерфейс. Система предназначалась искушенным профи, а никак не лопуховатым ламерам, и принципиально не «обихаживала» пользователя. Что еще? Вот я упомянул раньше, что не было поддержки русского языка. Так никакого языка, ничегошеньки, кроме базовой (английской) латиницы и неявной локализации для Соединенных Штатов. Предполагалось, что если понадобится французу, японцу или русскому поддержать родной язык, то он изучит исходный код, да и наточит систему соответствующим образом. А если у кого-то на машине стоит устройство, которого не стояло у разработчиков в Bell Labs (и посему нет в поставке), то пускай возьмет и сам напишет драйвер устройства. Ну, а если захочется перенести систему на другую машинную архитектуру, то… все открыто, изучай, пиши C-компилятор (даже не весь, а только кодогенератор — модуль, где сконцентрирована машинная специфика), потом меняй машинно-зависимые модули ядра системы и… вперед. Непростая, но страшно интересная задача.

Итак, Unix был по сути типичным удачным исследовательским проектом. Только — очень удачным. Настолько удачным, что распространение его напоминало пандемию (чему изрядно поспоспешествовали дешевизна и либерализм лицензий). Естественно, не могло не возникнуть желание подзаработать на столь популярной штуковине и… дальше, в восьмидесятые годы, начинается уже другая история: выпуск множества коммерческих версий, череда покупок и перекупок лицензионных прав, бесконечные судебные тяжбы, появление альтернативных ядер (Minix, Linux), в девяностые — дурацкая быдловатая «юниксомания», круто замешанная на завистливой «гейтсофобии»… Все это общеизвестно и совсем неинтересно. На авансцену вышли торговцы, юристы и пиарщики, а симпатичные бородачи — создатели системы — тихонько отошли в тень и, поскольку слово “Unix” стало товаром, продолжили свои исследования под другой вывеской — Plan 9…

Ход событий в Союзе соответствует общему тренду: сначала хаотичное увлеченное «освоение» новой игрушки; потом постепенно выкристализовываются центры, где адаптацией и локализацией начинают заниматься всерьез — ИНЭУМ, Курчатовский институт, ИПК Минавтопрома — и выпускают, наконец, три конкурирующие локализованные версии для советских клонов PDP-11 — ИНМОС, ДЕМОС, МНОС, соответственно (расшифровка аббревиатур: «инструментальная мобильная», «диалоговая единая мобильная», «машинно-независимая» операционная система). Особняком, слегка на отшибе держались те, кто реализовывал Unix на машинах не самых массовых и популярных. Я упоминал уже команду из МГУ, сделавшую реализацию на ЕС-1010 и 1012, причем, написавшую с чистого листа C-компилятор и ядро ОС (насколько я знаю, на французские прототипы этих машин, Mitra-15 и 225, Unix так и не был портирован). В другой команде, ухитрившейся засунуть Unix в «советский Wang», легендарную «ядерно-бухгалтерскую» машину Искра-226 (о, это было не просто!), довелось участвовать автору этих строк. Но это отдельная история...

012. Unix и Искра. Начало

В начале восьмидесятых мне приходилось достаточно часто ездить в Госплан, сопровождая главного инженера. Причина, по которой незнатная провинциальная контора привлекалась к госплановским экспертизам крылась как раз в нашей репутации технически грамотных, но недалеких и неискушенных провинциалов — объективность отчета гарантировалась тем, что уж кто-кто, но мы точно не принадлежим ни к одному из могущественных московских кланов, отчаянная грызня которых замещала отсутствующую рыночную конкуренцию… Так вот, там я подружился… не подружился… ну, скажем — сошелся с одним чиновником отдела вычислительной техники. Александр Александрович был лишь чуть старше меня, но занимал позицию референта начальника отдела (каковой, если не ошибаюсь в советской табели о рангах, был в стране как-бы главный бугор по компьютерам). И вот, пока его босс слушал доклады моего босса, мы болтали о всяких интересных новинках, о «юниксе» в том числе. Александр Александрович еще не забурел на чиновничей должности, напротив, живо всем интересовался и несколько жеманно сокрушался, что злая судьбина забросила его в такое унылое, безотрадное место, как Госплан СССР… И вот как-то раз он поделился головной болью. В Госплане издавна использовались машины Wang 2200. В конце семидесятых при очередном приступе шпиономании (старая советская паранойя о «жучках» в импортных компьютерах) ЦК принял решение о замене их безопасными отечественными аналогами. Прошло несколько лет, машины сделали, но приступ к тому времени поутих и в Госплане эту «советскую гадость» — его аж передернуло от отвращения, — ставить не будут, но выпускать — таки да, будут. Уже вовсю клепают. — Ну, и в чем проблема? — А в том, что машину сделали полностью программно-совместимой с «вангом», т.е. из языков там наличествует только интерпретатор Бейсика. Для всяких расчетно-бухгалтерских задач другого и не надо, но есть пользователи, что требуют шустрой работы, Бейсик их сильно тормозит. И это влиятельные люди, их не «пошлешь». — Так «юникс» туда поставить! — Вот-вот, только никто не хочет браться. Разработчики машины свое дело сделали и уже вовсю дырочки в пиджаках буравят (Александр Александрович оказался пророком — невдолге получили мужики Госпремию), так что оно им не интересно, а в Москве никто не будет за питерскими подтирать, тем более перспектив ноль — за голую зарплату. — А мы бы взялись за зарплату — говорю. — Да? И почем? — Ну… группа из четырех разработчиков… это — обмирая от собственной наглости, — тысяч пятнадцать… — и бровью не повел! — плюс административные расходы… двадцать… и машину. — Короче, для круглого счета, тридцать тыщ в год, два-три года, — подытожил Александр Александрович, — это даром. В Москве за такие копейки разве что обзор литературы сделают. А справитесь? — Да кто ж его знает, — я совсем оборзел, — будем стараться изо всех сил. Вы сами говорите, что даром. А вдруг выгорит. Если нет, обзор литературы напишем. — А какой вам интерес? — Интерес простой. Вот мне светит на следующий год химкомбинат в Балаково или объединение «Азот» в Новомосковске — одна гадость гаже другой: сидеть там безвылазно в вонючем цеху. Или же дома в Киеве делать интересную работу и в Москву в командировки ездить, в театры ходить. — Хм… А что — хорошая мысль… Ну вот, скоро в заседании перерыв, давайте-ка своим боссам эту идею в головы вложим. А вдруг и впрямь выгорит.

Меня еще отец учил: хочешь чего-то добиться, преподнеси идею начальству так, чтоб оно считало ее своей. За обедом я главного обработал. Впрочем, много времени не понадобилось — мужик он был хваткий, на лету подметки рвал и уже за десертом вовсю мне растолковывал плюсы своей идеи, которую (если выгорит) мне предстоит реализовывать. Хитрый аппаратный лис Александр Александрович в советах как обрабатывать начальство, разумеется, не нуждался. Так что после обеда оба они были званы в высокий кабинет, откуда Александр Александрович вышел уже с одобренными цифрами (наш главный инженер — по всему видать — показал высокий класс выцыганивания денег и годовой бюджет проекта подрос до 50 тысяч). Я сел за пишмашинку и мы в четыре руки до конца заседания коллегии подготовили задание на разработку «унифицированного инструментального комплекса для персональной клавишной ЭВМ Искра-226», сокращенно «Уникс-226» (и никакой тебе подозрительной иностранщины, типа “Unix” и близко нет — все чисто), договор с календарным планом и всеми прочими бумагами, которые сразу же и подписали… В тот день из Госплана мы не вышли, а на крыльях вылетели. Дальше обязательная пробежка по магазинам (что бы ни было по работе, но каждый из нас, невзирая на должность, был обязан, возвращаясь из Москвы, закупить лимоны, апельсины и прочее по списку) и вот, наконец, мы в вагоне. Чем хороша поездка с начальством — в спальном вагоне (СВ). Сели и тут шеф достает из саквояжа бутылку армянского коньяка, икорку, другую вкусную закусь. Когда успел затариться, ведь по магазинам мы вместе гоняли, да и не купишь такое в магазине? Не иначе, как в госплановских закромах. Но, не важно откуда добыл, приятно (не скрою), что «проставился». Этот вечер мы славно провели, обсуждая будущий проект, «уговорили» коньячок под стук колес… А наутро, в Киеве начались трудовые будни.

Даже с госплановским нарядом на руках машину пришлось «выбивать» на заводе «Счетмаш» почти полгода. Но время не было потеряно: я смотался в Курск с грозным предписанием об оказании всяческого содействия и привез полный комплект документации на машину — еле допер. Съездил также на ЛЭМЗ, к разработчикам (кстати, не удивительно разве, что дизайн компьютера делали на Ленинградском электро-механическом заводе; и это при наличии ИНЭУМ, ИПИАН, ИТМиВТ, НИИУВМ, НИЦЭВТ, НИИЭВМ, НПО НЦ, ИПУ и прочих грандов советского комьютеризма). Питерцы, в отличие от курян, приняли меня радушно и госплановская пайцза не понадобилась: мужики они оказались доброжелательные (никакой угрозы в конкурентно-карьерном плане мы для них не представляли), дали полные архитектурные спецификации на машину, листинги «прошивок» микропрограмм и их собственный инструментальный стенд, с помощью которого был сделан интерпретатор Бэйсика — он включал ассемблер и отладчик. (Тут надо бы пояснить, что Искра-226 позиционировалась как высокоуровневый Бейсик-компьютер и никаких средств программирования на машинном языке, никаких сведений об архитектуре машины пользователю не предоставлялось. Этот вакуум информации породил совершенно дикие домыслы об ее устройстве).

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

Совершенно вылетело из памяти как я впервые попал в Институт повышения квалификации Минавтопрома. Помню, что приехал туда докладывать о нашей работе — там регулярно проводились семинары по «юниксизации». Но ведь не с улицы я к ним зашел, на участие в семинаре надо было получить приглашение, тем более на доклад. Не помню — отшибло начисто. Не исключено, что все тот же Александр Александрович меня туда порекомендовал… Что помню, так это долгое, томительное сидение в жарко натопленной, душной аудитории (была зима) и отчаянную борьбу с дремотой. В научном мире, как я понимаю, свои правила игры — аспиранты и кандидаты должны были «набирать очки», участвуя в разных конференциях. Наверное поэтому программа семинара чего только не содержала, имеющего весьма отдаленное отношение к Unix: и какое-то оптимальное агрегирование многомашинных комплексов, и опыт реализации транслятора языка Алгол-68 на ЕС (это я как раз послушал), и совсем заоблачные доказательства чего-то там в реляционных алгебрах… Мое сообщение было самым последним и я измаялся, пока дождался. Посему, выйдя к доске, поступил крайне нестандартно: раздал заранее отпечатанные листки с координатами-телефонами и сказал, что тема выступления хорошо если интересна двоим-троим из всех присутствующих, а посему мучать вас не стану — идите себе с миром, а я отвечу на вопросы оставшихся, если таковые будут. Народ радостно ломанулся на выход и остались аккурат три человека. Один сказал: «А чего нам тут сидеть в духоте, пойдем на машину, там у нас и чайничек есть» — «В гермозоне?» — «Ну, а где ж ему еще быть?» Сразу стало легко и приятно: свои люди… Так я познакомился с заведующим кафедрой прикладной математики и вычислительной техники Михаилом Изгияевичем Давидовым и его замечательной командой — «птенцами гнезда Давидова», как они себя называли.

Если приложимо к еврею определение «крестный отец», то Михаил Давидов был крестным отцом советского «юниксизма». В ИПК, на его кафедре образовался своего рода неформальный клуб, где собирались люди, интересующиеся Unix и что-то делающие в этой области. Люди очень несхожие, весьма амбициозные и совсем не «стайные», к тому же — работавшие в разных, порой относящихся к враждующим кланам, организациях. Собрать вместе стаю котов — это мало кому удается, а если и удалось — долго не длится. Давидову удалось. Сказалось его великое терпение и мастерство медиатора. Также сыграло свою роль, что сам он недвусмысленно отказался от личных амбиций разработчика (их собственный проект МНОС вскорости влился в «курчатовский» ДЕМОС), продолжая при этом — единственный известный мне завкафедрой — активно помногу программировать и исподволь направлять своих талантливых мальчиков. Он позиционировал ИПК, как место подготовки специалистов по Unix, место проведения формальных конференций и неформальных встреч — не для обязывающей координации работ (все равны, никто никем не управляет), но для «сверки часов», оценки твоих достижений коллегами по строгому «гамбургскому счету»…

А вот что Давидов таки да координировал, так это совместную, общими усилиями подготовку Unix-документации на русском языке. Здесь и нам удалось положить свои пять копеек в общую копилку… С самого начала в наш проект была заложена денежка на перевод «зарубежных информационных материалов». Мне удалось втравить в это дело блистательного киевского переводчика — Леонида Бурштейна, который к тому же работал программистом (технические переводы были тогда чуть ли не единственным легальным способом дополнительно подзаработать) и в процессе перевода сам здорово увлекся «юниксом», т.е. переводил текст, не только великолепно владея языком (как английским, так и русским), но и понимая профессионально предмет изложения — идеальный случай! Мог бы сразу вносить текст в компьютер, но правила бюро переводов требовали печати на пишмашинке со вписыванием английских слов ручкой. Потом эти переводы в количестве одного экземпляра депонировались в ГРНТБ и никто б их никогда не увидел, если бы второй экземпляр я не привозил на время в ИПК. Там на курсах по «юниксу» курсанты (для получения зачета) вводили в машину энное количество страниц документации, вычитывали и проверяли введенное сокурсниками. Таким вот способом стали общедоступны на русском языке “UNIX Programmer’s Manual” шестой и седьмой редакций (это три огромных фолианта) плюс дюжины три отдельных немаленьких книжек с описаниями программ и языков (lex, yacc, awk, sed, ratfor, и многих других). Тексты эти разошлись на магнитных лентах по всей стране, а с появлением рунета — появились на множестве сайтов, и нигде не фигурировало имя переводчика. Восстанавливая справедливость называю его: Леонид Бурштейн.

Разумеется, все тексты, подготовленные участниками клуба, были доступны всем участникам клуба. Так, через короткое время по-русски можно было прочесть и «Язык программирования Си» Кернигана и Ритчи, и «Руководство по операционной системе UNIX» Готье, и множество описаний как системы, так и всевозможного софта, на ней работающего. Появились и первые оригинальные (непереводные) учебники по C и Unix пера (точнее, клавиатуры) того же Давидова. Никогда ранее, при «официальной» адаптации западных систем, у программистов не было столь качественной и полной документации и сопутствующих книг (об авторском праве и роялти, конечно, никто тогда не думал)… Мы же для себя решили давнишнюю проблему: по согласованию с заказчиком вся наша официальная документация состояла из трех страничек, отпечатанных чин-чинарем на форматках с рамочками и штампиками в точном соответствии с ГОСТом, где рассказывалось о том, как запустить Unix-утилиту man (просмотр и печать документации). И завершала руководство сакраментальная фраза, что дескать вся остальная информация доступна в диалоговом режиме прямо на машине. Точка! Ах, нет… плюс еще пяток страниц для нормоконтроля с чертежами программ… Уже обещал раньше рассказать про это проклятие, мучившее несколько поколений советских программистов. Не буду дальше откладывать.

Давным давно, еще в докомпьютерную эру (с двадцатых годов) применялись для изображения последовательных процессов или алгоритмов блок-схемы (flowcharts). На них отдельные элементарные (на данном уровне абстракции) шаги изображались прямоугольничками, последовательность шагов — стрелочками, а ветвления (проверки условий) ромбиками. В самом-самом начале, когда языков программирования еще не было, а программы непосредственно кодировались числовыми кодами или, в лучшем случае, писались в «содержательных обозначениях», как рекомендовал патриарх нашего ремесла Александр Львович Брудно, блок-схемы были важным подспорьем. В таковом качестве во время оно их и застандартизировали.

Прошли десятилетия, то есть минули целые эпохи. А от программистов по-прежнему требовали чертить эти чертовы стрелочки и ромбики. Смысла в этом было аж никакого. Во-первых, теоретически доказано, что любой алгоритм, записанный на языке высокого уровня (на любом языке) имеет эквивалентное графическое представление в виде блок-схемы и почти наоборот, любая правильная блок-схема (фишка тут в слове «правильная») эквивалентна некоторому тексту на том или ином языке программирования. Но текст программы завсегда лучше блок-схемы, хотя бы потому, что последней можно только любоваться, а первый — это реальный кусок программы, который компилируется и выполняется на машине. Есть разница? Во-вторых, блок схема может показать только синхронный, строго последовательный процесс вычислений, а в жизни такое наблюдается разве что в небольших несложных программах. Реальные же системы — это не однопоточные алгоритмы, а целые искусственные миры, где множество населяющих их объектов-персонажей (как программных, так и аппаратных) взаимодействуют друг с другом, посылая в непредсказуемые моменты времени сигналы и возбуждая прерывания, и где множество потоков вычислений исполняются одновременно и ассинхронно, порой еще и на множестве процессоров и машин. Получается, что блок-схемами можно проиллюстрировать только маленькие кирпичики, но никак не всю систему, но зачем дополнительно иллюстрировать то, что и так внятно и понятно (с комментариями) записывается в текстовом виде?

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

Загляну еще разок на гостеприимную кафедру Давидова. Всякий раз, бывая в Москве, я туда заглядывал — что-то привозил из переводов, записывал на магнитную ленту новинки. Никогда более я не выступал на конференциях и не посещал оные (признаться, говорильня меня утомляла), но неформальными беседами с Михаилом Изгияевичем и его зубастыми, нахальными мальчиками я дорожил. Понимаю, что наша возня с Искрой-226 — машиной, которую они никогда в глаза не видели — была им абсолютно не интересна, однако меня всегда доброжелательно слушали, вдумывались и по делу критиковали и хвалили. Было на ком «обкатать» идеи: не товарищи по бригаде (они внутри, в деле, слишком близко — «лица не увидать»), а именно, вот такие — посторонние и… не посторонние…

Так прошли три года. Проект благополучно завершился. Мой благодетель, Александр Александрович ушел с повышением в какое-то министерство. Экспертизы для Госплана как-то тоже сошли на нет и… я перестал ездить в Москву. Да так перестал, что вот уже лет 25 — четверть века — в Москве не был. Уж и не буду никогда. Московские контакты и связи постепенно ослабли, истончились, а там и вовсе прервались. Остались только воспоминания, которые вот для верности доверяю интернету...

013. Легенды и мифы древних компьютеров

Была такая книжка «Легенды и мифы Древней Греции» — зачитывался в детстве. Мое повествование — о трудах и днях вроде бы не столь отдаленных. Но по меркам компьютерного мира — вполне античных. А уж легенд и мифов тех давних дней — такой ворох накрутился, такая мешанина из обрывков сведений, полуправды и откровенного вранья, что чувствую необходимость хоть чуточку внести ясность…

Вернусь к началу нашего проекта по переносу Unix на Искру. Случайно, в один день, он организовался (я описал, как было дело, в предыдущей главе) и ввязались мы в эту авантюру, как в драку — не подумав нисколько. Впрочем, ничуть не жалею. Во-первых, все кончилось удачно. Во-вторых, даже если б и неудачно, что, расстреляли бы нас? А в-третьих, неудачно не могло кончиться — задача была вполне по плечу, работать мы умели, работа интересная, а альтернатива — черная пахота по внедрению заводской автоматизации была пострашней любого «юникса» на любой, самой кострубатой машине… Все так, но когда с этим компьютером только познакомился — оторопь взяла (потом свыкся, конечно). Это не значит, что был он какой-то совсем уж отстойный. Отнюдь. Исполнение курского завода, конечно, «оставляло желать», но мы люди привычные, да и кудесники-электронщики у нас для чего? Постепенно все наточилось-наладилось. Я о конструктивных решениях, которые… как бы поделикатней выразиться… были весьма своеобразными. Но… по порядку.

Начну с «тайны рождения». В интернете (что по-русски, что по-английски) сведения об Искре-226 — более чем лапидарны. Касаемо создания компьютера сказано так: «export of Wang 2200 to the Eastern block was prohibited by COMCON (Coordinating Committee on Multilateral Export Controls), and the computer design was apparently stolen by Soviet intelligence». Что в этом тексте самое замечательное — аббревиатура. Координационный комитет по экспортному контролю обозначался CoCom. Можно, конечно, и прописными буквами — COCOM. Расхождение в написании слишком велико для опечатки. Ладно, эмбарго комитет накладывал на экспорт в страны СЭВ — по-английски COMECON. Уже ближе но… не то. Что же такое COMCON? На этот вопрос легко ответит поклонник творчества братьев Стругацких — комитет по контактам с инопланетными цивилизациями. Но, думается, этот комитет к нашей истории отношения явно не имеет. В целом, приведенная легенда — редкостное нагромождение совершенно идиотских нелепостей. Советские шпионы воруют на Западе дизайн компьютера. На кой ляд, спрашивается, когда этими компьютерами битком набито здание в Охотном ряду, дом 1? Что, нельзя оттуда (из Госплана) взять пару-тройку машин, разобрать и реверсным инжинирингом восстановить дизайн? К тому же там и документация имеется, услужливо переведенная на русский самой же фирмой Wang Labs. К чему шпионские страсти, когда секрета никакого нету. А с какого бодуна КоКом будет запрещать экспорт персональных конторских машинок для обработки текстов и бухгалтерских расчетов, когда куда более серьезные мэйнфреймы IBM без проблем попадают в Союз. Ну и наконец, даты. Ужесточение торговых санкций против СССР (как и бойкот Московской Олимпиады) были реакцией на советское вторжение в Афганистан и датируются 1980 годом. Как раз в конце этого года (небось к «октябрьскому празднику» седьмого ноября приурочили) собрали первые машины на курском заводе «Счетмаш». Сделать за считанные месяцы дизайн компьютера и наладить его производство невозможно нигде, а уж в плановой советской системе — подавно. На самом деле проектирование началось еще в 78-м году и запуск в серию в 80-м был невероятным (по скорострельности) успехом. Но если работы развернулись в 78-м, то решения по ним принимались не позднее 77-го, иначе они не попали бы в план следующего года. Ну, а тогда у нас еще вовсю был «детант» и санкциями не пахло…

На самом деле (как я узнал от разработчиков машины и кураторов из Госплана), стимулом к ее созданию послужила параноидальная байка о «жучках в импортных компьютерах», которая издавна гуляла среди советской программистской общественности, равно как и промеж начальства. Что, дескать, в машины, закупаемые у «проклятых америкосов» между тысяч всяко-разных микросхем коварные ЦРУшники имплементируют хитрые жучки, которые собирают обсчитываемые данные и… на спутник-шпион. Более того, в машинах, что мы дураки у них скопировали, эти жучки заранее были предусмотрены, так что сами же их теперь и воспроизводим. «А с чего бы это так легко, думаешь, все спереть удалось? Да они их нам специально подсунули!» И теперь вот, подсчитываем, к примеру, сколько шаек оцинкованных двуручных выпущено предприятиями банно-прачечной промышленности в отчетном году… бац! — цифры полетели из вражины-компьютера прямиком в Лэнгли, а там уж через потребность в помывочно-гигиеническом инвентаре ихние аналитики советский мобресурс оценивают… Сколько таких вот страшилок мне «собственноушно» приходилось выслушивать. На полном серьезе!

И вот кто-то из хитрых руководителей ЛЭМЗ (а может, и кто повыше) воспользовался этим мифом в производственно-личных целях и в цековских верхах родилось постановление о выпуске полностью отечественной ЭВМ, безопасность которой гарантировалась (!) оригинальной архитектурой процессора и системой команд (специалисты юмор, как говорится, «заценят»), а также последовательным употреблением русского языка в программном обеспечении (вот где шпионские жучки-то скрывались — в иностранных словах и командах). А как же быть с миллиардами, уже вбуханными в «еэски» и «эсэмки»? А никак. Те нехай себе выпускаются как прежде, а курский «Счетмаш» будет делать «безопасную» машину для спецприменений. К каковым (к спец, то есть) отнесли: госстатистику и оборонку, т.е. в подразделения Госплана и ВЦ облстатуправлений должна была поступать «машина программируемая электронная клавишная вычислительная Искра-226» и она же в освинцованном радиационно-стойком исполнении — в гарнизоны и на боевые корабли. Конечно, умиляет сочетание требований — радиационно-стойкая бухгалтерская машина (так и просится к ней в пару бухгалтер в противогазе и комплекте ОЗК); представляю, в какой ступор впали бы инженеры из Wang Labs, DEC или IBM, получив такое задание, а наши умельцы — ничего, склепали на коленке, за что заслуженно удостоились Государственной премии.

До сих пор помню свое изумление при знакомстве с документацией на машину. Клавиатура, системный моноблок со встроенным дисплеем, даже графическим — ух ты! Матричный принтер — нормально. Накопитель на гибких дисках — интересно (это были самые первые, еще восьмидюймовые дискеты — мне в диковинку). Магнитные диски и ленты — замечательно. Телекоммуникационный интерфейс: последовательный порт RS-232 — очень хорошо. Даже несколько таких портов — ну, это перебор. Аналогово-цифровые и цифро-аналоговые преобразователи — хм, зачем? Приборный интерфейс IEEE-488 — а это на кой черт? Крейт CAMAC — что-что-что? Не может быть! В бухгалтерской машине? Перечитываю… М-да-а-а… После «камака» все стало ясно. Так вот кто те «влиятельные пользователи», о которых говорил Александр Александрович… Понимаете, я в молодости в армии на ровном месте «залетел» на первый допуск. Потом все годы был невыездным и вот только-только начал из этого дерьма выкарабкиваться — в Польшу недавно съездил — как «на тебе»! Машина-то явно военная. Или ВПКшная, но хрен редьки не слаще. Аж поплохело мне… Потом поразмыслил спокойно. Официально машина какая? Для планово-экономических расчетов. Заказчик кто? Госплан. Проект через первый отдел не идет — грифа нет. Ну, так чего я дергаюсь? Мало ли, какие там «камаки» предусмотрены и для чего. Многие знания — многие печали. Будем себе делать операционную систему с компилятором языка Си для бухгалтерских расчетов, как того желает заказчик. А больше знать ничего не знаю и отзыньте от меня…

Что Искра-226 не является клоном Wang 2200, утверждали еще в те годы разработчики машины. Не без гордости за свою работу, но и не без сожаления. Потому что, если б действительно ее «передрали» (как СМ-4 передрали с PDP-11), то вся «ванговская» математика на машине работала бы без проблем и не нужно было б самим корячиться — писать интерпретатор языка Wang Basic (который в народе звали «васик» или «ванин бейцик»). Но тогда, правда, не получилось бы столь любимой в Союзе техники двойного назначения («мирный советский свеклоуборочный комбайн набрал первую космическую скорость и вышел на орбиту»)… Ладно, сейчас я не поленился найти в сети и почитать «ванговские» спецификации. Подтверждаю: совершенно разные машины. Архитектура «ванга», проектировавшегося в начале семидесятых годов, куда архаичнее «искры». Единственное, можно сказать, что Искра-226 сделана «по мотивам» Wang 2200.

Есть такой феномен советского (российского) сознания: попеременно то надувать щеки, лопаясь от спесивой гордости неизвестно за что, то рвать на себе рубаху и посыпать голову пеплом в порыве самоуничижения. То мы родоначальники всего на свете — от паровоза, самолета, радио до персонального компьютера, то те же самые мы — сплошь бездари-неумехи, «все покрали», ни на что не способны. Этот подростковый комплекс проявлялся и проявляется (если судить по рунету) по сей день. Касательно компьютеров, что уж говорить о какой-то «искре», если «сама» БЭСМ-6 то воспевается, как самая мощная в мире супер-ЭВМ (вранье!), то столь же обоснованно называется клоном знаменитого детища великого Сеймура Крея, первого серийного транзисторного компьютера CDC-1604. Забавно, что основания у «обвинителей» что Искры, что БЭСМа одинаковы — программная совместимость с популярными машинами-предшественниками трактуется как улика. Буквально: знает иностранческий язык — шпион. В шестидесятые годы, когда создавалась БЭСМ-6, корпорация Control Data была несомненным лидером в мире суперкомпьютеров. Ее машины стояли в крупнейших научных центрах, включая как CERN, так и Объединенный институт ядерных исследований в Дубне. Какой вклад в разработку БЭСМ-6 внесли программисты из ОИЯИ, видно хотя бы из названия операционной системы — «Дубна». А «основной» компилятор звался CERN-FORTRAN и реализовывал версию языка, принятую в Control Data Corp. Ну что сказать, разработчики БЭСМа были бы идиотами, если б не обеспечили совместимость с компьютерами CDC на уровне исходных текстов программ и носителей информации. А поскольку они были умными людьми, то… помню, что кодировка перфокарт называлась «сидисишная». Очень даже может быть.

А еще приводят вот какие «улики» — совпадающие детали. Скажем, Wang 2200 и Искра-226 одинаково используют отдельно адресуемую память для программ и для данных. А у БЭСМ-6 и CDC-1604 одинаковый размер машинного слова — 48 бит. А у вас, уважаемый читатель, и у разыскиваемого преступника — одинаковый размер обуви. Резонное основание для вашего ареста, не так ли?.. К сожалению, очень многие люди (даже вроде бы как технические специалисты) совершенно не понимают азов проектирования. Когда создается новый… не важно что — самолет, компьютер, крейсер, пакет офисных программ, танк, соковыжималка… то прежде всего внимательнейшим образом изучаются аналогичные изделия, имеющиеся на рынке (в военном деле аналог рынка — вооружение потенциального противника). Всякое новое изделие проектируется с намерением сделать его лучшим в своем классе. Не всегда это удается, но намерение есть всегда. Обязано быть!.. Кстати, здесь хорошо виден стратегический изъян практики копирования: ее горизонт — сохранение status quo. Но ведь конкурент не дремлет, уже завтра он выпустит что-то лучшее. Конкурируя, напрягаясь изо всех сил — вполне можешь проиграть. Но есть какой-то (пусть крохотный) шанс на победу. Копируя, отказываясь от борьбы — проиграешь стопроцентно… Так вот, не «драть», но творчески использовать чужие удачные решения (улаживая патентные проблемы, естественно) — это совершенно нормальная, ничуть не зазорная практика. В семидесятые, к примеру, целая «свора» фирм (Amdahl, Fujitsu, Hitachi, ICL, Interdata, RCA, Siemens-Nixdorf, Univac, Wang Labs) принялись выпускать компьютеры, архитектурно совместимые с IBM/360. Но это не были тупые копии — каждый добавил какую-то свою «изюминку», постарался сделать или более мощную машину при той же цене, или более дешевую при тех же характеристиках и… отгрызли-таки кусок рынка у IBM.

От легенды так сказать негативной («ничего-то мы сами делать не умеем, а токмо драть у америкашек, да и то — косоруко») перейду к легенде горделивой, духоподъемной, патриотической: «Россия — родина… нет, не слонов, но персональных компьютеров». Какая именно советская железяка является тем самым первым «персональным», тут мнения «патриотов» расходятся — называются разные машины. Но «ход мысли», аргументация — всюду сходны и основаны на том, что у базовых понятий нет формальных определений через другие понятия. Всякий отличит персоналку от мэйнфрейма. А от мини-машины? А от офисной однопользовательской (сиречь, персональной) рабочей станции? Такой, как Искра-226, к примеру. А ежели характеристический признак — что одна персона с машиной работает, так и БЭСМ-6 тогда — персоналка, я вон с ней сколько ночей провел, так сказать, tête-a-tête… Ладно, потуги эти в большинстве своем не стоят внимания, кроме разве что одной легенды. Даже уже не легенды, а целого жития «первого в мире» и «лучшего в мире» советского компьютера, который сами американцы (!) купили (в количестве одной штуки), изучили (передрали, конечно) и от страха пред столь явным превосходством, через своих агентов влияния — загубили, добились прекращения производства. Ни в каких других советских компьютерных мифах нет такой концентрации портяночного патриотизма и густопсовой страсти к обожаемо-ненавидимому Западу, как в этой агиографии «невинно убиенной» и «злодеями умученной» машины. А жаль, машинка-то была на редкость удачная и симпатичная. И разработчики ее (кстати, земляки-киевляне, с некоторыми я был знаком) — достойные инженеры, сделавшие достойный (для своего времени и места) проект и совсем не заслужившие почти полвека спустя оскорбительных славословий от нынешних «патриотов»… Думаю, знающий читатель уже знает, о какой машине речь…

С начала шестидесятых в компьютерном дизайне образовалось направление «высокоуровневых» машин, реализующих «в железе» такие языки, как АЛГОЛ, ФОРТРАН или КОБОЛ. Идея в чем: уровень команд традиционных машин, он мелковат для человека — мышиная возня с числами и цепочками байтов, сравнения и перескоки из одной точки программного кода в другую. Именно поэтому, из-за чрезмерной дробности, программирование на машинном языке (ассемблере) такое занудливое и тормозное. Так вот, высокоуровневая машина потому так называется, что непосредственно оперирует объектами языков программирования высокого уровня. Она «знает» о массивах, списках, структурах, подпрограммах, операторах цикла и выбора — умеет непосредственно работать с этими, довольно сложными сущностями. Конечно, конструкция такой машины по сравнению с традиционной усложняется (стоимость изготовления возрастает), но зато работа человека, отладка программ упрощается (и совокупная стоимость автоматизированной системы, вроде бы, снижается). Какое из направлений «лучше» и «правильней» — решает рынок. Доминировала (и доминирует) традиционная архитектура, однако ее оппоненты тоже не бедствовали (и не бедствуют). Создание в 1961 году первой высокоуровневой машины B5000 связано с именем великого дизайнера Роберта Бартона, работавшего в старейшей компьютерной компании Burroughs (основана в 1886 года, на десять лет раньше IBM; начинала с производства арифмометров). С той поры и по сей день, без малого полвека выпускаются потомки B5000. Уже и компании нет (в год своего столетия Burroughs объединилась с другой знаменитой фирмой — Sperry Univac, образовав корпорацию Unisys), а машины по-прежнему производятся. Без особого шума, мало кто о них слышал, но всякий, кто хоть раз делал банковский перевод, неявно с ними дело имел. Всемирная межбанковская сеть SWIFT изначально построена на этих компьютерах и вот уже 35 лет они перелопачивают по два с половиной миллиарда платежных транзакций в год. Так успешным оказалось детище Боба Бартона, или нет?..

Высокоуровневые машины не один Burroughs делал. Здесь отметились — с разной степенью удачливости — многие. В Советском Союзе с конца шестидесятых разрабатывались суперкомпьютеры «Эльбрус», которые называли «Эльбарроуз». Но это шутка, конечно: проект и вправду основывался на «барроузовской» идее высокоуровней архитектуры, но был совершенно самостоятельным и куда более амбициозным — реализовывался очень высокий уровень языка, близкого к Algol-68. Не мне судить об успехе этого начинания, я «эльбрусы» в глаза не видел (вряд ли в Киеве был хоть один) — предназначались они для ядерных исследований, космоса и «оборонки». Судя по тому, что читал, теоретическая разработка очень солидная. С реализацией в железе, по слухам, возникали трудности. Ну, это обычное дело в «стране советов». Из программистских баек запомнилась такая: дескать, из-за водяного охлаждения процессоров главной фигурой в «приэльбрусье» — впереди всех докторов наук и генералов — был вечно пьяный слесарь-водопроводчик дядя Вася. Вот в это верится охотно: у нас в конторе хоть генералы с докторами и не водились, но все же публика была с высшим образованием — программисты, инженеры. Однако главной, незаменимой и прекрасно о своей незаменимости ведающей фигурой был вечно пьяненький Яша-переплетчик, без которого ни один проект не выпускался. Со всеми отсюда вытекающими (из бутылки в стакан) последствиями…

А вот пример сокрушительной неудачи, полного провала, постигшего не кого-нибудь — корпорацию Intel. Сейчас мало кто вспомнит, что с середины семидесятых Intel проектировал супер-микропроцессор iAPX 432, который призван был заменить их же исключительно удачные процессоры 8080 и 8086. Забыли, что лучшее — враг хорошего. В амбициозный проект вбухали огромные деньги. Процессор должен был аппаратно поддерживать ни много ни мало объектно-ориентированный язык Ada (невероятно модный в то время). Какие средства пошли только в пиар, в информационную поддержку проекта видно из того факта, что где-то году в 81-м в Союзе перевели и издали фундаментальный двухтомник с подробным описанием архитектуры процессора (который я старательно за каким-то лешим проштудировал — такой ажиотаж был). А надо отдать должное советским научным издательствам — там, где дело не касалось идеологии, переводились и печатались действительно лучшие, наиболее популярные и значимые книги (во всяком случае, по компьютерной тематике было так)… И вот, наконец, в начале восьмидесятых долгожданные «микромэйнфреймы» выпустили в свет и… пшик! Получились они слишком сложные, слишком медленные и вскоре их «прикончили» шустрые, простые и недорогие «интеловские» же процессоры семействе x86. Кажется, после этого громкого фиаско новые проекты высокоуровневых машин уже не начинали — идея была дискредитирована.

Но в шестидесятые-семидесятые, на гребне популярности, подобных проектов было немало. В том числе, особое направление — ориентированные на пользователя мини-компьютеры. Замысел такой: интерпретатор языка и программный редактор, простенькую операционную систему и набор утилит — все это «вшить» в машину, чтобы человек (не только и не столько программист, но грамотный инженер или ученый) включил ее и сразу начал работать — составлять несложную программу, тут же ее отлаживать, выполнять и анализировать результаты — все в диалоговом режиме. Популярной машиной этого класса был упоминавшийся раньше Wang 2200. Другая примечательная разработка семидесятых — IBM 5100 Portable Computer. Весил сей «портативный компьютер» 25 кило, но для того времени и с учетом его начинки (пользователю предоставлялись на выбор два языка — Бейсик и APL) это было выдающееся достижение. Машины серии 5100 не без оснований называют «персональными компьютерами» и прямыми предшественниками эпохального IBM PC.

Но значительно раньше, еще в 1965 году, в Киеве, замечательным дизайнером Соломоном Погребинским была создана «машина для инженерных расчетов» МИР-1 — одна из самых первых в этом классе. Машина без преувеличений удачнейшая. Я десять лет работал в проектных конторах и могу свидетельствовать: инженеры-расчетчики, которые ни до «миров», ни после них (вплоть до появления на «персоналках» расчетных систем вроде Matlab или Mathcad) не могли самостоятельно решать свои задачи на компьютере без помощи программистов, на «мирах» — решали. Неудивительно, что машину нежно любили в проектно-конструкторских институтах и бюро, впоследствии долгие годы ностальгически о ней вспоминали. Она стала легендой, а уже в новом веке у легенды явственно стал ощущаться конспирологический душок. Но об этом — в следующей главе.

014. Программисты-профессионалы и программирующие инженеры

Есть такой очевидный критерий «персональности» компьютера: если им можно оборудовать существующее рабочее место — поставить на стол экран и клавиатуру, разместить системный блок под столом или сбоку, принтер там куда-нибудь на тумбочку… если это удалось и теперь инженер (бухгалтер, банковский служащий, менеджер) может продолжить свою работу на своем же месте уже с помощью компьютера, то да, компьютер — персональный…

Правда, удаленные терминалы мэйнфреймов и мини-ЭВМ под это определение тоже подпадают, но не беда. Даже хорошо — отражаются этапы развития компьютерной техники. Сперва, с конца шестидесятых, на столах в офисах появляются видеотерминалы (только не в Союзе — эта затея, центральная в проекте ЕС ЭВМ, провалилась), затем приходит черед персональным рабочим станциям типа Wang 2200 (небольшие шкафчики, тумбы, приставные столики), и наконец, в восьмидесятые офисы заполоняют привычные персоналки… Главное же в «персональном компьютинге» — это даже не миниатюрные габариты машины. Главное — возможность обратиться к компьютеру ровно тогда, когда человеку это нужно. А в остальное время железяка (компьютер это или терминал — не суть важно) просто стоит себе на столе и ничего не делает. То есть, рабочее время человека дороже машинного времени. Вот тут-то принципиальное отличие от мэйнфреймов (да и мини), время работы которых планировалось и расписывалось (порой — на три рабочие смены) и человек к ним на свидание ходил не когда ему — человеку — удобно, а когда назначено…

Машины МИР были хоть и довольно миниатюрными, но детищами своего времени: занимали, обычно, отдельную комнату и время работы на них распределялось между пользователями. Но вот что впрямь замечательно: пользователи эти не были программистами. Я, к примеру, за многие годы ни одной программы для этих машин не написал. И вообще, не знал ни одного программера, кто б на них работал; с другой стороны, все, кто писал программы для «миров», программистами не были. Тут читатель наверняка спросит: «как же так, программы писали, а программистами не были?» Поверьте, и тени профессионального снобизма у меня нет — это, действительно, разные виды деятельности. Ну, вот пример: простейшая программа прочностного анализа, скажем, расчет балки по формулам сопромата. Что напишет умеющий программировать инженер-расчетчик: две-три строчки — ввод исходных данных, две-три строчки — собственно вычисления и четыре-пять строчек — печать результатов расчета. Всей программы — десяток строк кода. И написание ее займет от силы полчаса. Ну хорошо, если человек только осваивает компьютер, — два часа. А дальше инженер будет этой программой пользоваться всякий раз, когда ему надо посчитать балку.

Теперь представим, что задание написать программу расчета балки получил профессиональный программист. Первое, что он сделает… нет, не бросится к компьютеру программный код писать, он вооружится блокнотом и пойдет «пытать» инженера-расчетчика: итак, какие же у нас исходные данные? Геометрические размеры — пролет балки и ее сечение. Ну, допустим, простейший случай — брус, высота и ширина. OK. И что программа должна делать, если пролет нулевой? Выдать сообщение об ошибке и остановиться? Какое сообщение? OK, записываю. А если пролет отрицательный? Как это может быть? Да элементарно, рука дрогнула, случайно на кнопку «минус» нажала. Так чтó, выдать сообщение об ошибке и остановиться или напечатать предупреждение, поменять знак числа и продолжить? Теперь аналогичные вопросы касательно высоты и ширины. OK, записываю…

Обычно, к этому моменту «подследственный» начинает звереть и ерзать на стуле, а ведь мы, по-хорошему, еще даже не начинали. Проверка на допустимые значения параметров по отдельности, это так… даже не разминка. Переходим к проверке соотношений параметров. Формулы сопромата для расчета изгиба балки базируются на допущениях теории Эйлера-Бернулли, коими не буду морить читателя, но скажу лишь, что результаты расчета хорошо согласуются с экспериментом, когда балка — действительно балка, т.е. нечто такое удлиненное по сравнению с сечением (но не слишком). Скажем, книжная полка: пролет метровый, а доска дюймовая. В самый раз. Или брус перекрытия пролетом шесть метров, с высотой сечения 20 см. Тоже нормально. А если мы восьмидюймовым брусом перекроем пролет в в один фут, то это как? А это, извиняюсь, уже не балка будет и считать такую конструкцию (скорей похожую на стеновую панель) надо совсем по другим формулам. И если двухметровый пролет перекроем, к примеру, миллиметровым металлическим листом или затянем пленкой, как в теплицах, то это тоже не будет балкой и считать придется по формулам теории все того же вездесущего Леонарда Эйлера, только совсем другой теории — статики гибкой нити. Инженер все эти вещи «печенкой чует», он интуитивно классифицирует и выбирает метод расчета (а хороший инженер и считает-то «для очистки совести»; он заранее знает результат, моделируя работу конструкции — сопротивление материала — каким-то необъяснимым, помимо сознания, способом, но при этом — безошибочно и весьма точно; если он настоящий инженер, конечно).

Увы, компьютер начисто лишен интуиции и все «входные» ограничения требует формулировать явно и однозначно. Даже для нашего примитивнейшего случая это далеко не просто… А кстати, мы тут оперируем метрами, сантиметрами, дюймами. А ведь для расчета все размеры надо привести в одну единицу измерения. В какую? В сантиметры? OK. И для входных данные считать, что все задано в сантиметрах? Ах, пусть пролет в метрах, а сечение в сантиметрах? А дюймы-футы? Ага, значит прежде задания размеров из меню выбирается система измерений: метрическая или имперская. А если пользователь ввел в метрах-сантиметрах, а потом решил пересчитать в дюймы-футы? Ага, вводим специальный пункт меню «пересчет». А может пусть указывает единицу измерения при каждом числе? Неудобно? Тогда, значит, пусть будут «правила по умолчанию», возможность выбора системы измерений из меню, режим пересчета, а дополнительно еще чтоб можно было указать единицу измерения при любом индивидуальном размере. Уф! Теперь это все запрограммировать и будет… всего навсего будет ввод геометрических размеров. А еще у нас есть ввод физико-механических свойств материала. Для простейшего изотропного линейно-упругого материала это два числа — модуль Юнга и коэффициент Пуассона. Наше счастье, что второй — безразмерный. Зато первый… та же головная боль с единицами измерений: континентальные килограммы на квадратный сантиметр или может имперские килофунты на квадратный дюйм, а то и вовсе новомодные мегапаскали. И всякие пересчеты между ними. Плюс, конечно, проверки на допустимые диапазоны значений (для обоих параметров) и диагностические сообщения в случае нарушений… А еще у нас ввод нагрузки: проверки, игры с единицами измерений и пересчетами, диагностические сообщения… И это мы топчемся пока всего лишь на вводе данных. А потом еще будет сам расчет, где программист, помимо двух строчек расчетных формул, будет долго и нудно специфицировать все мыслимые и немыслимые ошибки вычислений, реакции на них и опять же диагностические сообщения. Посчитав, наконец, приступаем к печати результатов. Так, во-первых короткая распечатка для рабочих нужд: вывод на экран или консольную пишущую машинку только чисел и минимальных обозначений при них. Теперь дальше: печать в табличной форме для многократных прогонов — чтоб сравнивать варианты. Эх, еще бы графики-эпюры построить. Не беда, что не производятся пока графические принтеры и дисплеи — примитивные графики можно «рисовать» звездочками на текстовых принтерах. И еще не все. Нужна «официальная», полная распечатка, которая будет подшиваться в проект со всеми, кстати, реквизитами проекта (которые тоже надо вводить, как и параметры, задающие форматирование и управляющие процессом печати)…

Ну вот, вроде бы все. На собеседования с будущим пользователем программы ушел хорошо если один рабочий день, а то и два (это называется на нашем жаргоне «обследованием» или «постановкой задачи»). Думаете, теперь-то программист пошел программировать? Ха, как бы не так! Он пошел писать документ под названием «техническое задание» и хорошо, если сам наберет его на компьютере и там же отпечатает. Тогда за пару-тройку дней справится. А вот если он пишет от руки на бумаге, а потом печатают девицы из машбюро, тогда, считай, уйдет неделя. Затем документ читается и согласовывается пользователем (почти всегда при этом — уточняется, правится и переписывается). Наконец утверждается начальством и… всего лишь две-три недели спустя программист приступает собственно к программированию. Помните, что инженер уложился в десять строчек кода? Так вот, программисту со всеми этими проверками, диагностиками и пересчетами придется написать эдак строк двести-триста…

Понятно, что никто не затеет многонедельную бодягу ради одной программки, реализующей один частный вид расчета. Программисту если уж закажут, то какой-нибудь пакет прочностных расчетов, например, балок для доброй сотни разных типов сечений, нагрузок, краевых условий, характеристик материалов и т.д. Тогда техническое задание будет представлять собой увесистый том страниц под тыщу, а в программе будет строк эдак тысяч двадцать. Вообще, размеры профессиональных программ принято измерять в тысячах строк, как дороги — в километрах (тысячах метров). Уже из используемых единиц измерений можно судить как о протяженности дорог, так и о размерах программ… Вернемся к нашим «мирам». Не в том даже дело, что такую большую программу в эту маленькую машинку не всунешь — наш брат ухитрялся и бóльшие всовывать в мéньшие (есть всякие ухищрения в нашем арсенале). Дело в том, что не вяжется одно с другим, не предназначена машина МИР — помощник в инженерных расчетах, по сути — очень продвинутый калькулятор, быть компонентом автоматизированной системы. Не идет одно другому — как корове седло. А значит, программисту-профессионалу делать там нечего.

Этого программиста-профессионала уподоблю шоферу-дальнобойщику, везущему многотонный груз за сотни километров. Можно, конечно, нанять его громоздкий трак для доставки пиццы на дом — почему бы нет, платите только денежки. Но даже в идиотских советских условиях такого идиотизма на наблюдалось… Ну вот, вроде ясно, осталось только понять, почему это у непрограммиста программа в десять строчек, а у профессионала — раз в двадцать-тридцать больше. Если бы нам за число строк платили, тогда конечно, никаких вопросов… Так ведь не было у нас выгоды накручивать строки в программе, как советскому водиле — километраж на тахометре его грузовика. Никто за размер программы, как таковой, не платил. И какая там выгода, одна головная боль — чем программа больше, тем она сложнее. Почему же так получалось? А все просто: инженер составляет себе машинную программу как подсобное средство, облегчающее расчеты. Ну вот, на логарифмической линейке считать ведь удобнее, чем «в столбик» на бумажке. А на калькуляторе — удобнее, чем на линейке. А на программируемом калькуляторе «с памятью» — еще удобнее. А на компьютере — еще… Соль в том, что считает по-прежнему сам инженер, используя программу (линейку, калькулятор) просто как инструмент. А ежели так, то нужен ли ему в программе миллион проверок? Нет, он сам все проверяет и контролирует. Интуитивно. Ему нет нужды вникать в детали расчета, достаточно взглянуть на результат и… все сразу ясно: правильный он или лажовый. Так что, нужна ему только голая «считалка» для трудоемкого расчета, которую он и запрограммирует за полчаса… А вот наш брат программист делает программу для расчета автоматического (это когда вообще без участия человека) или же автоматизированного (при участии «безответственном», например, клерка, который проверить результаты не в состоянии, бо не знает сопромата; его самого контролировать надо, правильно ли исходные цифры ввел). У компьютера же, как известно, с интуицией напряг, он — очень быстрый и старательный идиот, тупо исполняющий команды. А мы — программисты — представляем интересы этого бедолаги в мире людей. Зная, что сам он не в состоянии предусмотреть аж ничего, решить «интуитивно» («по аналогии», «исходя из здравого смысла») аж никакой, самый крохотный вопросик, вынуждены мы с раздражающим педантизмом, со скурпулезностью нечеловеческой предусматривать самые нелепые, невозможные ситуации, искать ответы на самые дикие, кретинские вопросы. И все эти «а что если?» закладывать в программы, отчего те разбухают неимоверно — в десятки, в сотни раз…

Коль уж зашла речь о ремесле программистском, затрону еще одну его сторону. Внимательный читатель обратил внимание, что, учиняя допрос инженеру-расчетчику, я знал заранее какие ему вопросы задавать. Я знал про допущения теории Эйлера-Бернулли, про то, что расчет балки корректен при определенных соотношениях пролета и сечения. Предположим, что не знал, при каких именно (и спросил у об этом специалиста расчетчика), но знал, что надо спросить. Знал чтó надо спросить. Откуда знал — понятно: сам по образованию прочнист. Но ведь это — случайное совпадение. Вот приходилось мне потом работать в энергетике и полиграфии, на химических и металлургический заводах, в авиакосмической индустрии и торговле, здравоохранении и грузоперевозках. Но ведь невозможно перед каждым новым проектом проходить соответствующий университетский курс. Так как же знать чтó надо спрашивать? И встречный вопрос: а зачем знать что надо спрашивать? Не проще ли попросить специалистов, пусть они сами все расскажут, а ты старательно законспектируешь да и пойдешь себе программу писать… Не тут-то было…

«Немота специалистов». На эту тему написаны груды книг, подводящих под эту беду бездну психологических, эпистемологических и даже кибернетических обоснований невозможности автодескрипции. Но без ученого мудрствования горький факт таков: специалисты (замечательные, многоопытные, бесспорные специалисты) не могут сами составить вразумительные технические требования, т.е. детально описать собственную деятельность. Подавляющее большинство (за редчайшими исключениями) при искреннем желании сделать это — не могут. На вопросы отвечают охотно и подробно. Но… как неспециалисту знать, какие именно вопросы задавать? Замкнутый круг! Пример с инженерными расчетами (который я привел выше) и вообще все, что основано на строгих формализованных правилах и формулах — это как раз самое простое, человек с общематематической подготовкой как-нибудь да разберется (наша задача ведь не в отыскании новых методов расчета, а в том, чтобы растолковать себе и компьютеру существующие). Но вот технология работы, взаимосвязи между подразделениями, нюансы отношений с поставщиками и потребителями, неформальные, неписаные законы, приемы, обычаи (как мы их называем — «практики»). Вот их клещами не вытянешь. Не потому, что специалист боится разгласить свои секреты. Он знает, что ты ему не конкурент. Просто он эти секреты никогда не формулировал, они живут в его голове на невербальном уровне.

Что же делать? Не дергаться. Работать. Общаться с клиентами, стараться вникнуть в их проблемы, вжиться в их рабочую среду. Очень важен психологический настрой — ты служишь своим клиентам, стараешься сделать их труд продуктивнее и комфортнее. В начале проекта ты ничего не знаешь и смиренно учишься. Надутый высокомерный индюк, кичащийся своими учеными званиями (видывали и таких) не сделает ничего… Кто лучше знает работу стропальщика на складе, как ни стропальщик? Поэтому забудь (до поры) про свои два университетских диплома, надевай рукавицы и вперед… на склад на пару деньков, младшим помощником. Как обдерешь руки в кровь, как спину натрудишь, так сразу дотумкаешь, что такие красивые (в математической теории) схемы оптимальной нарезки кабеля упираются в ма-а-ахонькую проблемку — надобность ворочать с места на место тяжеленные барабаны, что без нужды никто делать не станет… и всей тут твоей оптимизации — карачун. Или садишься в отдел сбыта выписывать вместе с тамошними девчатами счет-фактуры и накладные. Как облает тебя покупатель разок-другой за нерасторопность, так поймешь, что нужно сделать для повышения расторопности бедняжек, которых ежедневно облаивают эти жлобы (а кто, ты думал, снабженцами работает — учтивые благородные джентльмены?)…

Бесконечные командировки, дни и недели в цеху, заводоуправлении, на складе, в офисе бок о бок с инженерами, бухгалтерами, работягами, клерками — все это нужно не для составления программ (они и дома неплохо пишутся — знать бы, что писать) но для вживания. Понемногу, день за днем вникаешь в дотоле неизвестную жизнь и потихоньку ее вербализируешь. Вот в этом (а отнюдь не в знании ФОРТРАНа) и заключается твоя профессия — укладывать живую жизнь в строгие параграфы бизнес-правил и спецификаций. И быть готовым терпеливо делать и переделывать, делать и переделывать, делать и переделывать… Никогда, ни разу за сорок лет моей карьеры не удавалось сделать проект с первой попытки. Делаешь и переделываешь. Не потому, что такой уж ты дурак. Отнюдь, и сам не дурак и коллеги твои — инженеры отменные. Просто, существует всегда эта пропасть непонимания — misunderstanding gap. Пока не покажешь клиенту работающий прототип, он и не знает, чего он не хочет. Показал — недолет! Прототип — в корзину, а ты работаешь дальше. Другой вариант — перелет! С третьего раза — в цель. Да только, пока ты идеально подгонял компьютерную систему под бизнес-процесс, сам бизнес-процесс и окружающий его мир изменились. Мочи мочало — начинаем все сначала. Зато не соскучишься…

Мой опыт ограничивается маленькими группами разработчиков — артелями в три-четыре, максимум — семь человек. В больших коллективах, конечно, все не так. Там правит бал специализация. Программисты клепают программы, а описанной выше деятельностью занимаются особые люди — постановщики задач. Откуда же они берутся? Порой это специалисты в своем деле, которые участвовали, например, в разработке проекта в качестве «подследственных» специалистов, увлеклись делами компьютерными, хорошо вникли (вжились) в нашу проблематику. Работа постановщика — интереснейшая, да и по части оплаты… такие специалисты не бедствуют. Однако, чаще в постановщики приходят все-таки из программистов. Занимается, к примеру, человек лет двадцать разработкой бухгалтерских программ и потихоньку становится классным бухгалтером, оставаясь при этом классным программером. Вот он — мостик через пропасть взаимонепонимания, драгоценный «междисциплинарный» опыт. В начале 90-х, когда в Украине софтверные проекты сошли на нет, а в услугах бухгалтеров, напротив, нуждались вновь создающиеся фирмы, многие мои коллеги были вынуждены сменить род занятий и оказались очень востребованы в «бухгалтерском» качестве. Ну, а в стабильной стране программист, доработав до благородных седин (сиятельной лысины), уходит в постановщики — оно и спокойней и денежней. Программер в пятьдесят, тем паче — в шестьдесят, это, как правило, недавний эмигрант… Так что, не случись известная заварушка, гужевался бы я сейчас все в той же своей конторе постановщиком задач, расписывал бы спецификации. А если б удалось мне свалить из Совка в семидесятые, был бы сейчас… постановщиком задач, специфицировал бы бизнес-объекты да процессы. Впрочем, если бы да кабы… спасибо на том, что есть.

Вернусь к «мирам». На моей первой работе в проектном институте машина МИР-2 появилась в самом начале семидесятых и я с ней лет семь сталкивался. Нет, не программировал (выше я объяснил, почему), но именно сталкивался. Всякий инженер, составлявший на «мире» свои программы, если дело не ладилось, не стеснялся «дергать» программиста, сиречь меня. Я конечно исправлять неполадки в железе не мог (тут приходилось звать электронщика), но диагностировать оные и уж конечно — выявлять всякие «кости» в программах… этим приходилось заниматься регулярно. Так что машину, ее язык и нехитрую операционную систему поневоле освоил досконально. А в 79-м чуть было не занялся переносом «мирового» программного обеспечения. К тому времени стало ясно, что жизнь этого семества клонится к закату. Возникало естественное желание сохранить наработанный за столько лет программный фонд (почти у каждого расчетчика была своя коллекция перфолент и магнитных карт с полезными «считалками») . Поскольку продолжения машинного ряда ожидать не приходилось, оставалось перенести эти программы на другие машины, например, на только появившиеся, куда более мощные «эсэмки». В конце концов, ценность ведь была именно в программах, а никак не в устаревшем, потихоньку разваливающемся железе… История о том, как и почему я не сделал эту безусловно нужную работу и никто нигде — не сделал, хотя всем было нужно… история эта довольно поучительная и заслуживает изложения в следующей главе.