Блог 2011

13 апреля. Мы тоже делали ракеты

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

Подробнее об этом тут ("многобукаф", и не программистам будет неинтересно), а вот пару фрагментов воспроизведу здесь.

В 1977 году появился заказчик на такого рода систему: "Красноярск-26", а ещё точнее - НПО ПМ. Им надо было обрабатывать данные тестирования надёжности спутников - и в основе лежали те самые сводные таблицы. Но ничего этого мы не знали - даже слова НПО ПМ, и о том, что там делают спутники, не слышали. Ну, то есть, если бы какие шпионы принялись пытать нас калёным железом, мы бы ничего шпионам сказать не смогли. Вот такая секретная была разработка, что мы сами не знали, что делали.
....

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

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

И мы сделали это! Мы придумали то, что потом назовут генераторами отчётов. Но, замечу сразу, наш генератор ни в какое сравнение не идёт даже с современными генераторами отчётов. Они представляют собой вертикальные таблицы, формируемые в результате запросов. А наш генератор позволял построить таблицу произвольной сложности и размера. Единственное ограничение: таблицы не могли пересекаться, но могли вкладываться друг в друга на произвольную глубину.

Саня Качаев тряхнул алгебраической стариной, построил алгебру таблиц и доказал, что путём последовательных вложений мы можем построить любую произвольно сложную таблицу. Он разработал также язык описания таблиц, описал его, как полагается, в нотациях Бэкуса.

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

Вам это ничего не напоминает? Если да, то это именно оно. По сути дела, мы в 1983 году реализовали электронную таблицу. Вся беда была в том, что работала она в пакетном режиме: в СССР тогда не было никаких персональных компьютеров (первые ДВК ещё только начали выпускаться), а первый дисплейный комплекс на нашей ЕС-ке появился в том же 1983 году, когда TABL 2.0 уже была практически завершена. Да и эти дисплеи были скорее заменителем перфораторов: на них можно было в диалоговом режиме готовить и запускать пакетные задания, но до полноценного диалога на этих построчных "дисплеях" в 24 строки по 80 символов было ещё очень далеко.

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


Опубликовано:   Записки старпера
© Алексей Бабий 2011