Шереметьев Владимир Константинович : другие произведения.

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

Самиздат: [Регистрация] [Найти] [Рейтинги] [Обсуждения] [Новинки] [Обзоры] [Помощь|Техвопросы]
Ссылки:
Школа кожевенного мастерства: сумки, ремни своими руками
 Ваша оценка:
  • Аннотация:
    Имеется нечто общее в развитии общества и программных систем. Это позволяет надеяться, что есть какие -то общие законы эволюции сложных систем, а движение России от тоталитаризма закономерно и неизбежно.


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

Связаться с программистом сайта.

Новые книги авторов СИ, вышедшие из печати:
О.Болдырева "Крадуш. Чужие души" М.Николаев "Вторжение на Землю"

Как попасть в этoт список

Кожевенное мастерство | Сайт "Художники" | Доска об'явлений "Книги"