пятница, 25 марта 2016 г.

Александр Концедалов. Часть 1. История началась

Александр Концедалов, истории о MUMPS в СССР, как это было.
Почтовый адрес: un7gak@mail.ru
Коротковолновый позывной: UN7GAK
Моя программистская история началась во второй половине 1974 года. Хотя я по образованию был тогда специалистом радио и многоканальной электросвязи, в том году мне довелось работать в строительной организации и заниматься исследовательской работой - изучать причины, влияющие на производительность труда рабочих в строительстве.


Были построены математические модели такой зависимости в виде линейных уравнений и мне выдали много тысяч наблюдений, по которым я составлял огромные матрицы и пробовал их обрабатывать на настольном калькуляторе Курского завода "СЧЕТМАШ" ИСКРА-122.

Это был замечательный калькулятор (занимал он места на столе в два раза больше, чем мой ПК сегодня) имел очень большую разрядную сетку (кажется 37 десятичных разрядов) и 5 или 6 регистров памяти для хранения промежуточных результатов.

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

В отделе алгоритмизации и программирования (11 человек) работали солидные люди с университетскими дипломами мехмата. Я рассказал о своей проблеме и попросил решить мою систему линейных уравнений на вычислительной машине. В ответ на мою наивность мне сказали, что это почти невозможно - нужны специальные программы, а их разработка стоит больших денег и времени. Я, конечно, не поверил (молод был!) и попросил дать мне инструкцию не пару дней от этой машины. Под веселый хохот мне дали книгу по программированию в машинных кодах ЭЦВМ "МИНСК-22". На вычислительном центре уже тогда была и "Минск-32" с трансляторами ФОТРАНА (Минского производства авторы Балацкова и Подольскова - эти фамилии до смерти не забуду - всю жизнь их приводил в пример как не надо программировать компиляторы). Однако университетские математики не удосужились изучить хотя бы этот плохой ФОРТРАН и гоняли "МИНСК-32" в режиме совместимости с "МИНСК-22". А на ней-то программировать приходилось исключительно в машинных кодах.

Для меня эта история закончилась благополучно - через два года я порешал свою задачу методом МАХАНОЛОБИСа (распознавание образов) и возглавил тот самый отдел, где мне неосторожно выдали инструкцию по программированию в машинных кодах "МИНСК-22".

Отдел занимался разработкой и сопровождением программ в основном информационно-аналитического характера для нужд управлений Минтяжстроя КазССР. В то время в этом болоте погрязли почти все ведомственные ВЦ (Вычислительные Центры). Работа рутинно-скучная, однако весьма ответственная.

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

Произошло это не сразу, а после двух или трех лет наступания на грабли - ведь в это время в СССРе широко внедрялись ЕС-ЭВМ. Это была идеология и технология IBM-360 - третье поколение! После "МИНСК-22,32" - это было ощущение счастья - масса хороших компиляторов (PL/1, FORTRAN-IV и тд и тп), скорость обработки несравненная с предыдущими ленточными (магнитная и перфоленты) здесь уже были диски объемом 7,5 мегабайт! Освоив программирование на PL/1 (Язык программирования №1 во всем мире - проявление американской гордыни) я пребывал в эйфории - мне казалось, что нет такой задачи, которую я не смогу быстро сделать на этих машинах.

А характер задач требовал наличие баз данных. Времена были Брежневские - в разгаре холодна война. Прогрессивное капиталистическое человечество вступило в сговор(даже был образован специальный строгий комитет для этого, кажется назывался КОКОМ) против СССРа - мол империя зла не должна получать продуктов двойного назначения - точных станков, быстроходных компьютеров, и кое-какое программное обеспечение. Кстати MUMPS оказался в списке запрещенных изделий к ввозу в СССР.

Однако СССР ответил на это как всегда ассиметричным способом - вся компьютерно-ориентированная литература мгновенно переводилась на русский язык и за сущие копейки продавалась в книжных магазинах необъятной Родины. Среди них оказались и рекомендации комитета КОДАСИЛ (думаю, что он был американским) по базам данных. Умные люди там формулировали философские принцибы организации баз данных. Опирались они на опыт языка КОБОЛ (гадость ужасная!) и двух существовавших тогда баз данных IDS и ISM.

Начитавшись КОДАСИЛа и применив собственную изобретательность я в одиночку написал на PL/1 собственную реализацию базы данных, которая чудесно соответствовала характеру решаемых мной задач оперативного управления. Ушло на это всего три месяца работы включая всю отладку. Структуру базы данных можно было легко и оперативно изменять в темпе возникновения новых требований производства.

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

Причина всегда одна и та же: несоответствие свойств инструмента - требованиям технологии.

Здесь на горизонте появился MUMPS. Но об этом в следующий раз.

Продолжение: MUMPS – Массачусетские утилиты многопрограммной системы.

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

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