Компьютерная экология – люди, интерфейсы, программы…

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

Эволюция?
Новые концепции создаются, порой, с помощью самых неожиданных и, в некотором смысле, нечестных методов. У физиков и математиков излюбленный "нечестный" прием — моделирование виртуального мира, основанного на умышленных нарушениях фундаментальных законов соответствующих наук. В человеко-машинной "экосистеме" уже фундаментальными стали законы, предопределенные первым действительно персональным компьютером, задуманным в лабораториях Xerox и воплощенным в кремнии, пластике и металле в Apple. Не следует считать данное утверждение абсурдным, ведь со времен Macintosh, оснащенного 128 KB оперативной памяти, практически все осталось по-прежнему. По крайней мере, в человеко-машинной области — все эти мега- и гига- (байты, герцы) почти ничего не изменили в "выражении лица" (точнее, — выражении монитора) современных ПК. А ведь именно перед монитором все больше и больше людей проводят значительную часть времени — рабочего и "свободного". Последние кавычки не случайны — новая, информационная "свобода", оказывается, похожа, скорее, на наркозависимость, — чего стоят, например, результаты опросов об отношении той или иной аудитории к Internet: основная масса респондентов уже и не мыслит себе жизни без электронной почты, броузера и компьютерных игр. При этом профессия респондентов практически не сказывается на их предпочтениях, и не следует наивно полагать, что фанатизм вызван или профессиональной потребностью в огромных объемах информации, или исключительной гениальностью, позволяющей эти объемы "перемалывать" в кратчайшее время. Но возможные социальные (с общественной точки зрения) и психологические последствия "i-стиля жизни" — дело ученых, нам же будут интересны возможные предпосылки, в первую очередь, оказывающие влияние на "прослойку между стулом и монитором".

Экран 1
Для создания нового совершенно не обязательно разрушать старое — Lifestreams прекрасно уживается в стандартной среде Unix/Motif

Итак, "лица" наших компьютеров, иначе называемые пользовательскими интерфейсами. Более тридцати лет назад Айван Сазерленд (Ivan Satherland), пионер компьютерной графики, создал первую человеко-машинную систему Sketchpad, основанную на двухмерном графическом интерфейсе. К слову, Sketchpad была не так уж и плоха — объектно-ориентированная (что по сей день считается нечастым достоинством), включавшая практически все элементы современной метафоры "рабочего стола", дополненные куда более мощными (и сегодня забытыми) уникальными средствами, в частности возможностью масштабирования и вращения любого векторного интерфейсного объекта. Затем пальма первенства надолго перешла в руки исследовательских лабораторий Xerox — идеи, заложенные в будущие системы Smalltalk и Macintosh, удивляют концептуальной целостностью и проработанностью, но… Автору удалось отыскать целый ряд документов, располагающихся на временной шкале как раз в начале процесса создания первых Macintosh (после провала слишком дорогой модели Lisa). В этих меморандумах и отчетах можно найти ответы практически на все вопросы, связанные с достоинствами и недостатками современных пользовательских интерфейсов. Во-первых, целевой аудиторией Macintosh была так называемая категория "native users" (увы, в многословном русском языке такая идиома может означать пользователей, не имеющих непосредственного отношения к вычислительной технике, "просто пользователей"). Во-вторых, ограниченные вычислительные ресурсы первых Маков (диктовавшиеся не столько невысокими технологическими возможностями, сколько стремлением привлечь "просто пользователей" сравнительно доступной ценой) существенно ограничивали полет фантазии системных программистов из Apple. Третья, важнейшая черта "эпохи Xerox-Apple", которую можно назвать роковой, — ориентация на дешевые устройства формирования и отображения информации, — растровые видеоподсистемы и дисплеи.

Результатом этих трех предпосылок стала реализация пользовательского интерфейса, распространившаяся на все платформы и воцарившаяся "на все времена". Де-факто стандартные MS Windows, MacOS и Motif/CDE для Unix — вот сегодняшние "лица" наших компьютеров. И никакой эволюции… Здесь все почти одинаково: аналоги листов бумаги — окна, сваленные на аналоге рабочего стола — экране, оторванные от контекста ниспадающие меню, "выскакивающие" окна подсказок и предупреждений. Небольшие отличия кроются в эргономичности расположения ключевых управляющих элементов интерфейсов и в декорациях. За исключением остальных мелочей, все это составляет фундаментальную основу сегодняшней "экологической" системы "человек—компьютер".

Плюсы и минусы
То, с чем нам приходится иметь дело сегодня в области пользовательских интерфейсов, характеризуется, кроме практически одинакового визуального восприятия, одной глубинной общей чертой — WYSIWYG (What You See Is What You Get — дословно: что видишь, то и получаешь). Несмотря на ряд неоспоримых достоинств, WYSIWYG-идеология имеет массу очень серьезных недостатков, о которых, по неясным причинам, говорить не принято. Но все же…

Во-первых, фраза "что видишь, то и получаешь" по смыслу абсолютно точно соответствует фразе "можешь получить только то, что видишь". Это одно и то же. Соответственно WYSIWYG позволяет оперировать только теми объектами, которые заранее предопределены системой. Пока наши компьютеры не были соединены в Сеть, проблемы оперирования еще не существующими (или некогда существовавшими) в системе объектами были не слишком важны. Но как быть сегодня, и что еще хуже — завтра? Дешевеющие доступ к Internet и ПК, массовость новых схем распространения информации — все это означает, что мы сами и наш компьютер уже должны уметь управлять "будущим" — объектами (ими могут быть и файлы MP3-формата, и pdf-документы, и все, что угодно), которые, возможно, появятся у нас, а возможно, — нет. WYSIWYG в таком случае не работает — в соответствии с этой идеологией мы можем видеть только то, что есть сейчас.

Во-вторых, WYSIWYG концентрирует (по ряду исторических причин) внимание в основном на внешнем представлении информации, фактически игнорируя ее структуру. Это уже не просто слабость идеологии, а умышленная уступка, на которую в свое время пошли разработчики, добиваясь большей "дружелюбности" массовых компьютеров. Результат такого смещения приоритетов — неувядающая популярность в научно-инженерных кругах "древних" систем форматирования текста, которые требовали честного и детального описания в первую очередь структуры документа (например, TeX). Ведь именно научно-технологическим сферам деятельности человека свойственны большие объемы структурированной информации, представляющей огромную ценность. Более массовые "деловые" круги (где 10-страничный отчет считается дурным тоном) затребовали простую модель, вполне укладывающуюся в рамки WYSIWYG-идеологии — здесь главное, чтобы было красиво. Такая двухполюсная схема развития, возможно, существовала бы еще очень долго, если бы не одно "но": современный высокотехнологичный мир требует по-настоящему тесной интеграции между управлением ("бизнесом") и производством/наукой.

В-третьих, WYSIWYG-иделогия статична уже хотя бы в том смысле, что она подразумевает операции со строго определенным множеством существующих в системе объектов. Даже для полноценной реализации свободы создания новых сущностей на основе имеющихся требуются немыслимые усилия — громадные объектно-ориентированные надстройки, прослойки, дополнительные языки описания интерфейсов, утилиты. По большому счету, такая свобода в WYSIWYG-системах вообще маловероятна хотя бы потому, что для создания новой сущности следует еще до момента ее появления иметь возможность хоть что-нибудь с ней делать. Более того, техника "экспорта-импорта" (единственно работающий суррогат) вообще не позволяет говорить о порождении новой сущности в случае, например, импортирования фрагмента электронной таблицы в текстовый документ — принципиальных отличий получившегося от просто текста с таблицей не наблюдается.

Естественно, что разработчикам ПО все эти недостатки (и не только они) WYSIWYG-систем хорошо известны. Свидетельством тому является лавина утилитарных программ, предназначенных для "забивания" очередной бреши идеологии. Пока эта ситуация всех устраивает, но… Вспомните, что когда проектировался Macintosh, об основной массе пользователей говорили: "дети, играющие с разноцветными камушками на берегу Океана". И тогда все "болячки" WYSIWYG были оправданы — надо было взрослеть… Теперь мы действительно повзрослели и требуем от своих компьютеров намного большего.

Предвестники

Экран 2
Обзорный режим информационных ресурсов в PAD++

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

Главный претендент на будущее первенство, казалось бы, совсем далек от человеко-машинных проблем. Метаязык XML — по большому счету, более компьютерно-ориентированная метафора. Но уже сегодня с XML, не замечая того, мы сталкиваемся повседневно — пользователи Windows при установке программного обеспечения по сети или из Internet, пользователи Unix — в бесплатном "десктопном" ПО Gnome. Завтра, вероятнее всего, XML станет "всепроникающей" технологией, и причина здесь очевидна — в отличие от закрытых бинарных форматов представления структурированной информации, XML является на сегодняшний день пусть не единственной, но наиболее популярной технологией, способной одновременно удовлетворить растущие запросы пользователей и рыночные амбиции производителей.

Экран 3
Применение линзы HTML-визуализации к фрагменту ресурса

Главные свойства XML — отделение синтаксиса языка (моделирующего структуру информации) от семантики (ассоциирующей структурные фрагменты с определенными способами представления или обработки), расширяемость, изначальная интернационализация на основе Unicode, сравнительная простота. Такой "букет" действительно гарантирует XML большое будущее. В области человеко-машинных интерфейсов определенные с помощью соответствующих DTD (Document Type Definitions, описания типов документов) специфические языки (XML-словари) могут полностью конфигурировать и внешний вид, и бихевиоризм интерфейсных программ (именно по такому пути развивается Gnome). Но это не самое главное — XML предвещает наконец-то более или менее человеческий способ кросс-платформенного обмена информацией — даже если имеющееся в вашем распоряжении ПО не способно понять уникальные для данного XML-словаря теги, содержание и структура документа остаются вам доступными (прочесть их не труднее, чем обычный HTML-файл).

Экран 4
Применение линзы структурной визуализации к фрагменту ресурса

Второй "фрагмент будущего" также непосредственного отношения к пользовательским интерфейсам не имеет. Надо сказать, что об идее, предвещавшей ее простую реализацию в уже существующих ОС и имеющей очевидную высокую ценность, с пользовательской точки зрения, забыли надолго. Еще в 1991 г. на симпозиуме ACM, посвященном операционным системам, группа ученых из MIT (Массачусетского Технологического Института) представила доклад о семантической файловой системе (СФС). Основное отличие СФС от существующих реализаций файловых систем — встроенные ассоциативные механизмы. Ассоциативность подразумевает способность, например, находить файл не по критерию его имени, а по содержанию. Казалось бы, что существующие утилиты поиска файлов полностью устраняют потребности в подобной "сложности", но… Даже в Unix, с ее развитым утилитарным аппаратом поиска (find, grep, egrep,…), СФС кажется совсем не лишней — понятие виртуальных каталогов, автоматически формируемых в результате поиска группы файлов с определенным контекстом, не только уникальная абстракция, но и мощный инструмент "вылавливания информационных жемчужин" из накапливающегося годами на диске "информационного мусора".

Экран 5
"Поток жизни" в документах — основа основ Lifestreams

Третий фрагмент вообще заслуживает отдельного обсуждения — как в части реализации, так и в идеологическом плане. Речь пойдет об удивительном инструментально-концептуальном пакете PAD++, бесплатно доступном для пользователей Unix (и с некоторыми ограничениями — Windows). PAD++ — это сравнительно небольшая система, включающая в себя ряд совершенно новых элементов пользовательского интерфейса и интегративные средства, позволяющие быстро разрабатывать полнофункциональные приложения или их прототипы. Основа концепции PAD++ — масштабируемые окна-фильтры (иногда именуемые линзами). Функции, которые реализует линза, принципиально отличаются от привычной функциональности WYSIWYG интерактивных пользовательских интерфейсов: если во всех WYSIWYG-системах окна приложений не взаимодействуют друг с другом (это не совсем так, но примитивные технологические задачи, например перерисовка ставшей видимой части окна, нас не интересуют), то линзы предназначены исключительно для взаимодействия между собой. В случае, когда одна линза перекрывает другую, между ними автоматически устанавливается соединение и происходит обмен данными (которые размещаются в перекрываемой области!), и "верхняя" видимая линза отображает результат встроенной обработки полученных данных в некотором (опять же определяемом программистом) формате.

Экран 6
Восстановление предыстории документа — посещение причастной к созданию документа страницы, Lifestreams

Такие "способности" PAD++ почти идеально согласуются с… особенностями XML, который полностью отделяет структуру документа от ее представления, а линза PAD++ идеально подходит для "воспроизведения" внешнего вида фрагмента документа в соответствии с каким-либо алгоритмом. Например, одну таблицу в XML-документе можно увидеть как секторную круговую диаграмму, гистограмму и Бог знает как еще, естественно, при условии наличия уже созданных реализаций соответствующих линз.

К многочисленным достоинствам PAD++ можно отнести и свойство расширяемости за счет тесной интеграции с мощным скриптовым языком Tcl и кросс-платформенной библиотекой графических примитивов Tk. Незаметные для начинающего пользователя, при соответствующем уровне профессионализма скрипт-расширения позволяют быстро и эффективно добиваться от системы полноценного воплощения идеи "порождения новых сущностей". Кроме того, масштабирующие способности PAD++ позволяют быстро оценивать достаточно емкие информационные ресурсы и, применяя соответствующие линзы, получать практически любое отображение даже "сырой" информации.

Экран 7
Ассоциативный поиск релевантных документов в Потоке

Ну и, наконец, мы подошли к последней фрагментной составляющей "новой волны". По сравнению с полузабытыми или сугубо академическими разработками она пребывает в активно развивающейся коммерческой стадии. Lifestreams — потоки жизни, в отличие от всех потуг создать виртуальную реальность представляют собой самую настоящую и очень полезную реализацию концепции виртуального мира, в котором мы, как пользователи, появляемся "на свет", живем, работаем, добиваемся успехов… В мире Lifestreams нет аватаров и прочих глупостей — Поток жизни представлен в нем временной последовательностью результатов работы. А точнее, потоком документов, хранящим порядок их создания, взаимодействия между ними и т. д. Казалось бы, ну что здесь нового — "складывай" в одну директорию файлы, над которыми работал, вот тебе и весь "Поток жизни". На самом деле Lifestreams использует именно такое внутреннее представление информации, но автоматизирует все последующие (далеко не простые) действия пользователя с помощью интегрированного аналога семантической файловой системы, мощных механизмов поиска. Более естественное представление информационного массива — стопка бумаг вместо месива цифр, букв и иконок в файловом менеджере, развитые механизмы автоматического построения гиперссылок, классификации документов, временной трассировки действий пользователя — вот далеко не полный перечень самых интересных особенностей Lifestreams. Последняя в этом списке возможностей — временная трассировка, заслуживает особого внимания. Сколько раз, "поднимая" из "винчестерных завалов" свою старую статью, автор тщился вспомнить сайты в Сети, послания по электронной почте и бережно хранящиеся файлы с исходными текстами, послужившие или предпосылкой к написанию материала, или справочными данными. Увы… Зато пользователи Lifestreams с такими проблемами никогда не столкнутся — каждое его обращение "за пределы" жизненного потока будет зафиксировано, "привязано" к соответствующим ресурсам и займет свое место в Пути. Но и это еще далеко не все — Путь позволяет заглядывать в будущее (с помощью планировщика) и даже управлять поведением системы по отношению к ожидаемым в будущем информационным ресурсам.

Разочарования

Экран 8
Планировщик Lifestreams — управление будущим

Все перечисленные выше концепции построения более совершенной "экосистемы" человек—компьютер уже давно вышли из "детского" академического возраста. PAD++ лицензирована гигантом Sony, а на ее основе создана новая Java-реализация Jazz, Lifestreams распространяется в Intranet-исполнении для платформы Sun. При этом, несмотря на патентную защиту Lifestreams, основные идеи системы доступны в нескольких малоизвестных свободно распространяемых реализациях ПО. Почтенный возраст "новых" технологий, совершенство открытого кода реализаций, оттачиваемого поддерживающим их сообществом высокопрофессиональных программистов, доступность — всех этих достоинств, как оказывается, мало…

Экран 9
Применение структурной линзы в наследнице PAD++ — Jazz, разработанной с использованием Java

Новые разработки, в том числе и ажиотажно популярные Gnome/KDE, увы, всего лишь копируют традиционную модель со всем ее несовершенством, добавляя к нему существенную долю организационной неразберихи. Чего только стоит "скачкообразное" развитие базовой для Gnome библиотеки GTK+, породившее несовместимость между версиями одного и того же продукта, или 100%-ная зависимость легально бесплатной системы KDE от сугубо коммерческой библиотеки Qt. Еще "веселее" становится от осознания этой самой "базовости" в проектах "новых" десктопов — оба они отталкивались от библиотек интерфейсных примитивов-виджетов, пусть достаточно удачных, но… Не слишком ли мало для формирования пригодной к обитанию "экосистемы" красивых кнопочек и прочих элементов декора?

Но ведь есть и другой путь, который подсказывается упомянутым в начале статьи "нечестным" приемом отказа от фундаментальных правил. Основываясь на том, что уже есть (а именно, XML-представления документов, конфигурационных и управляющих файлов, семантической файловой системы, аналогов Lifestreams и PAD++, семантических сетей типа WordNet и автономно выполняющихся демонов-агентов), можно представить себе совершенно новый "десктоп", точнее, среду обитания. Пусть здесь не будет файлов (с пользовательской точки зрения, конечно), а только документы, представляющие собой "бутерброд" из XML-описаний ("хлеб" — собственно документ, "масло" — применяемые к фрагментам структуры документа линзы, "икра" — конфигуратор программы-агента, осуществляющей доставку или прокат реализаций необходимых линз из Сети, "лимон" — конфигуратор агента-ассоциатора, определяющего подмножество линз, которые допустимо применять к фрагменту документа), множество реализаций линз, программы агенты-демоны, управляющие "будущим" и "настоящим". Добавим сюда действительно развитые средства поиска с запросами на почти естественном языке (а не Yes/No) с автоматическим формированием синонимов в соответствии с семантикой запросных слов, что увеличивает точность и информативность поиска. Например, при задании запроса "Report about tables" система проверяет в семантической сети значения слов из запросной строки, и для слов с разными значениями (в данном случае — tables) спросит пользователя, что именно он имел в виду; впоследствии же полученная из ответа пользователя информация может применяться для определения его предпочтений и интересов, автоматически сокращая интенсивность дополнительных актов взаимодействия.

К сожалению, несмотря на реальность овеществления подобного "анти-десктопа" мы еще вынуждены выживать в "дружественно" настроенной, но далекой от удобства "экосистеме".

Ресурсы
PAD++ можно бесплатно получить на сайте www.cs.umd.edu/projects/hcil/pad++/ в версиях для разных ОС, в том числе и MS Windows, и в исходных текстах. Любителям Java доступна более новая реализация идеи PAD под названием Jazz (www.cs.umd.edu/hcil/jazz). С технологией и идеологией Lifestreams знакомят сайты www.cs.yale.edu/~freeman/lifestreams.html и www.lifestreams.com. Семантическая сеть WordNet располагается по адресу www.cogsci.princeton.edu/~wn/ и также доступна всем желающим как для бесплатной локальной установки, так и в Internet-варианте.