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

Александр Концедалов. Часть 2. MUMPS – Массачусетские утилиты многопрограммной системы

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


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

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

Мы научились не только копировать микросхемы и узлы оборудования, но и разрабатывать их на высоком уровне, если только нам удавалось понять логику работы этих изделий. Правда хорошие разработки не обеспечивались столько же хорошим воплощением – промышленность в силу отсталости делала брак или весьма ненадежное оборудование. Зато мы были впереди планеты всей по расковыриванию и кириллизации чужого программного обеспечения. Занимались этим делом как весьма серьезные и секретные институты (для примера – ИНЭУМ институт электронных управляющих машин), так и отдельные личности и неформальные компании для удовлетворения своей потребности быть ближе к мировому уровню, и конечно не без некоторой меркантильности.

На западе гигантом производства таких машин, безусловно, являлась IBM. Достижения их поражали нашее воображение. Сравнивая технологии IBM/360 с отечественными на машинах УРАЛ, МИНСК, БЭСМ, НАИРИ, ПРОМИНЬ и тд мы (программисты и пользователи) моментально впадали в грех низкопоклонничества перед западом и испытывали далеко не патриотические чувства. У некоторых из моих знакомых в головах начинали булькать пузыри вследствие недобрых мыслей о том, как бы было хорошо оказаться на этом западе и, естественно, работать там хотя бы простым кодировщиком программ за нормальную зарплату да на прекрасных машинах. Многие из заболевших этим так и оказались в конце-концов на западе и, кажется, не пропали там.

Лично я тоже пережил большие душевные потрясения и осознал, что для работы с компьютерами мне недостает хотя бы небольшого понимания английского языка. А я 9 лет совершенно зря учил немецкий, пришлось проходить за 90 рублей двухгодичные курсы английского языка в местном инъязе. Этим и довольствуюсь поныне.

А на западе все тоже происходило не гладко. Лидер вычислительной индустрии IBM, утомленная постоянной лихорадкой из-за того, что аппаратура (хардвер) каждые два года улучшается настолько, что сметает с рынка предыдущую, а программное обеспечение (софтвер) всякий такой раз надо как-то переносить на новое оборудование, инвестировала огромные деньги на создание концепции архитектуры семейства машин третьего поколения с программной совместимостью снизу-вверх. Это означало, что программы, созданные на более слабой и медленной модели, должны без проблем исполняться и на более больших и быстроходных машинах. Задумали и сделали! Можно было примерно 50-80 лет почивать на лаврах, эксплуатируя этот грандиозный проект. Вначале так оно и было. Идеология, технология и софтвер IBM стали применяться всюду в мире и, мне казалось тогда, что придумать что-нибудь лучше просто невозможно.

Но, (чудны твои дела Господи!) супостат уже существовал в самой Америке в лице компании DEC (Digital Equipment Corporation), которая не помышляла ни о каких ЭВМах, а занималась совсем другими делами – производила контроллеры для систем управления технологическими процессами (кажется для электростанций). Назывались эти контроллеры PDP (Programing Data Processor –программируемый процессор для обработки данных). Развитие элементной базы привело к появлению микропроцессоров (первым считаю Intel8080). DEC стала применять эти изделия в своих разработках и постепенно ее контроллеры стали превращаться в прототип современного РС. Я лично видел PDP-8, это был вполне приличный персональный компьютер того времени.

Контроллер обладал всеми достоинствами вычислительной машины – его можно было программировать. Но он имел и одно важнейшее преимущество перед компьютерами IBM – низкую стоимость. Это давало пользователю включать и гонять его когда вздумается, например если появилась новая идея и ее хочется немедленно проверить. IBM такого не позволяли: будь добер за неделю вперед закажи машинное время, да за каждый час этого времени заплати $150.

Этим преимуществом не замедлили воспользоваться учебные центры. Одним из них был MTI (Массачусетский технологический институт). В нем работали и учились вдумчивые и энергичные люди. В 1974 году там и была создана система MUMPS для медицинских учреждений для контроллера PDP-11. Она не замышлялась как грандиозный проект. Просто в госпиталях надо было хранить и обрабатывать в основном текстовую информацию по каждому больному. Состав информации был уж очень не постоянный – одному больному надо делать уколы по расписанию, у другого брать анализы крови на содержание сахара и мониторить их, в третьем случае что-то совсем другое. Универсальных карточек больного не существует – история у каждого своя. Для организации базы данных такого рода потребовалась весьма совершенная структура машинной организации данных. Классики (например, Дональд Кнут (Knuth) «Искусство программирования для ЭВМ») к этому моменту в своих монографиях разложили по полочкам известные типы организации данных, Образованные Массачусетсы осознали, что для этой медицинской задачи придется использовать так называемые сильно ветвящиеся деревья (В-деревья).

Выбор и реализация алгоритма хранения данных в «деревянной» форме привел к грандиозному успеху этой системы обработки данных. Хочу отметить, что кроме «деревянной» структуры MUMPS разительно отличался от систем, принятых в технологиях IBM, простотой (26 команд и 14 функций!), хранением программного кода в виде текста. Последнее обстоятельство позволяло и сами тексты программ хранить так же, как и данные в узлах тех же деревьев. Прекомпиляция тогда не применялась, при исполнении текст программы всякий раз обрабатывался интерпретирующей программой. Добавим к этому многопользовательский и многозадачный режимы работы с базами данных. Система оказалась весьма простой и включала в себя все, что нужно: систему программирования, систему управления базами данных, средства защиты от неавторизованного доступа, средства архивирования, восстановления и прочее и прочее.

Я часто задумывался, как же это у них получилось: был ли там гениальный главный конструктор системы, или из-за ограниченности ресурсов и молодости исполнителей (молодежь не следует авторитетам, здесь это IBM, а ищет собственные пути)? Ответ я не знаю, но считаю, что получилась у них гениальная вещь, отвечающая главному признаку любой гениальной вещи – простоте.

Успех системы в медицинском применении привел к пониманию американцев, что система может быть использована в широком диапазоне приложений и это произошло – она стала бурно распространяться сначала в штатах, а затем по планете. Через два года, в 1976 году Американский национальный институт стандартов стандартизировал MUMPS. Для сравнения – IBM не могла стандартизировать свой PL/1 в течение 10 лет.

Применение относительно дешевых малых машин типа PDP-11 и простых систем подобных MUMPS привело к оттоку пользователей от IBM.

Кризис технологии IBM нарастал и едва не привел к ее катастрофе в 1980 году. IBM напрягла все свои немалые интеллектуальные, финансовые, организационные и индустриальные ресурсы и выдала рынку свой ответ DECу – персональный компьютер. Это был «гадкий утенок» - он выглядел весьма примитивной игрушкой в сравнении с возможностями PDP, но подавал большие надежды, которые как теперь видно, вполне оправдались. Правда, по моему впечатлению, развивается новый кризис – появление операционной системы ВИСТА выглядит как сговор с производителями хардвера, подобно старинным аферам со стеклянными бусами, которые обменивались на соболиные меха.

Именно с появлением MUMPS мне удалось обучить манипулировать данными обычных пользователей, по существу – научить их простейшим приемам программирования своих задач.

Продолжение: Появление MUMPS в СССР

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

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