Десктопом по фейсу
 
20.05.2003
Юрий Ревич


 
стр. 1
стр. 2 >>

«Прогресс технологии одаряет нас все более совершенными средствами для движения вспять».
Олдос Хаксли

По мере развития компьютерных технологий за пультом компьютера оказывалось все больше непрофессионалов. Если сначала клавиатура была прерогативой ученых и инженеров, то потом дошло до школьников и домохозяек. Вопросы общения с компьютером вышли на первый план, и следует отдавать себе отчет, что за счет несовершенства ПО общество расходует впустую на порядки больше ресурсов, чем софтверная индустрия теряет от пиратов вместе взятых. Причем я не имею в виду ни дыры в защите, ни пресловутые «синие экраны». Речь идет о том, с чем мы все имеем дело ежедневно, — о пользовательском интерфейсе. Это одно из самых тонких мест в современной компьютерной индустрии — даже не потому, что стандарты пользовательского интерфейса во многом складывались стихийно и часто продвигались людьми, которые ничего в них не понимали, — скорее, дело в практических реализациях. Дуглас Энгельбарт, Алан Кей и Чарльз Саймони (см. врезку) знали, что делали, но дальнейшая судьба их разработок отчасти напоминает любительские увлечения вроде попыток портирования 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, в которой в качестве устройства вывода была использована электронно-лучевая трубка — прообраз современного дисплея. Вопрос, однако, оставался в том, что именно и каким образом на этой трубке демонстрировать.
Пионером в этом деле выступил Дуглас Энгельбарт, под руководством которого в середине 1960-х в Стэнфордском исследовательском институте (Stanford Research Institute) была создана система под названием NLS (oN Line System). Одним из ее компонентов, в частности, было «устройство для позиционирования курсора», которое произвело столь большое впечатление на журналистов, что Энгельбарт стал знаменит именно как изобретатель мыши. На самом деле NLS — диалоговая система с оконным интерфейсом и межкомпьютерным взаимодействием, мышь являлась лишь одной из ее частей.
В дальнейшем точкой роста почти всех идей, реализованных впоследствии в так называемом графическом интерфейсе пользователя (Graphic User Interface, GUI) стал Xerox Palo Alto Research Center — Xerox PARC, возникший на рубеже 60–70 годов1. Одной из идей, разработанных в PARC, была и парадигма WIMP, которая позже переросла в концепцию GUI и продолжает использоваться по настоящее время. Эти разработки связывают с именем Алана Кея (Alan Key).
В 1975 году в Xerox был начат проект, закончившийся в апреле 1981 года представлением системы Xerox 8010 Professional Workstation, более известной под торговой маркой Xerox Star. В этой машине было заложено так много передовых идей, что мы их эксплуатируем и поныне и еще будем долго эксплуатировать — от нее ведут свое происхождение GUI, WYSIWYG (what you see is what you get), кодировка Unicode, язык описания страниц PostScript, «рабочий стол» и т. п. О Star можно рассказывать долго, но нам сейчас важно отметить, что разработчики проектировали «Звезду» так: они сначала наметили, что именно пользователь машины будет делать (скажем, работать с документами, а не заниматься научными расчетами), а затем выбрали под это дело конфигурацию «железа» (позднее, конечно, все стало происходить строго наоборот). Например, 17-дюймовый (!) монитор Star имел одинаковое разрешение по вертикали и горизонтали, а принятое неизменное разрешение 72 точки/дюйм отвечало разрешению матричного принтера при печати текста, поэтому режим WYSIWYG соблюдался в полной мере.
В 1979 году разработчиков Star посетил некто Стив Джобс (уверяют, что Xerox его сама пригласила с целью обменять секреты на долю в бизнесе Apple), увидел там все это дело и вдохновился. Как только Star потерпела провал на рынке (почему это произошло — вопрос отдельный) и группа разработчиков была распущена, десяток-другой сотрудников Xerox оказались в Apple (а, кстати, автор концепции WYSIWYG, Чарльз Саймони — в Microsoft, где приступил к разработке MS Office). В результате родились Apple Lisa и вслед за ней — «младший братик Лизы», «Макинтош», который косвенно породил Windows 1.0, а через десять лет — и Windows 95.


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.


 
стр. 1
стр. 2 >>

<<Делаем из слона муху
Все материалы номера
Большие проблемы маленьких компьютеров >>