Центр Практичных Программ

Метафоры пользовательского интерфейса

Метафоры пользовательского интерфейса

Андрей Зубинский

     Осторожнее с кибернетикой. Вскоре поймут, что это не так просто.
М. Хайдеггер

     Насколько все же легче писать о вещах простых и приземленных -- гигабайтах и мегафлопах, пропускных способностях шин и блестящих перспективах развития информационных технологий. Но стоит только прозвучать главным вопросам бытия "Зачем и Почему?", как сразу же сталкиваешься с почти непреодолимыми проблемами. И написано, вроде, много и прочитано немало, -- ан нет, неожиданно возникают прямо под ногами "белые пятна", по которым все мы "ходим" практически ежеминутно, и которые стараемся не замечать с каким-то непонятным, чуть ли не мистическим упорством.

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

     
Немного о компьютерах, программах и алгоритмах...

     Труднее всего увидеть то, что прямо перед тобой.
     Гете

     Необходимость в обсуждении этих понятий неочевидна -- действительно, ну кто не знает, что такое компьютер? Очень даже хорошо все знают -- есть там процессор, память всякая и прочие электронно-механические атрибуты... Но вот ЧТО все это и ЗАЧЕМ -- тут уж, извините, ответов столько, сколько отвечающих. Точнее, нет ответов -- а иначе, откуда бы брались телевизионные ток-шоу на тему "Компьютер друг или враг?" (интересно, а почему не утюг или холодильник?). И уж если зашла речь о человеко-машинном взаимодействии, то надо хотя бы немного разобраться, с чем же мы взаимодействуем.

     Во-первых, постараюсь сразу удивить неожиданным утверждением -- с чем угодно, только не с компьютером как кучкой кремниевых пластинок, медных проводников и электромоторчиков... Да ничего это дорогостоящее "железо" не умеет, ну разве что обнулить некоторые регистры по сигналу "Сброс" при включении питания. Более того, для общности и точности рассуждений целесообразно считать, что... компьютера вообще не существует (чтобы не свести рассуждения к полемике между приверженцами различных аппаратных платформ). Может быть, мы взаимодействуем с программой -- той самой, которая находится в данный момент в оперативной памяти и которой представлены ресурсы процессора? Очень может быть... Но ведь программа -- это некоторая проекция множества алгоритмов и структур данных в пространстве команд компьютера. Значит, алгоритмы и структуры данных все-таки первичны и являются тем самым множеством абстракций, единственно доступным в мире компьютерной "виртуальной реальности" (усомнившимся настоятельно рекомендую прочесть "библию" компьютинга -- книгу Никласа Вирта "Алгоритмы + структуры данных = программы" любого издания).

     Теперь настала пора разобраться с алгоритмами. Определения этого понятия из толковых словарей приводить не буду -- уж очень они бестолковые, да и вы сами всегда можете с ними ознакомиться. В интересующем нас контексте алгоритмы являются знаниями о процессах преобразования абстракций -- структур данных, форма представления этих знаний может быть произвольной, но обязательно соответствующей требованиям простоты их изучения и применения. Наиболее точно, на мой взгляд, о роли алгоритмов в компьютинге можно узнать не от теоретиков-философов, а прислушавшись к мнению настоящих профессионалов, например Кернигана и Плоджера (авторов языка С и операционной системы Unix). В книге "Software Tools" (дословно -- "Программные инструменты") ими впервые была сформулирована очень удачная концепция алгоритмов (и программ как их "овеществления") -- инструментальная, согласно которой каждый алгоритм представляет собой инструмент для выполнения некоторых преобразований основных объектов "компьютерной реальности" -- структур данных. Концепция эта удачна во всех отношениях, так как дает уникальные возможности осознания требований к интерфейсам пользователя и одновременно -- ответственности разработчиков за возможные ошибки (инструментом ведь и навредить можно, если не уметь им пользоваться...).
     

     
Подводные камни многомерности

     Если начинают с неправильного, то мало
     надежды на правильное завершение.
     
     Конфуций

     Итак, все получается достаточно просто и понятно -- то, что скрывается за пиктограммой "Мой компьютер", является всего лишь множеством абстрактных объектов -- структур данных и большим набором инструментов, с помощью которых так просто можно этими объектами оперировать. И, казалось бы, никаких проблем -- надо просто придумать единый метод представления этого "виртуального мира" на плоскости экрана, и все. Но вот тут-то самое неприятное и начинается -- наш "виртуальный мир", оказывается, имеет чуть ли не бесконечное число измерений (может быть, конечное, но слишком большое, приблизительно равное количеству возможных мыслей или идей у всех пользователей--обитателей этого "мира" во все времена). Поясню: предположим, пользователь-композитор создал структуру данных, представляющую нотный текст нового произведения. Множество необходимых этому пользователю "инструментов" для манипуляций с абстрактной "симфонией" можно определить так: редактор нотных текстов, синтезатор звуков, программы допечатной подготовки и вывода на печать. Системному администратору (в случае, когда наш композитор работает дома на своем персональном компьютере, он сам им и является), с другой стороны, абсолютно не нужны эти инструменты -- зато он должен иметь соответствующий инструментальный набор, позволяющий локализовать, изменить местоположение в файловой системе соответствующего файла, получить его размер, установить права доступа к нему других пользователей (если они есть), отслеживать дату его создания и еще Бог знает что. А например, оформитель Internet-сайта, желающий использовать изображение фрагмента указанного нотного текста в качестве элемента графического оформления страницы, нуждается в совершенно другом инструментарии... И так почти до бесконечности. Как эффективно отобразить все множество доступных, ассоциированных с данным объектом-абстракцией и характером деятельности пользователя инструментов, задача не просто нерешенная, но и не решавшаяся в общей постановке до сих пор... Возможно, поэтому пользователи Windows продолжают с "непробиваемым" упорством любить Norton-подобные утилиты текстового режима, а Unix -- не убирают с экранов CDE/KDE окна алфавитно-цифровых терминалов.

     Метафор много, а пользователь один

     Главной целью теоретизирования является
     такая организация информации, при которой
     оказывается возможным сделать неочевидные выводы.
Д. Хейсе

     Так как метафора -- понятие сложное (а в философском аспекте -- вообще предмет отдельного обсуждения), под метафорами пользовательских интерфейсов в дальнейшем будут подразумеваться как различные точки зрения на вопросы взаимодействия человека и машины (субъективный аспект метафоры ИП), так и "применения понятий, касающихся одного предмета, в отношении к совершенно другим предметам" (интересующимся семантическим аспектом рекомендую ознакомиться с работами Дж. М. Лоулера, www-personal.umich.edu/~jlawler/).

     Итак, метафор ИП много. Хорошо это или плохо -- совершенно непонятно, так как большинство метафор ИП, как точек зрения, были сформулированы после появления соответствующих их "овеществлений". Нечасто такое случается, но в случае со сверхдинамичным развитием компьютинга теоретики явно стали опаздывать. Почему знания таких "отвлеченных" вещей важны и нужны нам -- простым пользователям, специализирующимся в совершенно отдаленных от теоретических изысканий областях? Да хотя бы потому, что "...в мире нет ничего незначительного. Все зависит от точки зрения" (Гете). Кроме того, компьютинг уже, похоже, начинает преодолевать "детскую болезнь роста", и кажущиеся сегодня абсолютно ненужными теории вполне могут завтра "овеществиться" и полностью изменить окружающий нас мир. И еще один очень важный момент -- одной из форм метафоры является миф, и мы уже сегодня становимся свидетелями создания совершенно новых мифов, в которые все-таки лучше не верить, какими бы привлекательными они не казались (киберкультура и киберпанккультура, миф о якобы громадном культурном значении Internet и, наконец, пресловутое "повседневное обожествление компьютеров" -- Deus Ex Machina). Мифы киберкультуры не просто вредны для их сторонников (восхищение ими -- первый признак абсолютной безграмотности и непрофессиональности), но и могут представлять серьезную угрозу всей модели человеческой цивилизации (вспомните, на основании скольких красивых мифов о "людях как богах" были пролиты моря крови).
     

     
Метафора ╪ 1: слуга

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

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

     Неизвестно, как пойдут дела у Xerox с ubiquitous-системами (хотя в самом PARC предполагают лавинообразное распространение этой технологии, начиная с 2005 г.), метафора "слуги", основывающаяся на антропоморфном мифе ("очеловечивание" компьютеров), очень спорна и далеко не всегда удобна: пока речь идет об управлении простыми бытовыми процессами, смотрится все это неплохо, а вот как быть с научными исследованиями и сложной профессиональной деятельностью? Ответов на эти вопросы, увы, нет.


     
Метафора ╪ 2: ускоритель

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

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

     
Метафора ╪ 3: рабочий стол

     Самая распространенная и весьма относительно напоминающая настоящий рабочий стол -- папки, бумаги, инструменты -- все в куче и тщательно перемешано. Существенные недостатки -- проблема "четырех сам" (выбирай сам, вспоминай сам, знай сам, догадывайся сам) и ограниченность представления объектов-абстракций понятием иерархии документов. Удобство манипуляций с "виртуальными документами" (окна, экраны и пр.) в достаточной степени компенсируется отсутствием хорошо продуманных механизмов ассоциирования объекта-абстракции (файла, документа) со множеством доступных инструментов. Например, в MS Windows (русскоязычной версии) в интерфейсе присутствуют такие объекты-абстракции, как файлы и папки (даже здесь заключена путаница, так как file в первоначальном значении означает именно "подшивку бумаг", т. е. как бы папку), но инструменты их обработки именуются программами, а уж механизм соответствия инструментов объектам, основанный на трехбуквенных расширениях имен файлов, не выдерживает никакой критики. В Unix, точнее, в графических оболочках Unix, "болячки" те же, усугубленные, в основном, большим различием в реализациях управляющих элементов интерфейса пользователя отдельных инструментальных средств.

     О том, что метафора "рабочего стола" соответствует самому интуитивному и удобному интерфейсу, можно узнать из любого рекламного проспекта практически любого программного продукта системного назначения (операционной системы, например). Однако это также один из типичных мифов. В подтверждение сему приведу типичный и хорошо известный пример: в пользовательском интерфейсе компьютеров Macintosh (к слову, одном из самых удачных, соответствующих метафоре "рабочего стола"), для подачи команды на "выталкивание" дискеты из накопителя ("вручную" это сделать было невозможно), необходимо было "перетянуть" пиктограмму дискеты в ...пиктограмму "мусорной корзины" (trash). Такая "интуитивность" позволила даже нескольким предприимчивым компаниям заработать неплохие деньги на наклейках для Macintosh, оповещающих пользователей о том, что подобное действие не приводит к утрате данных... Вот вам и интуитивность, и удобство.
     

     
Метафора ╪ 4: виртуальная реальность

     Нечто неудобоваримое даже по определению, хотя основывающееся на довольно симпатичном мифе о "максимально естественной среде обитания". Самые серьезные недостатки связаны с необходимостью создания трехмерных натуралистических моделей для абсолютно абстрактных "вещей" и инструментов. Уже существует ряд реализаций как для Windows, так и для Unix (с одной из них автору удалось ознакомиться достаточно близко) -- страшно неудобно, страшно неинтуитивно, ну и, наконец, -- вообще страшно (путешествия по виртуальным коридорам файловой системы и посещения виртуальных менеджеров различных устройств слишком напоминают DOOM). Несмотря на то что производительность практически любого современного ПК позволяет в полной мере реализовать если не сугубо трехмерные, то хотя бы псевдотрехмерные "прелести" подобных интерфейсов, ожидать их расцвета не следует, разве что они могут занять достойное место в узкоспециализированных системах.
     

     
IMHO: теоретико-множественная метафора

     ...плоды науки -- это простые плоды,
     точнее, плоды упрощения.
Дж. Уейнберг

     Самым неприятным моментом во всех приведенных выше метафорах ИП является очень слабое отражение многомерности виртуального "мира" объектов-данных и инструментов. Проблема ассоциирования вообще не решена ни в одном существующем интерфейсе (конечно, можно назначить для файлов с соответствующими расширениями программы, которые будут вызываться при выполнении некоторого активирующего действия, но это чисто механическая и локальная ассоциация -- а если необходимый мне инструмент существует где-то вне моего компьютера, или даже "завалялся" на диске, но отыскать его в куче файлов совсем непросто). "Разнобой" смыслового значения элементов интерфейса просто угнетает и иногда даже может привести к совершенно неожиданным последствиям (сразу вспоминается замечательное по интуитивности применение кнопки с надписью Cancel при инсталляции Windows NT, нажатие на которую... продолжает инсталляцию). Метафора языка (которая из-за ее малой распространенности, а также в связи с ограниченным объемом статьи отдельно не рассматривалась) оптимальна по возможностям, но достаточно сложна в освоении и требует недюжинных знаний, что существенно ограничивает области применения созданных в соответствии с ней систем.

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

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

     Теперь о сути метафоры с таким страшным математическим названием. На самом деле ничего сложного в этих математических терминах нет, и любой человек, даже абсолютно незнакомый с соответствующими разделами абстрактной алгебры в повседневной жизни, чуть ли не ежеминутно использует ее методы (sic). Два множества (объектов-данных и инструментов) отлично знакомы и домохозяйкам, и автослесарям. Графическим представлением причинно-следственных связей или свойств, умно именуемых "графом", пользуются также практически все. На этом, собственно говоря, сложности заканчиваются (естественно, для пользователя). Как это может выглядеть? Да как угодно, например так: где в вертикальном узком поле А представлены классы объектов-данных или объекты-данные, в горизонтальном поле В -- ассоциированные с выбранным (активированным) пользователем классом/объектом доступные инструменты, и в самом большом поле С располагается область, в которой пользователь может "собрать" в виде графа произвольный и абсолютно новый процесс обработки (как -- понятно из рисунка).

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

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

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

     
Подводя итоги

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

Вернуться к списку статей


Статья опубликована в журнале Компьютерное обозрение #4'99 (173)