Записки парасистемного программиста - [8]
Этюд.
В некоторой системе подготовки данных за единицу данных принят документ (термин, понятный персоналу подготовки данных), который состоит из реквизитов. Первым реквизитом всегда идет номер документа, который может не указываться оператором подготовки данных. Система присвоит ему номер сама так, чтобы документ поместился на хранение вслед за последним из записанных в хранилище. Оператор подготовки данных не знает ни ОС, ни языка управления заданиями, ни даже того, что эти хранилища (их все называют "ячейками") — это наборы данных на устройствах прямого доступа. Вслед за номером документа идет реквизит — признак вычеркивания. Это буква "ы". Затем идут остальные реквизиты. Документы или исправления документов, относящиеся к разным "ячейкам", разделены специальным документом "бирка". Например, документы в потоке ввода системы могут выглядеть так:
>@@бирка а25н34е48
>::тетрадь:25 7
>::чернильница:45 5:ы:
>::карандаш:2
>::ручка:210:
>@@биркар34а56н37
>::чехова: ул:25:18:
Этот поток записей означает, что в одну ячейку будут добавлены в ее конец документы про тетрадь, карандаш и ручку, заменен документ с номером 7 и вычеркнут документ с номером 5. В другой же ячейке будет добавлен в ее конец еще один документ — информация про подписчика газеты. Мы видим, что оператору подготовки данных совсем не нужно знать утилиту IEBUPDTE и выполнять ее странные для непрограммиста требования о рассортированности запросов на исправление в порядке следования записей и т. п.
Кто не знает утилиты IEBPTPCH ОС ЕС? Вряд ли кому-нибудь из пользователей или системщиков, обслуживающих ос ЕС удалось без нее обойтись. Хуже всего приходится тем из них, кто встречается с ней реже, чем раз в две недели. Потому что, не смотря на всю скудность действий, которые она может выполнить, язык, при помощи которого приходится управлять этой программой, по своей красоте, сложности и многогранности, количеству подтекстов слегка смахивает на язык великого шекспира. Прежде всего, эта утилита пожелает узнать у вас, сколько разделов библиотечного набора данных вы хотите распечатать и сколько полей в строке распечатки вы захотите выделить. Hе дай вам бог забыть указать это с помощью операндов MAXNAME и MAXFLDS. Сама она пресчитать ваши разделы и поля не может, а если и вы ленитесь считать, то вы недостойны этой утилиты. Правда, если вы укажете эти величины большими, чем нужно, то так и быть, она до вас снизойдет. Зачем же нужно ей знать заранее такие подробности? Видимо, для того, чтобы сэкономить два десятка байт основной памяти. Впрочем, это только мое предположение, которое очень трудно проверить. Ос ЕС сообщает количество используемой оп с точностью до пары килобайт. Hо это еще не все. С этим еще можно было бы смириться. Совсем непонятно, зачем нужно указывать эти операнды, если требуется распечатать один раздел в виде одного поля на строке. Это самый типовой случай использования этой утилиты. Hо и это не все. Исходя из каких соображений имена этих операндов выбраны такими, а не MAXFIELD и MAXNMS, например? Hу почему в первом операнде английское слово FIELD сокращается с выпусканием гласных и берется в множественном числе, а в другом слово NAME не сокращается и берется в единственном числе? Только вчера я пользовался этой утилитой в последний раз после месячного перерыва. С третьей попытки мне удалось, наконец, получить от нее то, что я хотел (а ведь я знал уже, с чем имею дело), а теперь я уже не помню, правильно ли я пишу операнды MAXGROUPS и MAXLINE. Может, надо MAXGRP и MAXLINES? Разработчиков этой утилиты в ОС ЕС можно еще понять. Им совсем не обязательно было знать какие-нибудь языки. А программисту фирмы IBM нечего сказать в свое оправдание. Я думаю, что эту утилиту делал двоюродный племянник коммерческого директора этой фирмы. Он, впрочем, успел и еще кое что подпортить. Наверное, это он придумал одно и то же действие по управлению данными в разных случаях запрашивать то как UNCATLG, то как UNCTLG. Возможно, это он предложил оператору при запуске программы системного вывода классы задавать так: "ABC", при модификации этой же программы классы задавать так: "CLASS=ABC", а при задерживании очередей классы задавать так: "Q=(A,B,C)". А вот утилита IEBGENER ОС ЕС выполняет свои самые типовые действия вообще без всяких управляющих операторов. И только, если вам хочется чего-нибудь экзотического, то вам придется посмотреть описание этой утилиты. Принцип умолчания вреден только в языках программирования и лишь в том случае, когда нужно сделать надежную программу. А если нужно всего один раз получить легко проверяемый на корректность результат? Когда мы садимся в лифт, то мы нажимаем кнопку нужного нам этажа. Можно даже представить себе лифт, где два одинаковых ряда кнопок с одними и теми же номерами этажей, и лифт тронется, лишь если нажаты обе кнопки с одним и тем же номером. Hо очень трудно представить себе лифт, в котором стоит дисплей, и мы должны набрать на его клавиатуре фразу на французском языке, количество гласных букв в которой, деленное на тринадцать, даст в остатке номер нашего этажа. Вряд ли нас обрадует такой лифт, даже если в нем на полке будет стоять французско-русский словарь. Так почему же мы так часто делаем подобные программные системы?
![Сэкигахара: фальсификации и заблуждения](/storage/book-covers/80/80faccd9cb98ea4c1b1f214dc044c99bfc90a1bb.jpg)
Сэкигахара (1600) — крупнейшая и важнейшая битва самураев, перевернувшая ход истории Японии. Причины битвы, ее итоги, обстоятельства самого сражения окружены множеством политических мифов и фальсификаций. Эта книга — первое за пределами Японии подробное исследование войны 1600 года, основанное на фактах и документах. Книга вводит в научный оборот перевод и анализ синхронных источников. Для студентов, историков, востоковедов и всех читателей, интересующихся историей Японии.
![Оттоманские военнопленные в России в период Русско-турецкой войны 1877–1878 гг.](/storage/book-covers/8b/8ba25fd558aaf18130f51a8997d5be8e03b68233.jpg)
В работе впервые в отечественной и зарубежной историографии проведена комплексная реконструкция режима военного плена, применяемого в России к подданным Оттоманской империи в период Русско-турецкой войны 1877–1878 гг. На обширном материале, извлеченном из фондов 23 архивохранилищ бывшего СССР и около 400 источников, опубликованных в разное время в России, Беларуси, Болгарии, Великобритании, Германии, Румынии, США и Турции, воссозданы порядок и правила управления контингентом названных лиц, начиная с момента их пленения и заканчивая репатриацией или натурализацией. Книга адресована как специалистам-историкам, так и всем тем, кто интересуется событиями Русско-турецкой войны 1877–1878 гг., вопросами военного плена и интернирования, а также прошлым российско-турецких отношений.
![Секрет Черчилля](/storage/book-covers/b3/b34999063745ddad0a4b14b3475e77e46111fe25.jpg)
Книга «Секрет Черчилля», принадлежащая перу известного во Франции, Бельгии, других европейских странах и США журналиста Э. Н. Дзелепи, посвящена периоду последних лет второй мировой войны и первых лет послевоенного периода. Она представляет собой серьезное и весьма интересное исследование, написанное на основе изучения богатого документального материала и широкого круга мемуарных источников. Главная тема книги — раскрытие коварных замыслов Черчилля в последний период войны и первые послевоенные годы, его стремления разжечь пожар новой мировой войны, объединить все империалистические, все реакционные силы для «крестового похода» против СССР.
![Загадка завещания Ивана Калиты](/storage/book-covers/45/45560ef4b6bbd48b6e8d681718fe859e6e9fd46d.jpg)
Книга доктора исторических наук К.А. Аверьянова посвящена одному из самых интересных и загадочных вопросов русской истории XIV в., породившему немало споров среди историков, — проблеме так называемых «купель Ивана Калиты», в результате которых к Московскому княжеству были присоединены несколько обширных северных земель с центрами в Галиче, Угличе и Белоозере. Именно эти города великий князь Дмитрий Донской в своем завещании 1389 г. именует «куплями деда своего». Подробно анализируются взгляды предшествующих исследователей на суть вопроса, детально рассматриваются указания летописных, актовых и иных первоисточников по этой теме.
![Чрезвычайная комиссия](/storage/book-covers/3f/3fe92b5b0554db1be4d20933d8d09d7c49250d54.jpg)
Автор — полковник, почетный сотрудник госбезопасности, в документальных очерках показывает роль А. Джангильдина, первых чекистов республики И. Т. Эльбе, И. А. Грушина, И. М. Кошелева, председателя ревтрибунала О. Дощанова и других в организации и деятельности Кустанайской ЧК. Используя архивные материалы, а также воспоминания участников, очевидцев описываемых событий, раскрывает ряд ранее не известных широкому читателю операций по борьбе с контрреволюцией, проведенных чекистами Кустаная в годы установления и упрочения Советской власти в этом крае. Адресуется массовому читателю и прежде всего молодежи.
![Монголия в XIII–XIV веках](/storage/book-covers/21/211ebe4f0db29aa0abd46e1a15cb72b2508aed85.jpg)
Опираясь на монгольские и китайские источники, а также широкий круг литературы, автор книги подробно описывает хозяйство, политические и социально-экономические институты, состояние культуры монгольского народа в период господства монгольских завоевателей в Китае (1260–1388).