Десктопом по фейсу
АрхивПользовательский интерфейс - это одно из самых тонких мест в современной компьютерной индустрии.
«Прогресс технологии одаряет нас все более совершенными средствами для движения вспять».
Олдос Хаксли
По мере развития компьютерных технологий за пультом компьютера оказывалось все больше непрофессионалов. Если сначала клавиатура была прерогативой ученых и инженеров, то потом дошло до школьников и домохозяек. Вопросы общения с компьютером вышли на первый план, и следует отдавать себе отчет, что за счет несовершенства ПО общество расходует впустую на порядки больше ресурсов, чем софтверная индустрия теряет от пиратов вместе взятых. Причем я не имею в виду ни дыры в защите, ни пресловутые «синие экраны». Речь идет о том, с чем мы все имеем дело ежедневно, — о пользовательском интерфейсе. Это одно из самых тонких мест в современной компьютерной индустрии — даже не потому, что стандарты пользовательского интерфейса во многом складывались стихийно и часто продвигались людьми, которые ничего в них не понимали, — скорее, дело в практических реализациях. Дуглас Энгельбарт, Алан Кей и Чарльз Саймони (см. врезку) знали, что делали, но дальнейшая судьба их разработок отчасти напоминает любительские увлечения вроде попыток портирования Linux на X-box.
Интерфейсы…
Согласно общепринятой классификации, существующие на практике интерфейсы можно подразделить на:
- командный интерфейс;
- оконный, или WIMP-интерфейс (Windows, Icons, Menus, Point-and-click — окна, пиктограммы, меню, «укажи и щелкни»);
- SILK-интерфейс (Speech, Image, Language, Knowlege — речь, образ, язык, знание).
Упоминается также еще и некий «общественный» интерфейс, но это направление слишком тесно переплелось с искусственным интеллектом, поэтому — по крайней мере пока — не стоит рассматривать его с практической точки зрения.
В общем и целом каждая из приведенных парадигм отвечала определенному этапу развития компьютерной техники и соответствующей модели поведения человека за компьютерным пультом. Командный (командно-строчный) интерфейс получил наибольшее развитие во времена расцвета больших многопользовательских систем с алфавитно-цифровыми дисплеями (других не предлагали) и в почти неизмененном виде перекочевал на первые персоналки. У него и сейчас немало приверженцев (любителей так называемых консольных приложений), особенно в среде профессионалов. Дело в том, что клавиатура до сих пор является непревзойденным по скорости средством ввода информации, и никакие манипуляторы с ней не сравнятся. Конкуренцию клавиатуре в перспективе может составить только голосовой способ ввода (о нем также см. врезку).
Интерфейс WIMP возник тогда, когда за компьютеры уселись люди, в принципе не обладавшие навыками алгоритмического мышления. Общение в парадигме командного интерфейса (подача текстовых команд, которые машина выполняет) есть, в сущности, то же программирование, и этому надо, как ни крути, специально учиться. Чтобы прояснить ситуацию, рассмотрим логику разработчиков Xerox Star, которая привела их к введению метафоры «рабочего стола» (Desktop). Эта метафора основывается на том, что пользователь якобы не имеет представления о существовании, скажем, программы под названием «текстовый редактор», а просто «открывает документ». Альтернативой является концепция «инструментов» (Tools) или «приложений» (Applications), в которой пользователь запускает нужный инструмент (приложение) и с его помощью открывает документ, причем тип его идентифицируется обычно по расширению имени файла. Разработчики Star сознательно шли на потерю универсальности, присущую «инструментальной» модели, в то же время предупреждая об ограниченности сферы применимости метафоры «рабочего стола» исключительно офисными системами. Потом об этом все просто забыли.
В среднем WIMP-интерфейс существенно замедляет работу с машиной — по сравнению с командной строкой. Необходимость тщательно прицелиться мышкой куда надо (а ошибка, сами знаете, иногда может дорого обойтись) занимает столько внимания, что иногда забываешь, зачем целился. Вот цитата из подробной и хорошо аргументированной статьи Дмитрия Карпова «Этот мерзкий, неудобный, противоестественный оконный интерфейс»1, построенной в FAQ-форме. Отвечая на вопрос «А как же такие удобные вещи, как point&click (укажи-и-щелкни) и drag&drop (перетащи-и-брось)», Дмитрий дает очень точную характеристику положения дел в этой области: «Большинство пользователей считают, что это удобно и естественно — просто потому, что не знают о более удобных способах общения с машиной и не задумываются, почему им приходится делать множество движений для выполнения элементарных операций. Вместо того, чтобы нажать комбинацию клавиш или набрать команду, мне приходится продираться сквозь бурелом многоуровневых менюшек, каждый раз целясь мышкой в узкую полоску нужного мне пункта. Я должен помнить не только название нужного мне пункта (с такой же легкостью я бы запомнил команду), но и название пунктов по пути к нему. Неужели кто-то называет это облегчением работы?»
Но далеко не все так однозначно. Дело в том, что при всех его недостатках освоение WIMP-интерфейса для начинающих на много порядков проще, чем командно-строчного — теоретически можно даже вообще не представлять, что там у компьютера внутри. И это послужило причиной широкого распространения «окон» в различных вариантах — со всеми вытекающими. Тут хочется прояснить один момент, о котором все помнят, когда речь идет, к примеру, о гаечных ключах, но почему-то забывают в применении к программам. Универсальные гаечные ключи существуют, но только на крайний случай, если под рукой нет набора обычных, в котором каждый — своего размера. Точно так же компьютерные программы должны быть — в идеале — все-таки заточены под конкретные нужды конкретного пользователя.
Мышь, GUI, WYSIWYG и другие… В сороковых-пятидесятых годах ХХ века компьютеры использовались исключительно по прямому назначению — для проведения громоздких расчетов. Так как работали на них профессионалы, то ни о каком специальном «интерфейсе» речи тогда не шло — расходовать дефицитные вычислительные ресурсы на удобства казалось непозволительной роскошью. Максимум, на что решились создатели вычислительной техники того времени, — это на введение языков программирования высокого уровня, но даже эта мера заслужила весьма нелестный отзыв профи в лице фон Неймана, заявившего после знакомства с Фортраном: «Да это же отходы научной работы для канцеляристов!» Однако уже в середине 50-х в Массачусетском технологическом институте в развитие идей человеко-машинного взаимодействия, обсуждавшихся еще Норбертом Винером на своих семинарах в конце 40-х годов, появилась концепция диалоговых систем (interactive computing). В 1958 году Франк Розенблат (Frank Rosenblatt) из Корнелльской лаборатории аэронавтики, автор концепции нейронных сетей, построил электронно-вычислительную машину Perceptron Mark I, в которой в качестве устройства вывода была использована электронно-лучевая трубка — прообраз современного дисплея. Вопрос, однако, оставался в том, что именно и каким образом на этой трубке демонстрировать. 1 (назад) Любопытно, что одним из его основателей, а с сентября 1970 года — и руководителей, стал Боб Тейлор (Robert W. Taylor), который пришел в Xerox из DARPA, где в 1966–69 гг. возглавлял проект ARPANET, предшественника Интернета. |
Примером дальнейшим шагов на пути абстрагирования от уровня непосредственной подачи команд могут служить некоторые современные разработки — в том же Xerox PARC разработана концепция «гиперболического дерева». Предоставим слово одному из разработчиков практических систем на этой основе, техническому директору компании InXight Software Раману Рао: «Оператор, использующий традиционный интерфейс point-and-click, должен четко представлять, какие действия необходимо выполнить на следующем этапе, и уметь быстро выбрать нужный элемент из прокручиваемого списка. Интерфейс гиперболического дерева позволяет оперативно найти всю необходимую информацию непосредственно на экране монитора. При этом наиболее важные данные размещаются прямо перед глазами пользователя, в центре экрана, а дополнительные сведения — по краям». Есть и другие концепции, иногда очень остроумные, но в отношении их практической пригодности полезно вспомнить историю WWW. Ее реализации и сегодня вызывают смятение и даже возмущение среди многих исследователей и разработчиков гипертекстовых систем. Гениальность отца-основателя Тима Бернерса-Ли состоит в том, что он успешно решил задачу создания системы, способной работать «здесь и сейчас», притом на любых платформах, включая самые примитивные, — в то время как его коллеги, лучше подкованные теоретически, скорее всего, предпочли бы пойти по пути Xerox Star, когда «железо» и софт идеально подогнаны друг к другу — и с таким же рыночным «успехом», без сомнения. С другой стороны, не надо забывать, что WWW изначально была предназначена исключительно для коммуникаций ученых-профессионалов, и ни о какой, к примеру, онлайновой торговле и речи тогда не шло: ситуация, зеркально напоминающая судьбу метафоры «рабочего стола». Так что дабы не остаться в истории лишь образцом свободного полета мысли, как случилось, к примеру, с проектом Xanadu Теда Нельсона2, авторам революционных концепций обязательно следует научиться приземлять свои мечтания в соответствии с требованиями и возможностями текущего момента.
1 (назад)ce2.ce.cctpu.edu.ru/edu/df/se/interf/int_03.htm.
2 (назад) Для тех, кто не знает, что это такое, — см., например, И. Гордиенко, «Долгий путь в Ксанаду» («КТ» #316 от 21.09.99, с.7) или www.computer-museum.ru/histsoft/nelson.htm.
SILK–интерфейс Кратко остановимся на SILK-интерфейсе, который на текущий момент существует лишь как «голосовой» (если не считать биометрических интерфейсов, применяющихся в настоящее время не для собственно управления компьютером, а лишь для целей идентификации пользователя). Это очень перспективное направление, хотя бы по указанной выше причине: вводить информацию с голоса — самый быстрый и удобный способ. Но его практические реализации пока не стали доминирующими — все-таки качество распознавания устной речи пока далеко от идеала. На мой взгляд, всерьез о голосовом интерфейсе можно будет говорить тогда, когда появятся первые истинно цифровые диктофоны — то есть не те, что записывают речь в «цифре», а те, что по ходу дела сразу переводят ее в печатный текст (нечто вроде Fine Reader’а, но для речи). Вот тогда и начнется настоящая революция — хотя в некоторых отношениях (скажем, для управления мобильниками в режиме hands-free) голосовой интерфейс и сейчас занимает уже вполне достойную нишу. |
…и их реализации
Программирование — необычайно простое занятие3, программу написать — даже не дом построить (хотя, разумеется, как и в любой другой области, чтобы достичь в этом деле настоящего мастерства, нужно работать долго и упорно). Если вы сами не программист, но достаточно опытный пользователь, проведите над собой такой эксперимент: установите Delphi, возьмите любое пособие по нему и попробуйте воспроизвести какой-нибудь учебный пример. Сомневаюсь, чтобы вам потребовалось больше пары выходных, чтобы создать, скажем, полноценный текстовый редактор в стиле Notepad и даже лучше. Можете послать его на download.ru — вы теперь программист! Анекдот? Вовсе нет. Реально компьютерные технологии оказались востребованы настолько, что места довольно долго хватало почти каждому. И победил не тот, кто делал лучше, а тот, кто делал быстрее и умело себя рекламировал.
Мы сейчас не будем останавливаться на откровенной халтуре, которой предостаточно даже в продуктах очень уважаемых производителей, причем часто авторы такой халтуры искусно делают вид, что «так и было задумано»4. Одна из самых ужасных и в то же время распространенных вещей — когда целью работы становится демонстрация своих возможностей («во, смотрите, как я здорово умею!»). За аналогичными явлениями далеко ходить не надо — нынче ни один выпуск теленовостей не обходится без «прямого включения». Все эти плохо организованные и несущие минимум информации сеансы, вероятно, весьма дороги, но за редчайшим исключением преследуют единственную цель: показать, что «мы не хуже других»5. В точности то же самое демонстрирует нам повальное увлечение технологиями Flash в построении веб-сайтов. Скажу по секрету, что я вообще не устанавливал плагин Flash после очередной переустановки системы, и ничуть в этом не раскаиваюсь. Вот что пишет по поводу технологии Flash специалист по usability6датский ученый Якоб Нильсен (Jakob Nielsen): «…наиболее мощная и полезная особенность Сети в том, что она позволяет пользователю управлять самим процессом работы. Пользователь идет когда и куда он этого хочет. Flash-презентации, напротив, превращают работу в Сети в некое подобие просмотра телевизора. Такие сайты заставляют сидеть перед экраном и просматривать последовательность кадров. Пользователь бездействует, начинает скучать, и его уже не особо впечатляют эти кадры, как бы классно они ни выглядели».
Пример из другой области приводит известный российский программист М. Донской7: «…такой интерфейсный элемент, как линейка прокрутки, находится в противоречии с одним из основных принципов психологии восприятия: у человека может быть только одна точка активного внимания. При использовании же линейки прокрутки приходится смотреть в две совершенно различные точки — на прокручиваемое изображение (не пора ли остановиться?) и на линейку. Всем знакомые неприятности с непопаданием мышью в нужную точку при прокрутке или с соскакиванием курсора мыши с линейки — очевидное следствие вышеуказанного противоречия».
Я специально привожу в основном чужие примеры — если я начну излагать то, что накопилось у меня лично, то, боюсь, этого не пропустит литературный редактор. Но не все ж ворчать и ругаться, можно привести и положительные примеры использования вполне стандартных элементов Windows. Так, один из оппонентов Дмитрия Карпова в ответ на приведенную выше критику резонно замечает: «Если программа плохо спроектирована, это ее беда, а не беда оконного интерфейса». И это доказывает только одно: не в самой парадигме того или иного интерфейса зарыта собака. Настоящее тонкое место — в головах тех, кто ее бездумно использует. Подобно тому, как из самых лучших материалов можно построить сарай, а из стандартных кирпичей — дворец, так и с помощью одних и тех же API можно сделать кошмар вроде того же Notepad или WinZip (или еще хуже — WinRar), а можно — изыск типа лаконичного AtomTime, любовно «выглаженного» Paint Shop Pro, или компактного и предельно функционального The Bat! (разумеется, речь во всех этих примерах идет именно об интерфейсе, а не о функциональности программ).
Дело о «неравенстве» PPI и DPI Казалось бы, современное «железо» может всё. Да, это действительно так, но лишь в сравнении с эпохой Xerox Star. На самом деле положение еще очень далеко от идеала, и одним из показательных примеров может служить разрешение современных мониторов, которое не намного превышает 72 пиксела на дюйм, что были у Star в 1972-м, — самые лучшие образцы демонстрируют нам всего порядка 100 ppi. Этот факт, в совокупности с тем, что пользователь волен в выборе любого — вплоть до максимально возможного разрешения, привел к тому, что принцип WYSIWYG самым злостным образом нарушается. Что означают пресловутые 100% масштаба отображения страницы в Word’e? При разрешении 800х600 — это одно, а при разрешении 1280х1024 (на том же мониторе) это уже на 60% меньше, причем соотношение сторон также искажается на весьма заметную величину: около 17%. Недостаточное же разрешение проявляется в очень заметных на глаз ступеньках в наклонных линиях, что приводит к необходимости даже придумывать специальные меры («антиалиазинг») для более или менее приличного отображения шрифтов, а также в том, что картинки высокого разрешения (имеющие стандартные для качественной печати на обычном домашнем принтере не такие уж и умопомрачительные 300 dpi, скажем) отображаются на экране, мягко говоря, неадекватно. Причем выхода из этого пока даже не предвидится: есть пионерские разработки экономичных, малогабаритных, сверхплоских, суперъярких и прочих подобных дисплеев, но довести их разрешение хотя бы до принтеровских 600–1200 точек на дюйм (dpi) в рамках существующих технологий, хоть тресни, не удается. Действительно, при диагонали 19” ширина видимой части экрана на CRT-мониторах составляет примерно 36 сантиметров, то есть размер одного пиксела (трехцветного!) при разрешении 300 ppi должен составить порядка 80 микрон — а это уже область полупроводниковых технологий, где изготавливать кристаллы размером более нескольких сантиметров пока не научились — и вряд ли научатся. Придется придумывать что-то принципиально иное. |
3 (назад) Разумеется, софтверные корпорации со мной не согласятся, но это так и есть, и современная ситуация, когда в вашей системе стоимость софта (официально приобретенного) превышает стоимость «железа», следует рассматривать, как нонсенс, — по крайней мере в части, которая касается программ массовых. Прикиньте, во что бы вам обошлась разработка и изготовление персональной микросхемы по индивидуальному заказу: счет идет на десятки, если не на сотни миллионов вечнозеленых. Между тем заказную программу вам сваяют в худшем случае за тысячи или десятки тысяч. Почему такое соотношение должно нарушаться при массовом производстве — непонятно. Если компьютер стоит $1000, то и нормальная цена ОС к нему — доллара три.
4 (назад) Хороший пример в этом смысле демонстрируют некоторые самодеятельные текстовые редакторы, которые выставляют автоматическое переключение языка при переходе от русского к английскому тексту и обратно за некое достижение автора. Между тем это просто баг, допущенный разработчиками соответствующих Delphi-компонентов. С ним не слишком просто справиться, вот потому-то авторам поневоле приходится выдавать обычную недоработку за революционное изобретение.
5 (назад) Моя жена охарактеризовала это еще выразительнее: «Да они там друг другу показывают — кто круче…»
6 (назад) Usability — удобство и пригодность к использованию технических, в частности программных, продуктов.
7 (назад) www.psychology.ru/Library/00006.shtml.