Софтпанорама,март 95;v.7.No.3(72) ***FOREWORD*** Составитель Н.Н.Безруков =================== Copyright 1995, OOO Софтпанорама ======================= Редакция 1.03 ---------------------------------------- # К О Л О Н К А Р Е Д А К Т О Р А # ---------------------------------------- Открытые системы - плюсы и минусы Уважаемые коллеги ! Пользуясь случаем я бы хотел поздравить читетельниц бюллетеня с праздником и пожелать им всего самого хорошего. Что касается темы моей мартовской колонки, что я решил остановиться на до- вольно субъективном понятии "открытые системы". Интересно отметить, что в этом месяце прекратил свое cуществование журнал "Open Systems Today" - его слили с Infoworld. Поэтому это одновременно дань памяти хорошему, интерес- ному журналу. Термин "открытые системы" стал достаточно популярным последнее время в связи с большим распространением UNIX благодаря Internet, ростом популярности продуктов GNU, FreeBSD и LINUX, а также ростом недовольства технической по- литикой (эпопея с Windows 95) и качеством продуктом (Word 6.0) фирмы Microsoft. Понятно, что продукты Microsoft являются закрытыми в том смысле, что спецификации определяет сама фирма. Иногда изменения спецификации в од- ностороннем порядке становится достаточно обременительным. Конечно Windows 3.11 слабее OS/2, но на слабых машинах она предпочтительнее и то, что Microsoft решила ее похоронить достаточно больно ударит по пользователям, для многих из которых возможности, предоставляемые Windows 3.xx, являются вполне адекватными. Многие просто не располагают железом, способным с нор- мальной скоростью работать под OS/2 или Windows 95. По подсчетам специалис- тов переход с Windows 3.xx на Windows 95 обойдется американским фирмам при- мерно в 20 миллиардов. Понятно, что такие большие дополнительные затраты, хотя и разбросанные на несколько лет, не вызывают ни у кого особого энтузи- азма. Не случайно на Microsoft сейчас оказывается давление в плане продолже- ния работ по MS-DOS и линии Windows 3.xx. И уже сейчас Microsoft обещает выпустить MS-DOS 7.0, хотя раньше было торжественно заявлено, что версия 6.22 является последней. Одновременно растет понимание, что в одиночку с Microsoft не справится и раз- работчики пытаются объединиться, чтобы отстоять рынок сообща. Попытка Borland в одиночку конкурировать с Microsoft в области приложений кончилась печально. При этом Borland проиграл не по качеству своих продуктов, наобо- рот в большинстве случаев его продукты были сопоставимы по качеству или да- же сильнее, при существенно более низкой цене. Borland проиграл маркетинго- вой машине которая использовала ряд приемов "на грани фола" при борьбе с конкурентами. Одним из таких приемов было объявление Microsoft о выходе но- вой версии своего продукта непосредственно перед выходом продукта Borland. Другим было предоставление дополнительных скидок на операционную систему при закупки лицензии на поставку Office вместе с компьютером. Поскольку по оценке многих наблюдателей Microsoft сейчас переживает спад морального уро- вня и уровня преданности сотрудников, качество его продуктов вряд ли улуч- шится, скорее наоборот. Поэтому хотя Microsoft и доминирует в области при- ложений под Windows, опасно класть все яйца в одну корзину. Кроме того не- известно, чем кончатся судебные процессы, которые сейчас ведутся против Microsoft. Все это обуславливает правомерность расширения использования более открытых продуктов и операционных систем. Кроме того все большее число фирм, особенно крупных, становятся сторонниками защиты своих инвестиций за счет перехода на продукты, спецификации на кото- рые не принадлежат отдельной фирме. Это совсем не обязательно продукты, связанные с UNIX, хотя последние традиционно ассоциируются с открытыми сис- темами. Например OpenDoc не связан с UNIX. Smalltalk слабо связан с UNIX. REXX вообще родом из VM/CMS. Какие же критерии позволяют классифицировать систему как открытую. Предложено много разных критериев, среди которых заслуживают внимания следующие(они являются переработанным мной вариантом, опубликованных в Open System Today): 1. Наличие независимого стандарта. При этом стандарт должен быть опубликован и являться бесплатным и общедоступным. Например С имеет ANSI стандарт, а С++ пока не имеет. В то же время Windows 3.xx печально известна наличием ряда недокументированных элементов API, которые использовались только в продуктах Microsoft, в частности Excel, c целью подорвать конкурентоспособ- ность альтернативных продуктов. 2. Уровень защищенности от одностороннего изменения спецификаций. Этот пункт связан с первым. Должна существовать комиссия по выработке стандарта, в ко- торую входят представителя нескольких разработчиков данного программно- го/аппаратного обеспечения. При этом никто из производителей не может в од- ностороннем порядке изменить спецификации, хотя каждый может их расширять. При этом должен быть набор тестов на соответствие стандарту или базисной спецификации. В закрытых системах пользователь находится во власти фирмы- производителя. Например, переход от Visual Basic 3.0 к Visual Basic 4.0 де- лает невозможным использовать старые VBX. 3. Наличие альтернативных реализаций. У пользователя должен быть выбор, с тем чтобы стимулировать конкуренцию. Например DOS разрабатывается IBM и Microsoft, причем последняя версия PC DOS (версия 7.0, вышедшая 1 марта) превосходит версию MS-DOS по основным параметрам. Теперь Microsoft обяза- тельно зашевелится и ответит на вызов IBM. Компиляторы C++ разрабатываются десятком фирм, что приводит к быстрому освоению наиболее удачных нововведе- ний. 4. Возможность работы на альтернативных платформах. Например редакторы THE и EMACS доступны практически на любой платформе. MS Word помимо DOS и Windows доступен на MAC, NT для Alpha и MIPS. 5. Поддержка конкурирующих операционных систем. Например, язык C доступен на всех современных операционных системах. Что касается Visual Basic, то из соображений конкуренции Mirosoft отказалась перенести его на MAC. 6. Поддержка альтернативных форматов/файловых систем. Например LINUX поддер- живает файловые системы MS/DOS и OS/2. FoxPro поддерживает форматы Access, dBase III, dBase IV. 7. Количество продуктов способных работать на альтернативных реализациях. На- пример практически все продукты для MS DOS способны работать на PC DOS. В то же время программы и библиотеки для Turbo Pascal 7.0 непереносимы "в лоб" в среду UNIX и OS/2. 8. Возможность смены поставщика продукта. Например, если мне не нравится MS DOS я могу перейти на PC DOS или рискуя попасть в тупик на Novel DOS. Если мне не нравится SCO я могу перейти на LINUX. Однако если мне не нравится MS Access, то перейти на альтернативную реализацию затруднительно, по причине отсутствия таковой. 9. Поддержка независимыми разработчиками. Например UNIX разрабатывается по меньшей мере семью фирмами (SUN, IBM, SCO, Novell, BSD, AT&T, DEC), не счи- тая двух исключительно качественных бесплатных реализаций (LINUX и FreeBSD). На протяжении своей карьеры программиста я преимущественно имел дело с закры- тыми системами и поэтому могу на личном опыте рассказать о проблемах свя- занных с их использованием. Например я много работал на PL/1 - языке, кото- рый хотя и имеет ANSI стандарт, но в силу сложности не получившим распрост- ранения на системах, отличных от IBM 360/370. При этом у меня была возмож- ность работать на С, однако компиляторы были гораздо слабее, язык был хуже приспособлен к EC ЭВM (на AЦПУ EC ЭВМ не было символов [ ] { } и строчных букв). Короче PL/1 выглядел явно предпочтительнее, как более мощный язык с существенно более совершенным компилятором и поддержкой операционной систе- мы. Когда появились персоналки мне пришлось переучиваться, поскольку прили- чного компилятора с PL/1 на PC не оказалось. В результате значительная часть разработанного мной программного обеспечения так и умерла на EC. Если бы я использовал C, этого бы безусловно не произошло. Затем когда я более-менее освоил MS DOS появился Internet с UNIX в качестве базовой операционной системы. При этом основные утилиты, shell и редактор в UNIX несовместимы с теми, что используется мной в MS-DOS. Опять пришлось переучиваться. В то же время, если бы я использовал вместо MultiEdit, ска- жем, THE или КEDIT и пользовался бы UNIX-совместимыми утилитами для DOS, то этот процесс бы занял значительно меньше времени и протекал бы менее болез- ненно. Т.е. в конечном счете я бы выиграл, в то время как из-за невозможно- сти использования хорошо мной освоенных продуктов я проиграл. Все выше сказанное позволяет сделать важный вывод. Какой бы удачной не была система и какой бы мощной не была стоящая за ней фирма-разработчик, всегда имеет смысл рассмотреть альтернативные варианты и при наличии более откры- тых альтернатив продумать преимущества их использования. Очень часто при внимательном рассмотрении долгосрочные преимущества открытой системы пере- вешивают сиюминутные тактические преимущества работы закрытой коммерческой системы. Поскольку в коммерческих приложениях центральной компонентой является база данных можно кратко обсудить проблему открытости существующих баз данных. Лидером здесь безусловно являются системы допускающие использование SQL. (Personal Oracle, FoxPro, Personal DB2 и т.д.). SQL стандартизован и риск оказаться у разбитого корыта, когда фирма разработчик идет ко дну - ситуа- ция вполне реальная сейчас для пользователей Paradox, является минимальным. На втором месте на мой взгляд системы использующие формат xBase и какой-то диалект dBase в качестве языка. Например после того, как Clipper пошел ко дну пользователи могли перейти на FoxPro. Все остальные системы, включая Paradox, Access, Approach c этой точки зрения являются несколько рискован- ными капиталовложениями. Даже среди закрытых продуктов каждый из продуктов Microsoft имеет сейчас бо- лее сильную альтернативу, поскольку как я уже говорил Microsoft это прежде всего мощнейшая маркетинговая машина, а не сильный разработчик программного обеспечения. Visual Basic при всей своей привлекательности существенно ус- тупает как язык связывания приложений PowerBuilders и Delphy. Excel по не- которым параметрам уступает Quattro Pro и Lotus 123. MS Word идет на равных с WordPerfect и медленнее AMI Pro и отсутствие версии для OS/2 означает, что для сильных пользователей MS Word имеет смысл сопоставить его с AmiPro, который кстати в версии для OS/2 допускает использование REXX в качестве базового макроязыка. В то же время справедливости ради стоит отметить, что вес продукта на рынке является своего рода суррогатом открытости и в этом смысле Excel предпочти- тельнее Quattro Pro, а Visual Basic - Delphy. Продукты, которые имеют наи- большее количество пользователей на конкретном секторе рынка имеют соответ- ственно и большее количество книг, журнальных статей, файлов серверах Inbternet и на ВВS - т.е. лучшую инфраструктуру. Поэтому осваивать и испо- льзовать их легче, а шансы оказаться у разбитого корыта, если разработчик пойдет ко дну, минимальны. Популярные коммерческие продукты типа продуктов Microsoft имеют также очень важное преимущество, связанные с более высоким уровнем интеграции с помощью OLE и Visual Basic for applications, наличия множества дополнительных утилит, написанных другими компаниями. Таким обра- зом ориентация на доминирующие на коммерческом рынке продукты является вполне разумной стратегией, однако в долгосрочном плане, как я уже выше пи- сал, имеется отрицательный момент связанный с реальной опасностью положить все яйца в одну корзину. Т.е. очень неприятно и невыгодно, если Вы как по- льзователь вы полностью зависите от произвола фирмы-разработчика. Например, в долгосрочном плане выбор Visual Basic как языка работы с базами данных намертво привязывает пользователя к единственному продукту единственного производителя-монополиста со всеми вытекающими отсюда последствиями. При этом пользователь совсем не гарантирован от потрясений. Точнее ему гаранти- рованы сюрпризы. Например Visual Basic 4.0 уже не будет поддерживать VBX. И медицина бессильна. В то же время выбор более открытой альтернативы типа Visual Age(Smalltalk) оставляет большее пространство для маневра, хотя сей- час еще требует существенно больших затрат (для разработки нужно 16M памяти и как минимум dx2/66) и, кроме того, пользователь в странах СНГ наталкива- ется на практически полное отсутствие инфраструктуры. Хотя в ряде случаев инфрастуктура может быть создана самими пользователями как, например, про- изошло с редактором MultiEdit значительный фонд макросов для которого уже опубликован в Софтпанораме. Кроме того вес на рынке определяет степень под- держки независимыми разработчиками, т.е. наличие дополнительных продуктов позволяющих расширить область применения и/или компенсировать недостатки продукта. Это были общие соображения. Во второй части статьи я постарался прикинуть привлекательность некоторых важных системных продуктов в плане их открытос- ти по пятибальной шкале. Начну с операционных систем. DOS Windows WABI OS/2 UNIX NT Next Netware 3xx Step 1. Опубликованная полная спецификация, 3 1 5 4 5 1 3 2 доступная бесплатно No Y 2. Наличие независимого 3 0 5 3 5 1 3 2 стандарта 3. Уровень защищенности 3 0 5 3 5 0 0 0 от одностороннего изменения спецификаций 4. Количество 3/0 2/0 2/0 0/0 10/2 0/0 0/0 0/0 альтернативных реализаций (в скобках бесплатных) 5. Возможность работы 0 1 4 2 5 4 4 3 на альтернативных платформах 6. Поддержка других 1 1 1 5 3 2 0 0 операционных систем 7. Поддержка "чужих" 0 0 1 5 3 2 0 0 файловых систем 8. Количество продуктов 5 4 2 3 1 2 1 0 способных работать на альтернативных реализациях 9. Возможность смены 3 1 1 0 5 0 0 0 поставщика продукта 10.Вес на рынке и 4/4 5/5 1/1 3/2 2/2 2/1 1/1 4/2 уровень поддержки независимыми разработчиками Как видно из таблицы лучше других выглядят OS/2 и UNIX. При этом OS/2 являет- ся мощной интегрирующий платформой - единственной на которой можно исполь- зовать огромный объем программного обеспечения для DOS и MS Windows, а так- же многие продукты для UNIX (например, практически все продукты GNU). Тем не менее и для других операционных систем можно несколько повысить степень от- крытости за счет использования пакетов программ. Например, даже в MS-DOS можно использовать утилиты UNIX cо всеми возможностями вытекающими из под- держки регулярных выражений. Т.е. квалифицированный пользователь в опреде- ленной степени может ослабить недостаточную открытость операционной системы за счет использования специальных пакетов и утилит. И это на мой взгляд достаточно разумная политика, поэтому я считаю, что использование утилит GNU в MS-DOS и Windows может и должно быть расширено. Теперь перейдем к базам данных. Dbase Access FoxPro Paradox Oracle Sybase DB/2 1. Опубликованная полная спецификация, 4 1 4 4 4 4 4 доступная бесплатно No Y 2. Наличие независимого 3 0 3 0 5 5 5 стандарта (поддержка SQL) 3. Уровень защищенности 2 0 2 0 4 4 4 от одностороннего изменения спецификаций 4. Наличие 5 1 5 0 3 3 3 альтернативных реализаций 5. Возможность работы 3 0 3 2 5 4 5 на альтернативных платформах 6. Поддержка других 3 0 3 1 5 4 5 операционных систем 7. Поддержка "чужих" 3 2 3 3 4 4 4 форматов 8. Количество продуктов 4 1 4 0 3 3 3 способных работать на альтернативных реализациях 9. Возможность смены 3 1 3 1 4 4 4 поставщика продукта 10.Поддержка незави- 4 2 4 3 5 4 4 симыми разработчиками Как видно из приведенной таблицы c точки зрения приведенных выше критериев лидером является Oracle. В то же время достаточно высокую оценку имеет FoxPro, который при цене порядка $70 в версиях для DOS и Windows является к тому же наиболее доступным из приведенных выше коммерческих продуктов. Я хочу подчеркнуть, что мои оценки отнюнь не являются абсолютными. Т.е. наи- более ценна сама предложенная методика определения степени открытости. По- этому я хочу подчеркнуть, что изложенные выше критерии позволяют достаточно быстро и просто учесть этот достаточно субъективный критерий и устанавлива- ет, хотя и несовершенную, но все же шкалу "открытости", которая может ока- заться полезной при выборе программных продуктов и систем. Мне кажется, что со временем вес этого критерия возрастет. С уважением, Н.Безруков 7.03.95