Окно в никуда или восемь вопросов Биллу Гейтсу.

 
Н.Н.Иванов,
к.ф.-м.н., доцент Российского торгово-экономического университета 

   Появление операционных систем Windows в начале 90-х годов, безусловно, можно считать поворотным пунктом в развитии новой отрасли промышленности – производстве программных продуктов. Трудно сказать, превысил ли уже объем производства в этой отрасли объем производства в топливно-энергетическом комплексе или в авиационной промышленности, но совершенно ясно, что темпы роста здесь значительно выше. Существенно выше здесь и средняя норма прибыли, прежде всего, из-за нематериального характера продаваемого продукта, которого по мере продаж не становится меньше, вследствие ничтожности затрат на его тиражирование. Возможно, когда-нибудь человечество выработает новые формы торговли интеллектуальной собственностью, в которых не только стоимость производства, но и полученный доход перестанут зависеть от количества проданных копий. Пока же оказывается, что направлять деньги на повышение тиражируемости программного продукта значительно выгоднее, чем на производство. Так что рекла­ма программных продуктов, или,- шире – пропаганда образа жизни, обеспечивающе­го возрастающее использование того или иного класса программ, является более доходным вложением, чем производство новой интеллектуальной продукции. Сюда же можно отнести и продвижение законов об охране прав владельцев интеллек­ту­альной собственности на неограниченное получение доходов от ее тиражирования.

   В этой ситуации производство новых продуктов становится оправданным только после насыщения рынка первичных продаж, когда нужно заставить тех, кто уже купил, например, операционную систему Windows, купить ее еще раз. Иными словами, повышение качества изделия превращается из основного способа конку­рен­т­ной борьбы во второстепенный аспект продвижения продукта. С учетом этого обстоятельства имеет смысл приглядеться к операционным системам Windows несколь­ко внимательнее.

   Изначально, появление этих систем было инициировано одной объективной причиной. Применявшаяся ранее в большинстве персональных компьютеров операционная система DOS была изначально рассчитана на компьютеры с объемом оперативной памяти не более 1 Мб. Появление машин с большей памятью привело к определенным проблемам с ее использованием, для решения которых требовалось прилагать некоторые усилия.

   Эти проблемы в операционной системе Windows были решены. Попутно в ней появились некоторые компоненты, которые раньше считались присущими только прикладным программам. Прежде всего, к ним следует отнести систему общения с человеком, или интерфейс. Почему-то сейчас многие считают оконный графический интерфейс неотъемлемой частью системы Windows. В свое время автор достаточно много моделировал движущиеся изображения в системе DOS. Поэтому могу сказать совершенно ответственно – для реализации этого интерфейса Windows не нужна. Как и для поддержки работы с “мышью”. Все это прекрасно делается в прикладных програм­мах, реализуемых в рамках любой операционной системы. Другой вопрос, а так ли удачен этот интерфейс, чтобы использовать его чуть ли не везде? Впрочем, рассмотрим основные характеристики операционной системы Windows и слишком тесно связанных с ней прикладных программ по порядку.

  1. Прежде всего, вопросы вызывает надежность работы этой операционной системы. Успел обрасти бородой анекдот о том, как Билл Гейтс открыл ресторан. На следующий день из налоговой инспекции была получена бумажная ленточка с красным крестиком и надписью «Предприятие выполнило недопустимую операцию и будет закрыто». Между тем, сбой в работе программных средств, а в особенности операционной системы, в ряде случаев может привести к более тяжелым финансо­вым последствиям, чем, например, сбой в работе системы электроснабжения. Иными словами, программные продукты все более приобретают черты источников повы­шен­ной опасности, и в этом отношении становятся похожими на оружие или взрывча­тые вещества. Поэтому тот факт, что в подавляющее большинство лицен­зион­ных соглашений на использование программного продукта включена фраза «Разработчик не несет ответственности за возможные убытки, возникшие в резуль­тате использования программного продукта или невозможности его использования», заставляет усомниться в том, что в производстве этой продукции все в порядке. И уж во всяком случае, пора задуматься о том, всякую ли интеллектуальную собствен­ность следует защищать от несанкционированного использования, или только ту, которая прошла определенные испытания на предмет надежности и безопасности, а ее разработчик принимает на себя определенные реальные обязательства.

  2. Люди, которые много работают за компьютером, давно поняли, что этот ящик для наших глаз – далеко не самое полезное устройство. Многие программисты предпочитают работать в черно-белом режиме, считая, что так глаза меньше утомляются. Так что достаточно крупные элементы интерфейса, и возможность работы с ними «одним пальцем» хотя и снижают производительность нашего труда, но для глаз, безусловно, полезнее. Если укрупнить их в оконном интерфейсе, работа станет крайне неудобной, а если с третьей попытки попадать, особенно не очень хорошо работающей мышью, в мелкую кнопку, о здоровых глазах можно будет скоро забыть. Так что еще одно не очень приятное свойство операционной системы Windows, и тесно примыкающего к ней семейства программных продуктов - это негигиеничный для глаза интерфейс.

  3. Читая эти строки, многие люди зададут вопрос, а зачем критиковать Windows, если этой операционной системе практически нет альтернативы? Насчет альтернативы можно поспорить, но согласиться следует с тем, что Windows сделана монополистом. А у всякого продукта, сделанного монополистом есть два неотъем­лемых свойства – монопольно высокая цена, и более низкое, по сравнению с немоно­польным производством, качество. Думается, что цена в 15-20% от цены персо­наль­ного компьютера – монопольно высокая. Да и правомерность продажи операцион­ной системы отдельно от компьютера достаточно сомнительна. Пожалуй, естествен­нее было бы рассматривать ее как неотъемлемую часть технического устройства.

  4. Во многих профессиях одни из самых важных понятий часто определены нечетко. Для моряков это – “хорошая морская практика”, для бухгалтеров – “культура бухгалтерского учета”, для врачей – “врачебная этика”. Для программис­тов всегда существовало такое понятие, как хорошая или плохая структурирован­ность программы. Обычно это понимается таким образом, что одна функция должна быть сосредоточена в рамках одной процедуры. Плохо структурированную программу бывает крайне трудно усложнять, перестраивать, совершенствовать. Наступает такой этап, когда небольшое измене­ние программы приводит к неконтролируемым изменениям в самых разных аспектах ее поведения. Обычно за хорошую структурированность приходится платить некоторым замедлением работы программы. Понятие это достаточно нечеткое, разными программистами понимается по-разному, но более или менее понятно интуитивно. Имеет оно и еще один, внешний аспект. Нехорошо, когда программа или данные расположены в нескольких папках, “разбросанных” по компью­теру, так что непонятно, какая папка какой программой используется. Тем более, если их расположение не определяется пользователем. Впрочем, это касается не только программирования. Если за телевизором волочится плата, соединенная с ним несколькими проводами – это тоже нехорошо. Даже если багаж находится на крыше автомобиля, это тоже смотрится хуже, чем если он спрятан в багажнике.

   В операционной системе DOS культурно сделанная программа выглядела примерно так же, как телевизор или холодильник в красивом корпусе. Можно принес­ти в квартиру и включить – будет работать, можно выключить, унести и не вспоминать, если не понравился. Так и программу, можно записать, запустить и работать, можно стереть и не вспоминать. В Windows дело обстоит несколько иначе. Каждая программа должна быть “инсталлирована” на конкретном компьютере. При этом информация о программе заносится в некий “реестр Windows”, а ряд элементов операционной системы меняются. Устройство реестра и этих элементов далеко не до конца раскрывается разработчиками Windows. Иными словами, каждая прикладная программа оставляет следы в компьютере. Рано или поздно наступа­ет момент, когда таких следов оказывается слишком много, они начинают мешать друг другу, и владелец компьютера решает, что, пожалуй, проще переформати­ровать жесткий диск, и установить Windows “с нуля”.

   Если уж продолжать использовать аналогию с бытовой техникой, ситуацию можно проиллюстрировать следующей картиной. Вы приносите в дом телевизор, ста­вите в угол, включаете. Через некоторое время из него выползают детали, интеграль­ные схемы, провода, и располагаются кто в белье, кто под подушкой, кто в деловых бумагах. Аналогичная картина после покупки холодильника или магнитофона. Через некоторое время вы обнаруживаете, что кто-то перекладывает документы, шуршит по ночам вашим бельем, а к какой технике относятся детали, заполз­шие в ванну, и вовсе неизвестно. При этом производители холодильника говорят, что в этой ситуации вы сами виноваты, т.к. недостаточно хорошо знаете его устройство.

   Может быть, в нарисованной картине имеются некоторые передержки, но ясно также и то, что в операционной системе Windows есть проблемы со структурированностью.

  1. Плохая структурированность программных продуктов чаще всего оправды­ва­ется стремлением сделать их работающими быстрее. В связи с этим, естественно было бы ожидать, что система Windows по мере своего развития будет на одной и той же технике работать все быстрее. Однако отчетливо наблюдается совершенно обрат­ная тенденция. Впрочем, что назвать быстродействием операционной системы, не совсем понятно. Точнее было бы говорить о том, что если одна и та же программа может работать в любой операционной системе, то в системе DOS она будет работать быстрее, в Windows 98 несколько медленнее, а в Windows XP - еще медленнее. Заметно это даже в программах фирмы Microsoft, наиболее тесно привязанных к операционной системе, например, составляющих семейство Microsoft Office. А уж если сравнивать быстродействие различных версий этих продуктов на одной и той же технике, результат и вовсе будет разительным. На первый взгляд кажется, что над проблемой быстродействия программных продуктов в фирме Microsoft не думают вовсе. Однако, скорее всего, это не так. Думают, но совершенно в другой связи.

  2. Всем нам хорошо знакома ситуация, когда вместо старого, исправно работающего на своем месте компьютера, приходилось приобретать новый только потому, что на старом нельзя было установить операционную систему, необходимую для работы новых версий программных продуктов. При этом новые версии зачастую оказывались хуже и медленнее старых. Переход же на эти версии обычно стимулировался какими-то «силовыми» приемами. Напри­мер, выпуском принтеров, которые можно эксплуатировать, по существу, только в последних Windows, или версий текстового редактора, формирующего файлы, несовместимые с более ранними версиями. В любом случае, как правило, замена компьютера была обусловлена не сложностью задач, которые на нем предстоит решать, а искусственно вызванной ситуацией на рынке компьютеров и программных продуктов. В отноше­нии использования компьютера только для редактирования и распечатки текстов вообще можно совершенно определенно утверждать, что задача формирования красивой печати вполне по силам компьютерам самого низшего уровня, но кто думал о том, чтобы программа типа Word могла работать на PC-286? И сколько компьютеров этого типа полностью выработали свой ресурс?

   Теперь попробуем спросить себя, кому выгодно, чтобы для решения тех же задач, которые вчера решались на одних компьютерах, сегодня мы покупали другие? Производителям вычислительной техники это выгодно безусловно. Выгодно это и производителям операционных систем – вновь и вновь один и тот же человек покупает их вместе с новыми компьютерами. Таким образом, независимо от того, оформлен он явно или нет, налицо сговор производителей техники и операционных систем. Последние искусственно завышают ресурсы компьютеров, необходимые для функционирования их программных продуктов, что значительно расширяет рынок продаж новых машин. 

  1. Несколько слов следует сказать и об изменении подхода к самому процессу программирования, инициированному появлением операционных систем Windows. Программирование в последние годы все более становилось процессом собирания продукта из готовых стандартных блоков. Казалось бы, в этом есть определенный прогресс, хотя бы потому, что при этом увеличивается производительность труда программиста. Однако, точно так же, как в строительстве крупнопаннельное домо­строение в чистом виде оказалось бесперспективным, вероятно, и в программирова­нии есть некий оптимальный состав готовых модулей, при укрупнении которых процесс программирования выхолащивается. Из таких модулей можно строить программ­ные продукта только в достаточно узком коридоре заданных возмож­ностей. Более того, как правило, собранные таким образом программы оказываются крайне медленно работающими. Те, кто наблюдал работу программ, созданных на базе Microsoft Office, или в которые встроены эти программы, могли убедиться в этом на собственном опыте.

   Известное лукавство проявилось в этой связи и в терминологии. Достаточно широко распространены термины DOS-приложение, Windows-приложение, Linux-приложение. Не говоря уже о том, что эти термины характерны скорее для московинга, чем для русского языка, обычно вопрос о том, как понимает их тот или иной специалист, ставит его в тупик. И действительно, если понимать программу как воплощение алгоритма, т.е. последовательности математических инструкций, то технология построения алгоритмов родилась значительно раньше всех операционных систем и даже компьютеров. Программы тоже пишутся на алгоритмических языках, в-общем то, не привязанных к операционным системам. Операционная система участвует только в переводе программы на язык машинных команд. И если сама технология построения алгоритма оказывается привязанной к этому процессу, сразу возникает ощущение, что что-то здесь нечисто. Реально, пожалуй, можно сказать, что “программы под Windows” – это программные продукты, созданные на базе и в рамках, задаваемых прикладными программами фирмы Microsoft. В итоге, по мере эволюции операционных систем Windows, отчетливо просле­жи­вается тенденция развития к такой операционной системе, которая обеспечит невозможность функционирования на компьютере никаких программ, кроме созданных фирмой Microsoft, и их комбинаций.

  1. Плохая структурированность программ «под Windows», и их «размазан­ность» по компьютеру привели к еще одному следствию – повышенной вирусо­неустой­чи­вости компьютерной системы. Действительно, если пришедшая через интернет программа может «прописаться» в реестре Windows без всякого контроля со стороны хозяина компьютера, и потом в лучшем случае испортить записанную в компьютере информацию, а в худшем случае производить непрерывный контроль этой информации и посылать сообщения на какие-то электронные адреса, это хорошо для организации тотального контроля за образованной частью населения, но никак не для развития в мире демократии или уважения к гражданским правам.

   Иными словами, ситуация здесь напоминает замок на двери квартиры, ключ от которого есть у всех воров и других “правонападательных органов”, но не у хозяина.

   Подведем некоторые итоги. Естественно, субъективные и отражающие личную научную позицию автора. Направление развития промышленности, произво­дя­щей программные продукты на базе операционных систем Windows – тупиковое направление. Вряд ли имеет смысл фирмам, производящим программные продукты, претендующие на более долгую жизнь, слишком тесно связывать их структуру с программными продуктами фирмы Microsoft.

   Что же будет дальше? Какие программные системы придут на смену этой продукции, и, прежде всего, операционным системам Windows? Поскольку сейчас на мировом рынке явственно ощущается недовольство поведением монополистов в производстве системного программного обеспечения, рискну предположить, что появле­ние реального конкурента на рынке операционных систем массового исполь­зо­вания было бы доброжелательно встречено всеми учасниками этого рынка, даже если его продукт будет, на первых порах, уступать Windows. Особенно, если в интерфейсе этих продуктов появятся какие-то принципиальные новинки, хотя бы голосовое управление.

   Для России, Украины или Беларуси экономические последствия разработки операционной системы, способной вытеснить Windows с мирового рынка, вполне могли бы стать сравнимыми с последствиями экспорта нефти или газа, с той только разницей, что никак не отразятся на экологическом состоянии наших стран. Для этого на постсоветском пространстве есть все условия. Это и хорошие математи­ческие школы, и более низкая, чем на западе, себестоимость разработки программ­ных продуктов. Наконец, в последнее десятилетие появилась, хоть и недоразвитая, промышленность по производству программных средств, в которой сформировался менеджмент, вполне способный вести конкурентную борьбу на внешних рынках. Так что, на взгляд автора, пришла пора осознания того обстоятельства, что разработка операционных систем нового поколения вполоне достойна стать национальной задачей одной из наших стран.


Н.Н.Иванов, к.ф.-м.н., доцент Российского торгово-экономического университета.
С автором статьи можно связаться по электронной почте - bt@freeline.ru или по телефону - (8452) 63-28-81.