Колонка «Рыбный день»

Продолжая традицию «рассуждалок», автору на сей раз хочется предоставить на суд читателей свои размышления на тему интерфейсов. А конкретнее — интерфейсов пользователя. Уж сколько раз «пинали» к примеру ту же самую Microsoft за то что от версии к версии у ее ОС «только рюшечки красивее становятся», но как только возникал вопрос: «а чего же вам, любезные, надоть?», — так сразу и тишина гробовая… С одной стороны, вроде бы есть соответствующие науки — эргономика там, психология, и не след мне, типичному «технарю от IT» лезть со своим свиным рылом в академический калашный ряд. А с другой — как-то подозрительно мало материалов на эту тему, написанных именно для широкой читательской аудитории, и возникает, соответственно, небольшой вопрос — понятно, что где-то там в глубинах что-то происходит, но почему у нас, в машинном отделении, об этом ничего не известно? :) Вот я и решил своими мыслями поделиться — вдруг нужные люди сразу встрепенутся, да и объяснят мне, что на самом деле все по-другому?





Рыбный день #2: От наскальной живописи — к drag'n'drop

Для начала давайте вспомним уроки в школе, где нам рассказывали про наших первобытных предков. Общеизвестно, что поначалу такого понятия как «язык» у них не существовало, по крайней мере, в сегодняшнем понимании этого слова. Объяснялись же предки в основном жестами. Взял в руки палку, ударил себя в грудь, изобразил рычание зверя, палкой помахал, потом призывно рукой махнул — значит: «Я тут на охоту собрался, со мной никто не желает?». Впоследствии появилась первая абстракция — вместо того, чтобы изображать мамонта с помощью различных звуков и широко разводя руками, человек научился его рисовать, и одним из способов общения стали «перерисовки» (по аналогии с «перепиской»), следы которых палеонтологи с таким большим удовольствием нынче находят на скалах. Чем оно было плохо — понятно: палка нужна, рычать нужно, много жестов производить, рисовать… Опять-таки — необходимо чтобы смотрели все на тебя. За угол пещеры зашел, пропал из пределов прямой видимости потенциальных собеседников — и уже никого на охоту не позовешь. Однако нас больше интересует другое — что в этом было хорошего. А хорошее тоже было — универсальность и независимость от того самого языка. Вышеприведенный диалог не то что далекий наш предок, но даже вполне современные француз, итальянец, или русский — поймут сразу и без слов. Запомним основное — универсальность аудиовидеоряда, в отличие от языка.

Теперь скакнем в совсем недавнее прошлое, когда появились самые первые компьютеры. Фактически, у них «интерфейс пользователя» был самым человечным… ибо это, собственно, человек и был. Учить Фортран и набивать перфокарты, конечно, приходилось, но с перфокартами пользователь подходил к одному из сотрудников вычислительного центра, и он ему нормальным языком объяснял, что «сейчас у машины сбой пошел, придется подождать», или «эта программа, по-моему, не пойдет, потому что не так оформлена», или «я беру, но результатов жди не раньше завтрашнего дня — большая загрузка», или еще что-то подобное. Получали результаты рядовые пользователи тоже от человека, и опять-таки с вполне человеческими комментариями — «вот твои результаты», или «от твоей задачи машине крышу снесло, видать что-то ты не то написал», или даже с сообщением о вполне конкретной ошибке. То есть компьютер был настолько «туп», что для организации полноценного «интерфейса пользователя» ему требовался специально обученный человек. Что самое интересное — по сути, проблема взаимодействия пользователя с компьютером на тот момент вообще не существовала, поскольку для него компьютер был просто еще одной абстракцией. Если представить себе, что перфокарты с программой ее составитель подает в специальное окошко (за которым сидит вполне нормальный живой человек), и принимает результаты он из этого же окошка — то что там в глубине находится, то ли компьютер, то ли тысяча человек со счетами — это ему по большому счету доподлинно не известно, да и не волнует. Получается, что у первых компьютеров с точки зрения пользователей интерфейс вообще отсутствовал.

Потом появился текстовый интерфейс — командная строка, терминалы. Собственно, с появления достаточно широкого и объемлющего командного языка для управления операционной системой, начался процесс, когда часть вычислительных ресурсов системы отдавалась не под «полезные» задачи, а именно под организацию интерфейса. Ну и естественно, сразу же появилось множество этих самых языков (языки shell). Чувствуете параллель? Фактически, компьютеры принялись повторять тот путь развития, который уже прошли сами люди. Что, с другой стороны, неудивительно, ибо «повторяли» его не они сами (собственным интеллектом не обладая), а те, кто их разрабатывал и конструировал. Штука вполне естественная — если человечество за все время своего существования ничего лучше чем язык не придумало, то и свои детища по мере возможностей оно сразу же наделило самым «продвинутым» интерфейсом своего авторства. Правда, в силу своей специфики, вычислительные системы сразу же перешагнули от устной речи к письменной. Почему? А просто не было у них на тот момент времени соответствующей сигнальной системы. Причем как внешних ее проявлений (устройств для восприятия звука), так и «внутренних» — соответствующих блоков, предназначенных для обработки звукоряда и извлечения из него полезной информации. Итак, первым полноценным интерфейсом для общения человека и компьютера был текстовый, базирующийся на некоем подобии языка.

Что у нас появилось далее? Далее появился интерфейс графический, который к тому же довольно быстро снабдили элементами звукового оформления. Напрашивающаяся аналогия с живописью и музыкой все-таки в общем случае мне кажется верной, особенно с живописью. Те же наскальные рисунки вполне могут быть сравнены с «иконками» на десктопе. Музыка… ну, не музыка, конечно, скорее просто компьютер оснастили частью второй сигнальной системы, дав способность звуки издавать, но не воспринимать. Также появился и «язык жестов» — сначала в виде простейшего drag'n'drop, потом — в виде более сложного mouse gestures («жесты мышью», поддержка которых сейчас реализуется во все большем количестве программ). На этом… а вот на этом, собственно говоря, мы сейчас и стоим. Подытоживаем: на сегодняшний день в компьютерном интерфейсе используются все средства, которые люди используют в процессе общения друг с другом. Правда, некоторые сигнальные системы у него обладают кастрированной функциональностью из-за банальной неспособности сегодняшней технической мысли реализовать их в полном объеме. Проблемы дальнейшего развития этих систем нам уже неинтересны, потому что тут мы бессильны — родится гений, который разработает приемлемую по удобству систему распознавания аудио- и видеоряда — будем радоваться. Не родится — селяви… Но, наверное, что-то все-таки можно изменить уже сейчас? А может, оно уже меняется? Давайте подумаем — что именно.

В настоящий момент, как уже было сказано выше, компьютерный интерфейс является комбинацией текстово-языкового с аудиовизуальным. Окна при появлении издают различные звуки, могут иметь цвет и соответствующий вид, но практически всегда в той или иной форме содержат текстовую часть. «Хотите ли вы удалить этот файл?», «Сохранить документ перед выходом из программы?» — все это по-прежнему текст, хоть и стандартный, поэтому в данном качестве практически не воспринимаемый. Однако компьютер по-прежнему общается с нами посредством письменной речи. А теперь давайте вернемся опять в прошлое, и подумаем о том, зачем человечеству вообще понадобился такой инструмент общения как язык. Его ведь идеальным не назовешь — достаточно попытаться общаться с человеком, языка которого ты не знаешь, чтобы это понять.

Во-первых, язык (мы «по компьютерному» будем рассматривать его в совокупности с письменностью) нужен тогда, когда общаются два человека, которые друг не видят и не слышат. Один сидит в Магадане, другой — в Тель-Авиве. То есть письменная речь является одним из средств общаться дистанционно и асинхронно. Актуальна ли эта функциональность для компьютерного интерфейса? В общем-то, для наиболее часто используемых функций — нет. Второе, не менее важное качество языка — обеспечение довольно высокого уровня абстракции. Я могу сказать: «Взял я давеча свой любимый рюкзачок, и пошел в супермаркет за продуктами. Купил картошки, хлеба, пива, селедки с лучком — и состряпал себе чудненький ужин». При этом в данный момент я, к примеру, разговариваю с другом в автобусе, но мне не нужно иметь под рукой рюкзак, супермаркет, картошку, хлеб, и т. п., и не нужно как-то их «изображать», размахивая руками, чтобы собеседник понял, какая последовательность действий и какие предметы имеются в виду. Является ли ценным это качество для компьютерного интерфейса? Тоже нет — потому что он-то как раз может именно изобразить на экране все вышеуказанное, не используя для ни одного произнесенного вслух или написанного слова. Конечно, можно возразить, что в распоряжении системы может не оказаться всех изображений, но… а как это, простите, мы посредством пользовательского интерфейса, функциональность которого жестко ограничена конкретной программной реализацией, работаем неизвестно с чем? Делаем вывод — в большинстве случаев возможность отказаться от языка все-таки есть.

В эту сторону, похоже, и идет сейчас основное реальное движение. Кликаем на иконки, таскаем мышкой, наблюдаем красочные картинки с летящими папочками… Кнопочка со стрелочкой влево — «назад», со стрелочкой вправо — «вперед». Текста в интерфейсе становится все меньше, его стараются исключить из всех элементов, из которых только возможно. В идеале это приведет к тому, что с текстом (языком) мы будем иметь дело только в том случае, когда он будет предназначаться для другого человека — при написании писем, статей, общении с другими людьми с помощью служб мгновенной передачи сообщений. Взаимодействие же собственно с компьютером (операционной системой, программами) станет практически полностью «безъязыким». Что, кстати, автоматом решит еще и задачу локализации, на которую сейчас тратится бездна времени и ресурсов.

Ну а теперь попробуем просуммировать вышесказанное. Фактически, мы наблюдаем кажущуюся деградацию пользовательского интерфейса: от высшего достижения человеческой мысли — языка — к наскальной живописи (изображению объектов и действий с помощью иконок) и жестам (drag'n'drop и пр.). Однако так ли это плохо? Как кажется автору, процесс «опрощения» связан прежде всего с тем, что эпоха «ожидания искусственного интеллекта» заканчивается — стало понятно, что ждать придется долго. А значит, заканчивается и эпоха отношения к компьютеру «как к человеку» вместе с попытками «разговаривать» с ним. Эмоции, оттенки значений, мощные механизмы абстракции — то, благодаря чему язык оказывается незаменимым в качестве средства общения людей — все это для взаимодействия на пользовательском уровне с по-прежнему «тупой» железкой оказалось совершенно ненужным, лишним. Сейчас компьютер наконец-то занял подобающую ему нишу — это просто еще один инструмент. Как рубанок, лопата, кофеварка, автомобиль. Вы часто общаетесь со своей кофеваркой? И что она вам рассказывает долгими зимними вечерами?




13 марта 2003 Г.

������� «������ ����» ������ #2

������� «������ ����»

��������� �������� «�����������», ������ �� ��� ��� ������� ������������ �� ��� ��������� ���� ����������� �� ���� �����������. � ���������� — ����������� ������������. �� ������� ��� «������» � ������� �� �� ����� Microsoft �� �� ��� �� ������ � ������ � �� �� «������ ������� �������� ����������», �� ��� ������ �������� ������: «� ���� �� ���, ��������, ������?», — ��� ����� � ������ ��������… � ����� �������, ����� �� ���� ��������������� ����� — ���������� ���, ����������, � �� ���� ���, ��������� «������� �� IT» ����� �� ����� ������ ����� � ������������� �������� ���. � � ������ — ���-�� ������������� ���� ���������� �� ��� ����, ���������� ������ ��� ������� ������������ ���������, � ���������, ��������������, ��������� ������ — �������, ��� ���-�� ��� � �������� ���-�� ����������, �� ������ � ���, � �������� ���������, �� ���� ������ �� ��������? :) ��� � � ����� ������ ������� ���������� — ����� ������ ���� ����� ������������, �� � �������� ���, ��� �� ����� ���� ��� ��-�������?





������ ���� #2: �� ���������� �������� — � drag'n'drop

��� ������ ������� �������� ����� � �����, ��� ��� ������������ ��� ����� ����������� �������. ������������, ��� �������� ������ ������� ��� «����» � ��� �� ������������, �� ������� ����, � ����������� ��������� ����� �����. ����������� �� ������ � �������� �������. ���� � ���� �����, ������ ���� � �����, ��������� ������� �����, ������ �������, ����� �������� ����� ������ — ������: «� ��� �� ����� ��������, �� ���� ����� �� ������?». ������������ ��������� ������ ���������� — ������ ����, ����� ���������� ������� � ������� ��������� ������ � ������ ������� ������, ������� �������� ��� ��������, � ����� �� �������� ������� ����� «�����������» (�� �������� � «����������»), ����� ������� ������������ � ����� ������� ������������� ����� ������� �� ������. ��� ��� ���� ����� — �������: ����� �����, ������ �����, ����� ������ �����������, ��������… �����-���� — ���������� ����� �������� ��� �� ����. �� ���� ������ �����, ������ �� �������� ������ ��������� ������������� ������������ — � ��� ������ �� ����� �� ��������. ������ ��� ������ ���������� ������ — ��� � ���� ���� ��������. � ������� ���� ���� — ��������������� � ������������� �� ���� ������ �����. ��������������� ������ �� �� ��� ������� ��� ������, �� ���� ������ ����������� �������, ���������, ��� ������� — ������ ����� � ��� ����. �������� �������� — ��������������� ��������������, � ������� �� �����.

������ ������� � ������ �������� �������, ����� ��������� ����� ������ ����������. ����������, � ��� «��������� ������������» ��� ����� ����������… ��� ���, ����������, ������� � ���. ����� ������� � �������� ����������, �������, �����������, �� � ������������ ������������ �������� � ������ �� ����������� ��������������� ������, � �� ��� ���������� ������ ��������, ��� «������ � ������ ���� �����, �������� ���������», ��� «��� ���������, ��-�����, �� ������, ������ ��� �� ��� ���������», ��� «� ����, �� ����������� ��� �� ������ ����������� ��� — ������� ��������», ��� ��� ���-�� ��������. �������� ���������� ������� ������������ ���� �� ��������, � �����-���� � ������ ������������� ������������� — «��� ���� ����������», ��� «�� ����� ������ ������ ����� ������, ������ ���-�� �� �� �� �������», ��� ���� � ���������� � ������ ���������� ������. �� ���� ��������� ��� ��������� «���», ��� ��� ����������� ������������ «���������� ������������» ��� ���������� ���������� ��������� �������. ��� ����� ���������� — �� ����, �������� �������������� ������������ � ����������� �� ��� ������ ������ �� ������������, ��������� ��� ���� ��������� ��� ������ ��� ����� �����������. ���� ����������� ����, ��� ���������� � ���������� �� ����������� ������ � ����������� ������ (�� ������� ����� ������ ���������� ����� �������), � ��������� ���������� �� �� ����� �� ������ — �� ��� ��� � ������� ���������, �� �� ���������, �� �� ������ ������� �� ������� — ��� ��� �� �������� ����� ���������� �� ��������, �� � �� �������. ����������, ��� � ������ ����������� � ����� ������ ������������� ��������� ������ ������������.

����� �������� ��������� ��������� — ��������� ������, ���������. ����������, � ��������� ���������� �������� � ����������� ���������� ����� ��� ���������� ������������ ��������, ������� �������, ����� ����� �������������� �������� ������� ���������� �� ��� «��������» ������, � ������ ��� ����������� ����������. �� � �����������, ����� �� ��������� ��������� ���� ����� ������ (����� shell). ���������� ���������? ����������, ���������� ��������� ��������� ��� ���� ��������, ������� ��� ������ ���� ����. ���, � ������ �������, �������������, ��� «���������» ��� �� ��� ���� (����������� ����������� �� �������), � ��, ��� �� ������������ � �������������. ����� ������ ������������ — ���� ������������ �� ��� ����� ������ ������������� ������ ����� ��� ���� �� ���������, �� � ���� ������ �� ���� ������������ ��� ����� �� �������� ����� «�����������» ����������� ������ ���������. ������, � ���� ����� ���������, �������������� ������� ����� �� ����������� �� ������ ���� � ����������. ������? � ������ �� ���� � ��� �� ��� ������ ������� ��������������� ���������� �������. ������ ��� ������� �� ���������� (��������� ��� ���������� �����), ��� � «����������» — ��������������� ������, ��������������� ��� ��������� ��������� � ���������� �� ���� �������� ����������. ����, ������ ����������� ����������� ��� ������� �������� � ���������� ��� ���������, ������������ �� ������ ������� �����.

��� � ��� ��������� �����? ����� �������� ��������� �����������, ������� � ���� �� �������� ������ �������� ���������� ��������� ����������. ��������������� �������� � ��������� � ������� ���-���� � ����� ������ ��� ������� ������, �������� � ���������. �� �� ���������� ������� ������ ����� ���� �������� � «��������» �� ��������. ������… ��, �� ������, �������, ������ ������ ��������� ��������� ������ ������ ���������� �������, ��� ����������� ����� ��������, �� �� ������������. ����� �������� � «���� ������» — ������� � ���� ����������� drag'n'drop, ����� — � ���� ����� �������� mouse gestures («����� �����», ��������� ������� ������ ����������� �� ��� ������� ���������� ��������). �� ����… � ��� �� ����, ���������� ������, �� ������ � �����. ������������: �� ����������� ���� � ������������ ���������� ������������ ��� ��������, ������� ���� ���������� � �������� ������� ���� � ������. ������, ��������� ���������� ������� � ���� �������� �������������� ����������������� ��-�� ��������� ������������� ����������� ����������� ����� ����������� �� � ������ ������. �������� ����������� �������� ���� ������ ��� ��� �����������, ������ ��� ��� �� ��������� — ������� �����, ������� ����������� ���������� �� �������� ������� ������������� �����- � ��������� — ����� ����������. �� ������� — ������… ��, ��������, ���-�� ���-���� ����� �������� ��� ������? � �����, ��� ��� ��������? ������� �������� — ��� ������.

� ��������� ������, ��� ��� ���� ������� ����, ������������ ��������� �������� ����������� ��������-��������� � ���������������. ���� ��� ��������� ������ ��������� �����, ����� ����� ���� � ��������������� ���, �� ����������� ������ � ��� ��� ���� ����� �������� ��������� �����. «������ �� �� ������� ���� ����?», «��������� �������� ����� ������� �� ���������?» — ��� ��� ��-�������� �����, ���� � �����������, ������� � ������ �������� ����������� �� ��������������. ������ ��������� ��-�������� �������� � ���� ����������� ���������� ����. � ������ ������� �������� ����� � �������, � �������� � ���, ����� ������������ ������ ����������� ����� ���������� ������� ��� ����. ��� ���� ��������� �� �������� — ���������� ���������� �������� � ���������, ����� �������� �� �� ������, ����� ��� ������.

��-������, ���� (�� «�� �������������» ����� ������������� ��� � ������������ � �������������) ����� �����, ����� �������� ��� ��������, ������� ���� �� ����� � �� ������. ���� ����� � ��������, ������ — � ����-�����. �� ���� ���������� ���� �������� ����� �� ������� �������� ����������������������. ��������� �� ��� ���������������� ��� ������������� ����������? � �����-��, ��� �������� ����� ������������ ������� — ���. ������, �� ����� ������ �������� ����� — ����������� �������� �������� ������ ����������. � ���� �������: «���� � ������ ���� ������� ��������, � ����� � ����������� �� ����������. ����� ��������, �����, ����, ������� � ������ — � ��������� ���� ���������� ����». ��� ���� � ������ ������ �, � �������, ������������ � ������ � ��������, �� ��� �� ����� ����� ��� ����� ������, �����������, ��������, ����, � �. �., � �� ����� ���-�� �� «����������», ���������� ������, ����� ���������� �����, ����� ������������������ �������� � ����� �������� ������� � ����. �������� �� ������ ��� �������� ��� ������������� ����������? ���� ��� — ������ ��� ��-�� ��� ��� ����� ������ ���������� �� ������ ��� �������������, �� ��������� ��� �� ������ �������������� ����� ��� ����������� �����. �������, ����� ���������, ��� � ������������ ������� ����� �� ��������� ���� �����������, ��… � ��� ���, ��������, �� ����������� ����������������� ����������, ���������������� �������� ������ ���������� ���������� ����������� �����������, �������� ���������� � ���? ������ ����� — � ����������� ������� ����������� ���������� �� ����� ���-���� ����.

� ��� �������, ������, � ���� ������ �������� �������� ��������. ������� �� ������, ������� ������, ��������� ��������� �������� � �������� ���������… �������� �� ���������� ����� — «�����», �� ���������� ������ — «������». ������ � ���������� ���������� ��� ������, ��� ��������� ��������� �� ���� ���������, �� ������� ������ ��������. � ������ ��� �������� � ����, ��� � ������� (������) �� ����� ����� ���� ������ � ��� ������, ����� �� ����� ��������������� ��� ������� �������� — ��� ��������� �����, ������, ������� � ������� ������ � ������� ����� ���������� �������� ���������. �������������� �� ���������� � ����������� (������������ ��������, �����������) ������ ����������� ��������� «����������». ���, ������, ��������� ����� ��� � ������ �����������, �� ������� ������ �������� ������ ������� � ��������.

�� � ������ ��������� �������������� �������������. ����������, �� ��������� ��������� ���������� ����������������� ����������: �� ������� ���������� ������������ ����� — ����� — � ���������� �������� (����������� �������� � �������� � ������� ������) � ������ (drag'n'drop � ��.). ������ ��� �� ��� �����? ��� ������� ������, ������� «���������» ������ ������ ����� � ���, ��� ����� «�������� �������������� ����������» ������������� — ����� �������, ��� ����� �������� �����. � ������, ������������� � ����� ��������� � ���������� «��� � ��������» ������ � ��������� «�������������» � ���. ������, ������� ��������, ������ ��������� ���������� — ��, ��������� ���� ���� ����������� ����������� � �������� �������� ������� ����� — ��� ��� ��� �������������� �� ���������������� ������ � ��-�������� «�����» �������� ��������� ���������� ��������, ������. ������ ��������� �������-�� ����� ���������� ��� ���� — ��� ������ ��� ���� ����������. ��� �������, ������, ���������, ����������. �� ����� ��������� �� ����� ����������? � ��� ��� ��� ������������ ������� ������� ��������?