Статьи и заметки

Куда ведут окна

Окна были изобретены почти случайно. В семидесятые годы, когда в исследовательском центре Xerox PARC разрабатывали первый компьютер с графическим интерфейсом, качество растровых дисплеев оставляло желать лучшего. Разместить окна подобно перекрывающися документам на столе предложил сам Алан Кей, руководивший этим проектом. "Это не казалось мне идеальным решением проблемы, но оно давало эффект значительного увеличения полезной площади на экране, так что я решил остановиться на нём," - вспоминал он потом в статье "Early History of Smalltalk".

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

Мог ли Кей предвидеть, что временное решение проблемы проживёт практически без изменений так долго? Технические ограничения, которые привели к появлению многооконного интерфейса, давно исчезли, но он успел стать настолько привычным, что об альтернативах почти никто не задумывается. А ведь они есть.

Без окон

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

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

Хотя в Windows поддерживаются перекрывающиеся окна, многие пользователи предпочитают этого не замечать - они всегда открывают приложения на полный экран. Для переключения между окнами в системе есть "панель задач", а Windows XP и Vista ещё и группируют окна одного приложения под одной вкладкой. Впрочем, объяснения здесь, вероятно, излишни, - Windows видели все.

Очень похожую концепцию можно встретить в современных браузерах. Своим табовым интерфейсом они дублируют возможности операционной системы, но раз раскрытые на весь экран Opera или Firefox - зрелище совсем не редкое, значит пользователи находят это удобнее множества перекрывающихся окон.

Полумеры

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

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

Ожидать, что такие гиганты в ближайшее время станут доступными каждому, не приходится. Но похожего эффекта можно достичь и другими способами. Одно из самых простых решений задачи - это установка одного или нескольких дополнительных мониторов. Первый раз объединить несколько мониторов в общее пространство координат предложила компания Radius ещё в 1986 году.

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

Мозаика

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

Первая версия Windows, выпущенная более двадцати лет назад, обладала именно таким интерфейсом. На экране можно было открыть несколько неперекрывающихся окон, причём изменение размера одного из них приводило к изменению размера другого. Впрочем, куда успешнее этот подход применялся во многих программах с текстовым интерфейсом ещё во времена emacs. Старые пользователи PC помнят файловый менеджер Norton Commander, две панели которого тоже можно рассматривать как неперекрывающиеся окна.

Специальные программы, позволяющие разделять экран так, чтобы на нём легко умещались все открытые окна, называются мозаичными или тайловыми оконными менеджерами (от слова tile - плитка или черепица). Есть подобные разработки для Windows, но настоящее королевство подобных средств - UNIX-подобные операционные системы. В число наиболее распространённых тайловых оконных менеджеров входят Ion3, Ratpoison, WMII.

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

Эластичные окна

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

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

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

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

Microsoft Windows по-прежнему проповедует "табовый" однооконный интерфейс, популярные оконные менеджеры для Linux его в той или иной степени копируют (возможность использовать многооконность, разумеется, есть, но она не особенно популярна). Немного отличается от мейнстрима Mac OS X, где по-прежнему используется классическая многооконность в стиле Xerox PARC. На удобство расположения окон влияет только привычка "Маков" не раскрывать окна на весь экран и подгонять их под размер документа, а не экрана. Этого, увы, недостаточно.

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

Реализуй кто-нибудь хотя бы такую простую схему для работы с документами и окнами браузера, повседневное работа на компьютере могла бы стать намного удобнее. Но со времён Norton Commander ничего подобного не было и в ближайшем будущем, похоже, не предвидится.


- Иллюстрации: фотография панорамного дисплея Microsoft - с сайта Microsoft, фотография мультимониторной системы - из галереи http://flickr.com/photos/totalaldo/, скриншот тайлового менеджера Xmonad - с сайта разработчиков Xmonad, изображение "эластичных окон" - с сайта конференции CHI 97, скриншот Xerox Star - с сайта Wikipedia.


Письменный Андрей
29.10.2007 г.



© 2007-2019 ООО "Волна-софт".
Логотип ООО "Волна-софт"


Rambler's Top100 hosted by firstVDS