5. Миф о дружелюбности к пользователю

О, это раздутый миф. «Дружелюбный к пользователю» (англ. user-friendly) — это широко применяющийся в мире компьютеров термин. Так даже назван один очень хороший веб-комикс. Но этот термин плох.
Основная идея хороша: софт должен быть разработан в расчёте на потребностей пользователя. Но на эту идею часто ссылаются как на единственную идею, а такой подход неверный.

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

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

Ясное дело, ПО, выстроенное вокруг потребностей первого пользователя, будет абсолютно непригодным для второго и наоборот. Каким же тогда образом софт может называться «дружелюбным к пользователю», если мы все имеем различающиеся потребности?

Простой ответ таков: «дружелюбный к пользователю» — некорректный термин, такой термин, который заставляет сложную ситуацию выглядеть простой.

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

5-а. Привычное дружелюбно

Итак, в большинстве самых «дружелюбных к пользователю» редакторов и текстовых процессоров, ты осуществляешь операции «вырезать» и «вставить» с помощью клавиатурных комбинаций Ctrl-X и Ctrl-V. Абсолютно неинтуитивно, но все привыкли к этим сокращениям и считают это «дружелюбной» комбинацией.

И когда некто начинает использовать vi, ему кажется, что «d» для вырезания и «p» для вставки это не дружелюбно — не то, к чему этот некто привык.

Лучше ли сокращения vi? Да, на самом деле лучше.

Используя Ctrl-X, как ты собираешься вырезать слово из текущего документа (не используя мышку)?
От начала слова ты нажимаешь Ctrl-Shift-Right для выделения слова. Потом Ctrl-X чтобы вырезать его.
Каков подход vi? dw удаляет слово.

Хорошо, как насчёт вырезать пять слов, применяя Ctrl-X?

От начала группы слов Ctrl-Shift-Right, Ctrl-Shift-Right, Ctrl-Shift-Right, Ctrl-Shift-Right, Ctrl-Shift-Right, Ctrl-X

А что нужно в vi?

d5w

Подход vi намного более универсальный и в самом деле более интуитивный: «X» и «V» неочевидны и не ассоциируются с командами «вырезать» (англ. «Cut») и «вставить» (англ. «Paste»), в то время как «dw» для удаления слова (англ. «delete a word») и «p» для вставки обратно (англ. put, paste) — абсолютно очевидно. Но «X» и «V» это то, что мы все знаем, а vi хотя и использует лучший подход, непривычен. Следовательно, его называют «недружелюбным». Если нет знания других систем, близкое знакомство с виндо-подобными интерфейсами — это именно то, что делает их «дружелюбными». Кроме того, не следует забывать о проблеме 1: линукс совершенно необходимо отличается от виндоуса. И неизбежно, линукс всегда кажется менее «дружелюбным», чем виндоус.

Чтобы избежать проблемы 5-а, всё, что ты действительно можешь сделать, это попробовать запомнить: «дружелюбный к пользователю» не означает «того, к чему я привык». Пробуй действовать как обычно действуешь, но если что-либо не работает, как ты привык, приложи усилия к изучению софта так, как будто ты абсолютный новичок.

5-б. Неэффективное дружелюбно

Это печальный но бесспорный факт. Парадоксально: чем сложнее ты делаешь доступ к функциональности приложения, тем более дружественным оно может казаться.

Дружественность добавляется к интерфейсу с помощью простых видимых «подсказок» — чем больше их, тем «лучше». В конце концов, если полного ламера посадят перед WYSIWYG-редактором и попросят выделить кусок текста жирным, скорее всего:

  • Он предположит, что «Ctrl-B» стандартно применимо.
  • Он будет искать подсказки, и попробует кликнуть на меню «Edit». В случае неудачи, он скорее всего, продолжит поиск вдоль строчки меню, найдёт «Format». Потом внутри он увидит подменю «Font», и найдёт это многообещающим. Ага! Вон пункт меню «Bold». Ура!

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

Создание «дружественного» ПО такими уловками — как добавление тренировочных колёс к велосипеду: это позволяет тебе сесть на него и поехать сразу, не требуя никаких навыков или опыта. Идеально для новичка. Но на всей земле никто не считает, что все велосипеды должны продаваться с дополнительными колёсами — если тебе дадут такой велосипед сегодня, могу поспорить, первое, что ты сделаешь, — снимешь их как ненужную обузу: если уже знаешь как ездить на велосипеде, тренировочные колёса не нужны.

Подобным образом, большинство программ для линукса разработано без «тренировочных колёс» — они разрабатываются для пользователей, которые уже имеют основные навыки. В конце концов, никто не может быть новичком вечно — невежество недолговечно, знание — навсегда. Таким образом, софт написан с мыслью о большинстве.

Это может показаться оправданием: в конце концов, Word имеет и дружелюбные менюшки, и панельные кнопки, и «горячие» клавиши… Лучшее из всех миров, не так ли? Дружественно и эффективно.

Однако, посмотрим на ситуацию шире. Для начала, практический аспект: чтобы запрограммировать все эти менюшки, панели с кнопками и «горячие» клавиши, нужно затратить много времени на кодинг, и вряд ли за это время кто-то заплатит линукс-разработчику. Во-вторых, это не учитывает потребности серьёзных опытных пользователей — очень немногие профессионалы используют Word. Когда нибудь встречал кодера, который использует Word? Сравни их количество с числом пользователей emacs-а и vi.

Почему так? Во-первых, потому что некоторые «дружественные» прибамбасы исключают эффективное использование приложения: см. «вырезать и вставить» пример выше. И во-вторых, потому что большая часть функциональности Word-а погребена под толстым слоем менюшек, который тебе приходится разгребать — только наиболее общепринятые действия отражены в тех удобных маленьких кнопках сверху. Менее используемые функции, которые тем не менее жизненно необходимы серьёзным пользователям, достать нелегко и долго.

Нужно также отметить, что пресловутые «тренировочные колёса» часто доступны в качестве «дополнительных принадлежностей» для линуксового софта — они могут быть неочевидными, но как правило, доступны.
Возьмём для примера mplayer. Ты используешь его для проигрыша видеофайла, набирая mplayer имя файла в консоли. Ты проматываешь вперёд и назад, используя стрелки и клавиши PageUp, PageDown. Это не особо «дружественно», но если ты наберёшь gmplayer имя файла, то получишь графический фронт-энд со всеми этими красивыми «дружественно»-знакомыми кнопочками.

Или преобразование CD-диска в Mp3 или Ogg: при использовании консоли, тебе нужна cdparanoia чтобы записать треки на винт. Потом тебе нужен энкодер… немного напряжно (пожалуй), даже если ты точно знаешь, как использовать соответствующие пакеты. Значит скачай и установи что-нибудь, подобное Grip-у. Это простой в использовании графический фронт-энд, который использует cdparanoia и «за кулисами» перекодирует музыку, что позволяет действительно легко рипать сидюки, у него даже есть поддержка CDDB, чтобы автоматически скачивать правильные имена файлов.

То же самое истинно для рипа DVD: количество опций, которые нужно передать в transcode, — это тихий ужас. Но использование dvd::rip как интерфейса к transcode делает всё простым, основанным на графическом интерфейсе, процессом, осилить который может каждый.

Итак, во избежание проблемы 5-б, помни: «дополнительные колёса» в линуксе, как правило, прикручиваются отдельными расширениями, а не ставятся автоматически вместе с главным пакетом. И иногда «тренировочные колёса» просто не могут быть частью программы.