Анабиоз инновационной удачи

27 декабрь, 2000 - 11:23Андрей Зубинский

В рамках публикации архивных материалов, предлагаем вашему вниманию статью из № 50 (269) «Компьютерного Обозрения» от 27 декабря 2000 г. Какими были «итоги года» 20 лет назад?

Подведение итогов — занятие малоприятное. С одной стороны, неизбежная субъективность, присущая любому авторскому материалу, угрожает «побитием каменьями». С другой — старания в подборе фактов для достижения более или менее объективной картины могут только увеличить массу и скорость «каменьев» при неизменной «интенсивности обстрела» и фиксированной вероятности попадания в автора.

Впрочем, шутки в сторону, давайте прислушаемся к классику: «Люди с психологией машинопоклонников часто питают иллюзию, будто в высокоавтоматизированном мире потребуется меньше изобретательности, чем в наше время; они надеются, что мир автоматов возьмет на себя наиболее трудную часть нашей умственной деятельности... Это явное заблуждение». Норберт Винер, конечно, не пророк. Но и не PR, т. е. лицо «незаинтересованное» (ровно настолько, насколько любой Homo sapiens может быть «незаинтересован» в будущем своего биологического вида). И раз уж нам волей случая выпала возможность в некоторой степени приобщиться и к «высокоавтоматизированному миру», и к категории «машинопоклонников», то иллюзий, естественно, не избежать. А чтобы эти иллюзии не превратились в галлюцинации, попробуем весело взглянуть на грустную судьбу «изобретательности» в мире компьютинга уходящего года.

ТЕРМИНОЛОГИЯ

Даже Сова, хотя она была очень-очень
умная и умела читать и даже подписывать
свое имя — Сава, и то не сумела бы
правильно написать такие трудные слова.
А. Милн

Это, пожалуй, единственная область, в которой инновациям неизменно сопутствует удача. Придумывание сложных названий для простых понятий — занятие увлекательное, нетрудное, потому благодарное и доступное многим. И вот уже префиксы «e-» и «eb-» используются налево и направо, формируя неудобопроизносимые мутации и без того малопонятных слов. «Порталы» множатся в неисчислимых количествах, а должный уровень «креативности контента» поддерживается «креативными дизайнерами». Два последних термина представляются уникальными образчиками инновационной удачи при малейшей попытке их осмысления — раз «креативность» происходит от слова create (созидать), то, вероятно, необходимо не только признать факт существования «деструктивного контента», но и отнести всех представителей «не-креативных специальностей» к обширному классу «деструктивных специалистов».

Но это все цветочки — ягодки начинаются на уровне абстракции B2B, для которого не существует определения вообще. Самая большая «ягодка» — факт возрождения терминологии несуществующего (или несущественного). Есть термин, дающий «этому» имя, есть масса доказательств, что «это» — единственно подходящая для нужд <...> (вписать название компании) <технология, идеология, методология, техника ведения бизнеса> (нужное подчеркнуть), но упаси вас Бог попытаться понять, что же «это» такое на самом деле. Впрочем, прелести использования подобных «ягод» хорошо известны колдунам и шаманам, так что «пусть звучит Великий Бубен!».

НОВЫЙ КЛАСС

Душераздирающее зрелище, —
сказал он наконец. — Вот как
это называется — душераздирающее зрелище.
А. Милн

Во всякой области человеческой деятельности, основывающейся на творчестве, всегда можно выделить две составляющие, или, если допустить геометрическую аналогию, — два вектора. Более того, практика убедительно доказывает, что эти векторы ортогональны и образуют некоторое подобие «системы координат» из массово-потребительской и творческой составляющих. Если для полноты перейти в трехмерное пространство, добавив третий орт — стоимость овеществленных продуктов деятельности, то получим достаточно хорошо соответствующую действительности модель. «Хорошее соответствие» подразумевает подтверждение очевидного факта: массово-потребительские продукты всегда дешевле «творческих». В компьютинге до текущего года это правило соблюдалось — домашние, ориентированные на игровое и бытовое применение, компьютеры также всегда были дешевле рабочих станций и уж, тем более, исследовательских суперкомпьютеров.

Но — «выпала инновации удача», и сегодня стоимость «продвинутого» ПК для игромана попадает в ценовой диапазон... небольшого такого суперкомпьютера. Судите сами — действительно хороший и современный «на сегодня» игровой домашний компьютер обходится почти в 4 тыс. долл., что подтверждается многочисленными обзорами, анализом рынка и, наконец, пожеланиями самих игроманов. В то же время собранный студентами университета Пардью (Purdue) в рамках проекта ACME (acme.ecn.purdue.edu) вычислительный кластер, обладающий эквивалентной четырехпроцессорному серверу Sun Enterprise 450 производительностью, оказывается дешевле бытового игрового ПК... более чем на треть. Несмотря на скромные технические показатели каждого вычислительного узла (процессор K6-2 500 MHz, 40 MB ОЗУ) и использованной сети (обычный FastEthernet), кластер acme — вовсе не игрушка. 19 узлов (в этой конфигурации acme стоит все еще немного дешевле «модного» игрового ПК) обеспечивают достаточно высокое быстродействие вычислителя в целом, но, что главное, доступность технологии дает уникальную возможность создавать самый дорогой продукт для рынка кластерных супервычислителей — программное обеспечение.

Анабиоз инновационной удачи

Открытие нового класса «сверхдешевых сверхвычислителей» по достоинству можно назвать инновацией года. Во-первых, такая технология доступна практически всем. Во-вторых, она позволяет действительно зарабатывать деньги и полноценно использовать научный потенциал «третьих и четвертых» стран. В-третьих, дешевые кластеры делают возможной миграцию «копеечных», но очень мощных процессоров (в первую очередь, MIPS-клонов) в сектор «больших вычислений», что дает шанс малым и средним производителям как аппаратных, так и программных средств.

Соответственно на фоне проектов, аналогичных ACME, фактический перевод развлекательно-бытового компьютинга в сектор «дорогих вычислений» (а какое иное определение подходит для приведенного выше сравнения?) также представляет собой инновацию. Но уже несколько иного рода...

ОПЕРАЦИОННЫЕ СИСТЕМЫ

Ну, — сказала Сова, — пятнистый
или травоядный Щасвирнус —
это просто... По крайней мере, — сказала она, — он
больше всего похож на... Но, конечно, —
продолжала она, — это
сильно зависит от...
А. Милн

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

Находящаяся в состоянии «клинического развития под капельницей POSIX-совместимости» BeOS так и оставила все достоинства замечательной файловой системы (ФС) BFS «вещью в вещи в себе». Даже несмотря на доступность детального описания процесса проектирования и внутренней организации BFS-подобных файловых систем (в книге, автором которой является разработчик из Be Доминик Джиампало) и относительную простоту реализации (подтверждение тому — разработка аналогичной ФС в рамках молодого проекта Atheos, www.atheos.cx), реактивно быстрая и высоконадежная журнальная 64-битовая ФС, похоже, никого за пределами малочисленных BeOS- и Atheos-сообществ не интересует.

Идеологически революционная, компактная и сверхмобильная ОС Plan9, «освобожденная» AT&T в этом году, также фактически осталась без внимания разработчиков как коммерческих, так и альтернативных ОС. А жаль, идея сверхлегкой компонентной модели с единой формой представления компонентов и их интерфейсов в виде иерархий файлов, реализации сетевых протоколов доступа к компонентам 9P и IL — это настоящие сокровища, почти идеально заменяющие гигантские и сверхсложные компонентные брокеры. А уж о простоте разработки прикладного ПО в рамках подобной модели сетецентрических вычислений (требующей для использования ресурсов того или иного компонента выполнения минимального набора примитивных операций с файлами вместо кошмара middleware) и говорить даже не хочется. Тем не менее Plan9 остается «системой для фанатиков минимализма», а единственное заметное событие в истории «освобожденной» ОС — создание клуба пользователей Plan9 в Китае.

Второй малозаметный, но не менее революционный проект, выполненный в традициях разумного минимализма, — Oberon, несмотря на легковесность, идеально продуманную объектно- и компонентно-ориентированную архитектуру, поддержку персистентных объектов, так и остается неприметным. Безукоризненно гениальное детище Никласа Вирта, покоряющее простотой, изяществом и мощностью концепций, лучшая ОС для «непрограммирующих программистов» — эта система заслуживает массу куда более лестных и восторженных эпитетов. Оснащенная как реактивный истребитель, образец совершенства в реализации сразу двух концепций пользовательского интерфейса, ОС Oberon... никак не «отозвалась» ни в коммерческих, ни в свободных разработках. Она, увы, была, есть и, вероятнее всего, еще долго будет уникальным явлением, объединяемым с Plan9 не только рядом идей, но и достаточно точной короткой характеристикой: «они слишком идеальны для неидеального мира».

Если даже давно вышедшие за пределы лабораторий яркие разработки фактически не оказывают никакого влияния на mainstream, то о находящихся в стадии проектирования и исследований системах говорить не приходится вообще. Персистентность, линейное адресное пространство, экзоядро, качество сервисов (QoS, Quality of Services) — о достоинствах всех этих технологий рядовым пользователям, похоже, лучше и не знать. Потому что такое знание ничего, кроме скорби, не порождает.

Да и вместо скорби лучше весело посмеяться над компьютерной «материализацией» Щасвирнуса, так «метко» охарактеризованного мудрой Совой. Развернувшаяся под лозунгом «все на десктоп» битва постепенно приводит к стиранию даже такой глубокой пропасти, как принципиальное отличие между инструментальной ОС и системой, ориентированной на поддержку приложений. Все труднее становится по случайно брошенному взгляду на экран компьютера сразу определить, что за ОС на нем установлена — то ли это Windows с LiteStep, то ли Unix с KDE/Gnome. Несомненно, что ничего особенно страшного здесь нет, за исключением одной маленькой детали — «одесктопленная» до уровня пользовательской ОС, Unix утрачивает свою инструментальную сущность и никакими преимуществами перед любой другой ОС из данного класса не обладает. Это очевидное «откровение» уже действует — с так и не оформившегося рынка Unix-совместимых свободно распространяемых систем ушли Corel и Id Software. В качестве «успокоительного» можно принять во внимание два отрадных факта — стабильное развитие технологических (но не революционных архитектурных) инноваций в не страдающих «одесктопливанием» BSD-клонах Unix (в первую очередь, NetBSD), поддерживаемое дотациями заинтересованных в этих ОС компаний, и недавно анонсированную IBM попытку «реванша за поражение OS/2» — инвестиции в размере 1 млрд. долл. в развитие Linux. К сожалению, инновационный характер той или иной разработки никак не коррелирует с объемом инвестиций...

ЯЗЫКИ ПРОГРАММИРОВАНИЯ И ТЕХНОЛОГИЧЕСКИЕ СРЕДСТВА

...потому что это такая штука,
которую вы спокойно можете
объяснять два раза, не опасаясь, что кто-нибудь поймет, о чем
вы говорите.
А. Милн

В этой области компьютинга в уходящем году было, можно сказать, слишком шумно. И, в полном соответствии с Шекспиром, много шума возникло из... Впрочем, уместнее воспользоваться сакраментальной фразой Уильяма Гейтса о Java: «Это всего лишь еще один язык программирования».

Увы, ни первый виновник шума — XML, ни второй — C# особенными инновациями не отличаются. XML — «всего лишь еще один» метаязык описания древовидных структур, а принципиальные его отличия от обширного класса мета-языков описания структур исключительно точно подмечены в цитате из Милна. C# — «еще одна» вариация объектно-ориентированного (ОО) языка программирования с С-подобным (а значит, привлекательным для большого круга программистов) синтаксисом. Но инновации все же были, просто почти никто их не заметил.

Во-первых, платформа .NET обрела по-настоящему мощный инструмент программирования. Речь идет о портированном для .NET замечательном языке высокого уровня (ЯВУ) Eiffel, получившем название Eiffel#. К слову, его создатель Бертран Мейер проводил презентацию Eiffel# перед многотысячной аудиторией разработчиков вместе с У. Гейтсом (что само по себе говорит о важности явления). И действительно, в отличие от «щасвирнуса» C#, Eiffel обладает рядом исключительно интересных особенностей и несвойственной большинству популярных языков программирования концептуальной целостностью.

Во-вторых, реинкарнация отличной ОС NextStep, более известная под названием Mac OS X, неожиданно привлекла внимание многих разработчиков к используемому в этой системе далеко не новому, но остающемуся инновационным, объектно-ориентированному расширению сверхпопулярного С под названием Objective-C.

Несмотря на существенные различия, Objective-C и Eiffel объединяет сходство во многих деталях. Оба языка созданы с целью поддержки парадигмы объектно-ориентированного проектирования, оба обеспечены «сборщиками мусора» (что устраняет первопричину целого ряда трудноустранимых ошибок, связанных с управлением памятью), наконец, — оба «немолоды», но не лишены инновационного характера. В Eiffel бесспорными инновациями являются как уникальный, простой и выразительный синтаксис, так и красиво реализованная поддержка на языковом уровне методологии проектирования «по контракту» (design on contract). Objective-C радует простотой реализации, абсолютной (а не частичной, как у С++) совместимостью с огромной базой ПО, написанного на С, динамической типизацией, гибридным синтаксисом, объединяющим расширенный минимальным числом ключевых слов С с принятыми в знаменитом Smalltalk формами записи посылки сообщения объекту. И наконец, ОО модели Eiffel и Objective-C прекрасно соответствуют требованиям разработчиков больших программных комплексов, что подтверждается успешной реализацией множества серьезных проектов. Эти языки уверенно развиваются, порождая новые, очень интересные разработки. Так, «освеженный» идеей «незапланированного повторного использования кода» Objective-C получил название TOM и выглядит очень привлекательно на фоне многочисленных языковых поделок.

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

ПРОИЗВОДИТЕЛЬНОСТЬ ТРУДА И МАШИН

Не могу, — сказал Пух, —
я лежу носом вниз, и на мне
что-то такое лежит, а в таком положении,
Пятачок, очень трудно
рассматривать потолки.
А. Милн

Главная инновация здесь — массовое протрезвление. «Серебряная пуля» объектно-ориентированной технологии не просто не выстрелила — ее заклинило в стволе. В мифы о стопроцентном повторном использовании кода, о гарантированной стандартами мобильности ПО, о немыслимой эффективности применения методологий проектирования сегодня может поверить только неисправимый оптимист, по незнанию считающий высказывание «в здоровом теле — здоровый дух» истиной.

Практикой же все подтверждается с точностью до наоборот. Начиная со знаменитого высказывания, которое становится истинным только в его первозданном, несокращенном варианте («следует молиться о том, чтобы в здоровом теле был и здоровый дух»). В отношении методологии проектирования ПО также следует «изрядно помолиться», чтобы кажущиеся самыми замечательными средства и инструменты (здоровое тело) обрели «здоровый дух». В качестве подтверждения достаточно привести короткий перечень очевидных наблюдений.

Все гиганты софтверной индустрии, похоже, панически боятся утраты x86-совместимости новыми процессорами, что свидетельствует о высокой степени зависимости программ от особенностей платформы и косвенно подтверждает подозрение в массовом использовании «нечестных программистских трюков» (в первую очередь, реализацию многих критичных к производительности ПО модулей на ассемблере). Соответственно сроки выхода новых версий ПО срываются с завидной точностью (главное — «попасть в год»), а расходы разработчиков растут по экспоненциальному закону (недавнее сообщение Microsoft о «режиме экономии» — лучшее тому подтверждение). Масла в огонь подливает вездесущая статистика, дотошно подсчитавшая, что усредненный программист занимается непосредственно программированием всего лишь... 47 дней в году. Если этому «усредненному» программисту не повезло и работает он не в Microsoft, Oracle, Sun или IBM, а там, где сосредоточена основная масса программистских сил сегодня, — в начинающем «доткоме», то учитывая фактор уверенности в завтрашнем дне (в 2000 г. каждый месяц разорялись около 30 «доткомов», более 32 тыс. программистов «вылетели на улицу»), ожидать от него большой отдачи трудно. К более объективным факторам снижения производительности труда можно отнести рост сложности программных систем, зачастую отражающий не столько сложность прикладной области, сколько скрытое стремление «реализовать потенциал технологии».

В мире «альтернативного ПО» процесс протрезвления также дошел до «инновационной точки». Фактический крах многих крупных «базарных» программных проектов помог сделать «открытие» — базарная технология проектирования, как оказалось, работает далеко не всегда хорошо и, более того, вообще не всегда работает.

В области производительности машин ушедший год преподнес фактически одну инновацию. Но какую! Оказалось, что предвещавшая чуть ли не революцию в технологиях вычислений архитектура VLIW хороша только там, где она хороша. Crusoe прекрасно вписался в сюжет «истории протрезвления» и заставил по-иному взглянуть на будущее процессоров с аналогичной организацией. Ну что же, «отрицательный результат — это тоже результат».

«Веселые картинки»

В 1999 г. администраторы сети Министерства обороны США (DoD) «отбили 22 тыс. компьютерных атак, за 7 месяцев 2000 г. — 14 тыс. В сети DoD более 10 тыс. хостов и 1,5 млн. персональных машин, 2000 компьютеров попадают в категорию «mission-critical». Приблизительно 3% атак вызывали сбои в работе сети и приводили к вынужденной перезагрузке хостов. Проведенный в 2000 г. анализ рынка труда США в области IT выявил изменения количества вакансий с требованиями к квалификации в различных областях:

Анабиоз инновационной удачи