Мир программирования и общество

           Открытость в технике и в обществе 

   Я уже раньше в первой книге “Мы - Шереметьевы” писал о “русских мирах”, наиболее ярко выраженных у Циолковского, Панина, Даниила Андреева. Для них характерны многие общие особенности: некое отшельничество, длительные размышления в отрыве от цивилизации, обусловленные отдаленностью от мировых интеллектуальных центров (Калуга у Циолковского), зачастую в тюрьме или ссылке (Гумилев, Панин, Андреев). Но таких неизвестных миру мыслителей возникало множество в России с ее огромными и малосвязанными пространствами. Многие из этих миров, иногда напоминающих нынешние “фэнтэзи”, были направлены на преодоление этой разобщенности, попыткой связать российское пространство и время какой - то небывалой концепцией.
   Такого же рода миры создавались и в технических областях, особенно в закрытых   “ящиках”, где были сосредоточены лучшие советские специалисты. Вот, например, развитие вычислительной техники   создало возможность разрабатывать в каждом министерстве и чуть ли не в каждом оборонном “ящике” (космического, морского, авиционного и других направлений)   свою вычислительную машину.  Когда я ушел из ящиков в ЦНИИКА, занимающйся АСУТП, то обнаружил, что гражданские отрасли обгоняют   оборонку, ориентируясь на архитектуру наиболее продвинутых западных фирм. Так, ИНЭУМ (Москва) копировал архитектуру (принципы построения и систему команд) фирмы DEC, НИИУВМ (Cеверодонецк) фирмы Hewlet - Packard, а НИИЦЭВТ (Москва) - IBM. Тем самым была создана основа для распространения этих машин в гражданских министерствах и создания неких сообществ программистов, мыслящих на одном языке, тогда как специалисты в ящиках варились в своем соку и неизбежно отставали, какими бы талантливыми не были отдельные разработчики. Когда люди, часто очень далекие от техники, или же зацикленные на былых успехах, говорят, что не надо копировать, а надо развивать свое, ориентируясь на свои таланты - они и правы и не правы. Я наблюдал как в “ящиках”, например, закрытость использовали отдельные разработчики для защиты своих не всегда передовых идей. Так, в институте  электромеханики и автоматики (ныне ПКБ “Марс”), который разрабатывал системы ориентации и навигации для авиационных и космических объектов, даже отдельные части единой электронной системы  разрабатывались в разных отделах на разной элементной базе: в одном отделе на базе так  называемых СИПЭ (система импульсно - потенциальных элементов), а в другом   на базе модных тогда феррит - транзисторных ячеек. И никакое (не очень грамотное) начальство не могло их помирить, пока не появились опять тоже содранные с западных прототипов интегральные мнемосхемы.   Закрытость ящиков использовалась во внутренней конкурентной борьбе.
     Боролись “ящики” и на более высоком уровне, пример тому эпохальная борьба Челомея и Королева.  Помню, как Челомей в   конференц-зале ОКБ-52 (п/я80), собрав молодых специалистов,  рассказывал, как прорывался (с помощью Хрущева) в космическую сферу: “В нас не верили. Нам мешали. Но мы с успехом запустили сначала МП-1,а потом и другие космические аппараты. И теперь только две фирмы в Союзе способны осуществить высадку человека на Луну: мы и Королев”.  Не было открытой, основанной на открытой конкурентной   основе, борьбы. Была борьба бульдогов под ковром.
   Знаменем западных фирм стало открытость, совместимость изделий разных фирм. Как ни удивительно совместимость    была  не порождением плановой системы, а рыночной системы, не коллективизма, а индивидуализма.
  Когда я уже в 90-х годах изучал рынок предложений контроллеров (АСУТП) для нефтедобычи, в частности для “качалок” на нефтепромыслах, то обнаружилось, что все российские разработки до сих пор отличаются крайней закрытостью. В советское время двигателем технического прогресса было развитие военной индустрии, теперь двигателем (богатым заказчиком) стали ранее не престижные сырьевые отрасли. И, чтобы выжить, бывшие аэрокосмические “ящики” двинулись, например, в добычу нефти. Предпосылки для этого основывались, в частности, на их возможностях  производить отбор элементной базы и испытывать аппаратуру в экстремальных климатических условиях (наличие климатических камер и т. д.). Кажется, открылась ниша для нашей электроники: высокая ремонтопригодность (прямо на морозе) и т. д. И, действительно, русская аппаратура, установленная прямо на качалках в неотапливаемых корпусах, работает там, где электроника вообще не должна работать (я сам видел это на кустах скважин  Самотлора). Аппаратура же на базе Allen Bradley (РLС-5) стоит там в отапливаемых корпусах.   Но сохранились все родовые особенности советской техники:
-несовместимость контроллеров с   уже ранее установленными контроллерами других фирм;
-невозможность внести какие - то изменения в программном обеспечении без участия разработчика и т. д.
  Открытость в современных вычислительных системах (сравни c cоткрытым обществом Поппера) обеспечивается использованием сетевых стандартов Ethernet и т.д., стандартных  интерфейсов общения с базами данных (например, SQL-запросы к базам данных), так называемых OPC – серверов для обеспечения совместной работы контроллеров,  продуктов  разных фирм, универсальных систем визуализации (SCADA) типа InTouch. Ни один из этих механизмов или даже их подобие не рождены в российских умах.
  Интересно влияние постепенного распространения западной техники на российский подход к разработкам. Если унификация систем команд уже в советское время позволила перенести основные усилия разработчиков с аппаратуры на программное обеспечение, то появление многих готовых открытых программных инструментальных систем дало возможность перенести творческие усилия на  решение собственно задач проблемной среды, не создавая попутно для этого инструмент. Cама конструкция программных систем уже навязывает определенный уровень разработки и его открытость. Типовая ситуация для советского типа программирования состояла в следующем. Некий вундеркинд делал почти в одиночку программную систему (а на первых этапах и свою операционную систему, и библиотеку стандартных программ). Без сопровождения вундеркинда система не работала, а защита его интеллектуальной собственности состояла в практической отсутствии документации. И тем самым он влиял на начальство и свою зарплату. Как правило, у всех программных гениев непростой характер, и после его увольнения   никто не мог сопровождать и развивать его систему, а новый  найденный вундеркинд,  конечно, делал все по - своему. При отсутствии конкурентной экономической борьбы плодилось бесконечное множество примерно одинаковых систем, решающих одни и те же задачи.
     Были практически только две возможности серьезно повысить зарплату: защитить на базе своих разработок диссертацию или стать начальником. А начальником можно стать, если есть определенное число подчиненных, пусть половина из них валяет дурака. Вот почему у нас так мал ВВП на душу населения.
  За последние годы жизнь и сотрудничество с фирмой SIEMENS заставили нас перенять некоторые технологические приемы виды документов. стандарты оформления документации и т. д.  Наш первый немецкий партнер, доставшийся нам еще по связям с бывшими фирмами ГДР (GRV-Teltow), рассказал нам, как фирма SIEMENS, которая взяла на буксир GRV-Teltow, сотрудничает с индусами: “Мы ставим в их хижины персональные компьютеры, они составляют хорошие программы и отправляют их по Интернету в Германию. Мы в ответ посылаем им денежки на чашечку риса.”
    Такие же неоколонизаторские отношения он хотел установить с нами. И мы несколько лет “питались чашечкой риса”, пока не освоили технику SIEMENS и не бросили нашего плантатора. Но многое мы все же взяли у немцев и соответственно наш менталитет немножко изменился в немецкую сторону.   
    Теперь в Москве есть представительства или партнеры почти всех крупных западных фирм. Интернет и другие средства связи настолько сблизили партнеров внутри страны и за рубежом, что только ветеранов вычислительной (особенно оборонной) техники поражает, как молодые ребята в процессе конфигурирования какой - нибудь системной математики скачивают ее составные части с “чужих” серверов бывшего “предполагаемого противника”, расположенных за тысячи километров. Сталкиваясь с каким- то неизвестным поставщиком, прежде всего находишь его сайт и скачиваешь с него иногда такие материалы, которые раньше считались ноу-хау  разработчика. Да что далеко ходить, империя Siemens еще сравнительно недавно, в начале 90-х годов, позволяла себе иметь все свое, начиная с операционной системы Flex OS. Но противостоять всепобеждающему учению Microsoft не смогла   и послушно перешла на Windows, получив в приданое все богатства приложений, платформой которых стал Windows. Интернет победил российские пространства и способствует превращению нашего общества в открытое.  Попытки сохранить какую-то автаркию приводят к тому, что жизнь вместе с молодыми ребятами обтекает тебя, и ты мигом становишься “динозавром”.
               


  Сравнение   тенденций развития средств современного программирования и российского общества


       Имеется нечто общее в развитии общества и программных систем. Это позволяет надеяться, что есть какие -то общие законы эволюции   сложных систем,  а   движение России от тоталитаризма  к либерализму закономерно и неизбежно.
      Представим, что алгоритмы обработки данных относятся к обрабатываемым данным как   система управления государством относится к управляемому народу.      В начальный период развития программирования данные представляли собой совершенно пассивную среду, с которой алгоритмы делали “все что хотели”.  Каждый программист изобретал свои алгоритмы для решения практически одних и тех же задач. Ветераны еще помнят, как программисты набивали перфокарты и отдавали их в ВЦ на счет по ночам. Все программы оперировали с массивами – безликой и пассивной “толпой”, беспрекословно подчинявшейся алгоритмам. 
       В результате длительной эволюции появилось современное объектное или визуальное программирование (системы и языки программирования Visual C, Delphi, WinCC фирмы Сименс и т.д.), которое использует в самых разных системах программирования одни и те же приемы.  Начиналось все с так называемых абстрактных типов данных (АТД), которые, казалось, были так далеки от реальных проблем программистов. В АТД появилось понятие объекта как совокупности набора данных и процедур, характеризующих статические и динамические свойства объекта. Данные переставали быть глиной, из которых программист лепил что угодно, они объединились с процедурами и стали отображать свойства и поведение реальных объектов предметной области программирования.  Объекты - это уже некие “личности”, которые имеют определенную независимость от программиста и его алгоритмов и могут жить своею собственной “личной” жизнью. Были произнесены “священные” слова:   инкапсуляция, полиморфизм, наследование, что в переводе на “демократический” язык обозначает неприкосновенность частной собственности объекта, независимость его поведения и передачу богатства (свойств и процедур) по наследству.
    Объект реагирует на события внешнего мира только   через “демократические” процедуры (правовое государство). В качестве источников событий может быть пользователь (используя, например, мышь), или сигналы от датчиков. А ведь раньше данные реагировали только на указания “вышестоящего” алгоритма. Теперь вместо полностью детерминированного поведения (подданных) какие - то случайные события внешнего мира могут определять поведение системы. 
                Венцом объектного программирования является так стремительно развивающиеся так называемые OLE технологии (внедрение и связывание объектов в программную систему). Такая же технология, ориентированная на АСУТП, носит название OPC (OLE для производственных процессов). Это позволяет просто покупать на рынке библиотеки необходимых объектов (регуляторы, наборы мультимедийных эффектов, изображения, да что угодно), и   вставлять их в свои системы с помощью все того же детского приема “хватай и вставляй”. Простота использования этих объектов основана на таких сложных механизмах, скрытых от пользователя, что разработчики OLE механизмов сравнивают   сложность понимания их со сложностью   принципов квантовой механики.  Поразительно, что все усилия наиболее квалифицированных программистов направлены на то, чтобы исключить программистов как посредников между пользователем и компьютером.
      Фундаментальным качеством программных систем стала их открытость, то есть способность включать в себя объекты, библиотеки, драйверы и т. д., разработанные совершенно разными разработчиками в разных фирмах и странах. Кажется, еще совсем недавно   мощные фирмы (такие, например как Siemens) представляли собой империи, борющиеся за рынок с помощью    закрытости. Так, например, у Siemens была своя операционная система , свои языки, полевые шины, да вообще все свое.
   Потом Siemens провозгласил открытость своим принципом. Фактическим стандартом для Siemens   и вообще программного обеспечения АСУТП разных фирм стала операционная система Windows  , позволившая использовать в программном обеспечении весь багаж, накопленный в офисных системах, в частности, средства Microsoft Office.
  Империя “Siemens” в война “полевых шин” вела за собой в основном европейские фирмы, используя как оружие в борьбе за рынок стандартизированную   шину Profibus. Группа в основном американских компаний, возглавляемая Fisher Rosemaunth, продвигала другую шину - Fieldbus Founditiоn.    Появление OLE технологий сделало бессмысленной такие войны. Cтала нормальной поставка   оборудования, в частности контроллеров, с универсальным драйвером (OPC-сервером), который позволяет включать  свой контроллер в чужую  систему. На рынке стал побеждать тот, кто проявляет максимальное дружелюбие к чужим программным и техническим средствам, обеспечивая “мирное сосуществование” с оборудованием конкурентов,   уже установленном ранее на площадке заказчика. Вообще, поразительно, что на Западе существует такая согласованность в стандартизации всяческих интерфейсов и стыковке оборудования конкурирующих фирм, которой никогда не удавалось достичь в, казалось бы, изначально регламентированной ГОСТами, в том числе якобы ориентированными на совместимость, советской технике. Но природа человека сильнее ГОСТов, и всегда можно было их обойти во имя   скрытой конкуренции, неоправданного засекречивания слабых работ или же защиты диссертации.   
    Удивительно, но если раньше основным двигателем развития компьютерной техники являлись потребности военных, то теперь, пожалуй, – детей. Именно игры и другие мультимедийные приложения предъявляют наиболее жесткие требования к ресурсам ПЭВМ: быстродействию, объемам памяти, графике и т. д.    Более того, именно игровые приемы типа “хватай и тащи” стали основой технологии Windows, а визуальное программирование в целом напоминает игру, в которую с удовольствием играют взрослые. Недаром так стремительно помолодели программисты.
        Процесс проектирования программных систем сопровождается визуализацией (то есть отражением на экране) каждого шага программиста, меж тем как раньше результат программирования, особенно систем реального времени, можно было увидеть только после мучительной “комплексной” отладки. Визуализация играет роль СМИ, которые в демократическом обществе сообщают о каждом шаге правительства.
    Итак, современные программные системы все более отдаляются от простых детерминированных моделей окружающего мира и отражают его стохастическую природу. Они все более носят открытый характер и, в частности, за счет непрерывной визуализации процесса проектирования, возможности   модернизации, обмена информацией, использования корпоративных и глобальных сетей, выхода в Интернет.
 Процессы экономической глобализации прежде всего  отражаются в сфере информационных технологий, которые, в свою очередь, ускоряют   глобализацию во всех других областях.  Открытость и интернациональный характер информационных технологий, в свою очередь, формирует людей, с детства привыкающих к единству мира, чуждых ксенофобии и автаркии.  Раньше же работа в оборонке автоматически формировала образ врага (предполагаемого противника).
             Однако,   восхищаясь чудесами глобализации, не стоит забывать о ее отрицательных последствиях, в том числе и в   информационной сфере. Недаром противники глобализации бушуют от Буэнос - Айреса до Давоса, а число программистов ненавидящих империю Била Гейтса, которая душит все их творческие порывы, все растет.  Принципиально изменился характер литературы по компьютерам на наших книжных полках. Раньше мы читали, как сделать самому компьютер или программный продукт  и делали их сами, а теперь - как пользоваться пусть и прекрасным продуктом, но сделанным неведомо каким образом за океаном.

               

   

Список опубликованных трудов

    
   1.Шереметьев, В.К., Лесовик, А.Д.,   Вольтер, Б.В. Унификация связей  в системе первичной обработки информации для  АСУТП// Автоматизированные системы управления непрерывными   технологическими процессами   в химии, нефтехимии, металлургии и энергетике :тез. докл. Всесоюзн. совещания. -М., 1973.- С. 70-72.
    2.Вольтер, Б.В., Шереметьев, В.К., Лесовик, А.Д. Унификация связей в структуре математического обеспечения системы контроля АСУТП//Приборы и системы управления.- 1975.- N1.
    3.Шереметьев, В.К., Лесовик, А.Д. Синтез структуры математического обеспечения АСУТП (на примере АСУ “Полимир-50”) //Вопросы промышленной кибернетики: труды ЦНИИКА.-1975.- Вып.45.- C.35-39.
    4.Шереметьев, В.К., Бергер, Г. Структурный подход к построению программного обеспечения информационных функций АСУ крупнотоннаж - ной установкой //Вопросы промышленной кибернетики: труды ЦНИИКА.-1976.- Вып.48- C.27-30.
     5.Шереметьев, В.К., Цагарели, Н. В., Вольтер, Б.В., Бергер, Г., Кох, М., Aндре,  X. Использование концепции базы данных в АСУТП//Опыт создания и внедрения АСУ в отраслях промышленности с непрерывным и непрерывно-дискретным характером производства, технологическими процессами и производствами в энергетике, химии и металлургии.- М., 1977. C. 54-56.
    6.Шереметьев, В.К., Худяков, В.П., Вихтер, А.И. Информационно-измерительная система цеха конфекционирования в производстве полиэтилена// Всесоюзная конференция по измерительным информационным системам. :тез. докл.  и сообщений. –Баку,1977.- C. 54-56.
     7.Шереметьев, В.К., Вихтер, А.И., Бергер, Г. Использование базы данных в АСУТП крупнотоннажных агрегатов.// Приборы и системы управления.- 1981.- N3.-C.1-3.
     8.Шереметьев, В.К., Основные направления развития и стандартизации языков и пакетов прикладных программ для АСУТП// ИКА.- 1981.- N1 (35).-C. 57-65.
     9.Вихтер, А.И., Шереметьев, В.К.,Cавельев, А.М.  Представление информации в АСУТП  крупнотоннажными агрегатами//Опыт создания и внедрения АСУ технологическими процессами и производствами в энергетике химии и металлургии: тез. докл. Всесоюзн. конф. -М.,1981.- C. 23-25.
     10.Вольтер, Б.В., Софиев, А.Э., Шереметьев, В.К., Вихтер, А.И. Использование распределенной базы данных для расчета показателей технологического процесса//Примененение микропроцессоров и децентрализованных структур в АСУТП: cб. научн. тр. ЦНИИКА.-М.,-1983.-  C. 20-22.
     11.Шереметьев, В.К., Вихтер, А.И. Архитектура программного обеспечения АСУТП, построенного на базе пакетов прикладных программ//Управляющие системы и машины.-1983.- N1.- C.94-97.
     12. Шереметьев, В.К. Методика синтеза логической структуры проблемно-ориентированной базы данных для АСУТП// Методические вопросы проектирования АСУ: cб. научн. тр./ЦНИИКА.-М.,1984.- C. 37-40.
     13. Шереметьев, В.К., Вихтер, А.И., Цилов, А.П.Комплекс программ для модернизации системы программного обеспечения АСУТП //Управляющие системы и машины.-1985.- N1.-C.67-69.
     14. Вихтер, А.И., Cавельев, А.М., Софиев, А.Э., Шереметьев, В.К. Организация системы взаимодействия оператора - технолога с процессом //Специализированные технические средства для АСУТП: cб. научн. тр. ЦНИИКА. -М.,1985.- C. 16-19.
     15. Шереметьев, В.К., Вихтер, А.И., Цилов, А.П. Технология программирования программно-технического комплекса “Полимир”, основанная на концепции типов данных//Принципы построения  программно-технических комплексов: cб. научн. тр. ЦНИИКА.- М.: Энергоатомиздат,1989. - C. 24-26.
     16.  Шереметьев, В. К. Использование концептуальных моделей и типов данных в программном обеспечении АСУТП// Математическое моделирование объектов управления: cб. научн. тр. ЦНИИКА.-М.,1990.- C. 78-85. 
     17.  Винниченко, В.Е., Захаров, Н.А., Свиридов, В.Н.., Шереметьев, В. К., Софиев, А.Э. “Кама”- система контроля и управления для распределенных объектов //Приборы и системы управления.-1995.- N10.
   18. Шереметьев, В. К.,Носачев, А.Н., Попов, С.А. ,Савельев, А.М., Сергеев, Г.И., Софиев, А.Э. Опыт проектирования технического и программного обеспечения АСУТП в нефтехимической промышленности на базе средств фирмы SIEMENS// Приборы.- 2007.- N 1(79).


Рецензии
Очень интересно читать.

Игорь Леванов   14.03.2010 20:20     Заявить о нарушении