Клава и Муся
Sunday, 11 Nov 2001
Булька, вилька и булдозер
Когда-то давно я заинтересовался вопросом удобства интерфейса. Не с точки зрения производителя громоздких офисных пакетов, а с точки зрения пользователя. Либо я страдаю раздвоением личности, либо я умею дистанциироваться от самого себя настолько, чтобы понять абсолютно чуждого мне человека, но — фактостается фактом — я оказался способен признать, что прелести редактора EMacs для моих родителей неочевидны.
Как говорил персонаж известного анекдота: «Дети, понять это невозможно. Это можно только запомнить».
Глядя, как мой отец борется с известным офисным редактором, оправдывающим только вторую часть названия фирмы производителя, при наборе книги в несколько глав с таблицами, графиками и диаграммами — я отчетливо сознавал непреложную истину: про TeX при этом не стоит и заикаться. Несмотря на пылкие речи и веские тычки в бок, мне не удалось убедить ни единую женщину в преимуществах FAR'а над Explorer'ом. Я решил по телефону не менее сотни серьезных проблем (типа, «он мне цвет шрифта не хочет менять, а-а-а-а!») — с помощью одного-единственного совета: «Наведи мышь и нажми правую кнопку. Это называется контекстное меню, детка!». Я знал, что люди пользуются тем, чем привыкли пользоваться — это гораздо важнее для них,чем новые мульки, скорость рендеринга и ре-инжиниринг. Единственное, чего я не мог понять: «а что важно для меня?».
Будучи программистом, я являюсь человеком, непритязательным к программному обеспечению. Во всех редакторах, с которыми мне приходится иметь дело, у меня включена опция автосохранения каждые пять-десять минут. Я еженедельно делаю back-up, пользуюсь системой контроля версий даже дома и на всех моих компьютерах есть программка докачки файлов из интернета. Я привык к тому, что опцию «обрамление таблицы» во многих приложениях нужно искать в меню «File», а контекстное меню, главное меню и тулбар — как правило, являют собой три нетождественных подмножества, пересечение которых, зачастую, есть множество меры нуль. Чтобы отрисовалась новая иконка, нужно перезапустить приложение; чтобы позвонить по новому модему — операционную систему. И все это меня если и напрягает, то несильно. Если не считать двух-трех сломанных ударом кулака клавиатур в месяц — можно сказать, совсем не напрягает.
Меня напрягает другое.
C-x C-s
Я ненавижу ждать. Договариваясь о первом свидании с примадонной, я могу честно предупредить её: «Жду ровно три минуты». Опаздывающий автобус может вынудить меня ехать на край света на такси. Когда я варю кофе, я заливаю в турку крутой кипяток, чтобы время выхода ароматного напитка не превышало двух секунд. Кстати, ждать любимую женщину из пивбара и ждать первое мая,чтобы выбросить ёлку — это совсем разные глаголы. Омографы, и только.
Еще я ненавижу терять время. Если я могу что-то сделать за час, возможны только три варианта развития событий: я либо сделаю это за полчаса, либо за месяц, либо не сделаю никогда. Но потерять десять минут из-за некачественного/ненастроенного оборудования и уложиться в час десять — увольте, это не для меня.
Отсюда вытекает мое основное требование к используемому программномуобеспечению. Имя ему — эргономичность. А не ю-за-би-... (ну, вы поняли). Я постараюсь пояснить, что я имею в виду.
Наверное, любой человек хоть раз пользовался web-интерфейсом к почте на Яндексе. Да, сударь, я знаю, что вы самый крутой и папа подарил вам хостинг на совершеннолетие. Да, присылайте секунданта. Только скажите: «а девочке вашей, ну той, что вы в позапрошлом году на четырехзначную аську у друга выменяли — не вы ли почту заводили? И хде, позвольте вас спросить?». Так вот, этот интерфейс делал человек, которому понятие эргономичность — чуждо. Потому что я набираю адрес получателя и, видя перед собой три поля ввода, три раза нажимаю клавишу табуляции, чтобы приступить непосредственно к написанию письма. Я это делаю автоматически, чтобы сэкономить время. Я не готов в этот момент потянуться за мышкой, прицелиться, щелкнуть там, где надо, попасть в цель, бросить мышку, нащупать клавиатуру и обнаружить, что пролил на нее кофе, пока совершал свои антихудожественные манипуляции с мышой. А тому, кто делал этот интерфейс — было важнее другое — дать пользователю возможность выбрать адрес из адресной книги в интуитивно ясной манере. Потому там справа от каждого поля нарисована какая-то синяя хреновина, щелкнув по которой (это если вы сможете навести мышь на иконку такого непритязательного размера) вы попадаете. В адресную книгу.
А я — стремительно нажав три раза подряд клавишу табуляции — попадаю прямиком в ступор под названием «какая тварь уперла мой курсор?».
Все, кому интересно, как бы реализовал интерфейс добавления адресов из книги я, приглашаются заглянуть в любого почтового клиента. И если письмо уходит по адресам из книги с копиями, подгружать новую страничку нужно будет единожды, а не дважды, как в текущей реализации.
Еще пример — я его уже приводил — файловые менеджеры. Иконки, дерево, подписи к файлам арабской вязью — это, несомненно, круто. Однако я приглашаю любого адепта Explorer'а к соревнованию по скорости навигации и копирования файлов из разных каталогов. Им фору дам, я с FAR'ом, да.
Ключевое понятие здесь — возможность совершения какой-либо законченной операции без необходимости переключаться с клавиатуры на мышь (или, наоборот — с мыши на клавиатуру, если вся операция может быть выполнена с помощью мыши).
Проблема, однако в том, что такой подход не работает.
Write Twice, Use Once
А не работает он просто потому, что человеческий мозг в состоянии хранить тоннами всякую ерунду, наподобие питерского номера телефона уехавшего пятнадцать лет назад в Штаты человека. Но наотрез отказывается запоминать такие жизненно-необходимые вещи, как адрес прачечной, отчество научного руководителя и — конечно же — клавиатурные комбинации. Именно этот факт явился причиной неприживаемости в массах редактора EMacs и нелюбви пользователей к консольному интерфейсу вообще.
Если я что-то забыл, я (по тому же самому принципу экономии) — хочу иметь возможность выполнить необходимую мне операцию за минимальный промежуток времени. А если я к чему-то привык, я хочу везде делать это именно таким способом. Кто-нибудь видел коробку передач, в которой первая, вторая и третья скорости переключались бы движением «вперед», а остальные — «назад»? Поэтому есть общее правило, которое необходимо соблюдать, если есть желание создать приложение и/или сайт, который бы понравился пользователям.
Любая функция должна присутствовать в меню; к любой функции должна быть прикручена комбинация быстрых клавиш, которую притом должно быть легко поменятьна какую-либо иную.
И не хочу ничего слушать про то, что никакой сумасшедший заказчик не станет ждать, пока мы приделаем по шорткату на каждое возможное действие пользователя. Так должно быть. И точка.
Пойду проверю, куда меня заведет навигация табуляцией по моему сайту.
Мышь да клава — наша забава.