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

Продолжая традицию «рассуждалок», автору на сей раз хочется предоставить на суд читателей свои размышления на тему интерфейсов. А конкретнее — интерфейсов пользователя. Уж сколько раз «пинали» к примеру ту же самую 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 .). ? , «» , « » — , . , « » «» . , , — , — - «» , . - — . , , , . ? ?