Comments 93
А вот скрытое состояние «пользователь нажал кнопку „ответить“ на руле и после этого нажал „следующая радиостанция“, наверное, он хочет рулём менять номер канала, а не рулить колёсами», к счастью, не реализовалась.
В процессе жизни меняются как требования/предпочтения уже пользующихся интерфейсом людей, так и появляются новые пользователи.
Проблемы во многих интерфейсах (зачастую в корпоративных системах), в том, что разработчики перед разработкой не достаточно с будущими пользователями разговаривали (а может и вообще не общались).
А в случае софта приоритеты другие.
Хотя, я до сих пор не могу понять, почему «один не очень любимый производитель ОС» сделал интерфейс именно таким.
Если автомобили научатся внезапно летать, то изменения в интерфейсе взаимодействия не заставят себя ждать
Хотя назначение педалей другое, тяга регулируется ручкой.
И приборная доска полна приборов, только обязательных (для СЛА и малой авиации) семь штук.
Впрочем, Вы правы в том, что «руль» есть руль.
И общий набор шаблонов (а также — иконок) для графических утилит очень и очень желателен.
Компьютерные же интерфейсы решают нескончаемое множество различных задач (ровно столько, сколько существует программ в мире) и отличия Блокнота от iTunes понятным всем, поэтому тут не могут действовать те же принципы преемственности. конечно, эти принципы должны быть. но без излишества.
Если бы все было так преемственно, мы бы хо сих пор пользовались интерфейсом DOS. Тот же графический интерфейс был совершенно не наследственным, но гораздо более удобным.
Интерфейс дос — это наследие CP/M, которая совсем не относится к ветке unix. Юниксовый шелл много удобнее, и я могу судить об этом по отцу, которому проще выписать на бумажку нужные команды в шелле, чем запоминать в каком меню какие кнопки нажимать. Это не шутка.
Компьютер решает множество задач, но когда он используется для решения конкретной задачи, оказывается, что это множество постоянно мешается и препятствует нормальному выполнению данной конкретной задачи.
Не полностью понял вашу позицию, поэтому не знаю, совпадают ли наши мнения, но я считаю, что менять интерфейс нужно, иногда это приходится делать кардинально (как в последнем iTunes), но с этим увлекаться нельзя. Главное, чтобы все было максимально интуитивно, понятно и удобно. Преемственность приоритетна и сохраняется по возможности.
>> Интересно, сколько лет должно пройти, чтобы такая простая вещь, как неизменный интерфейс, появилась и в графических интерфейсах?
Сколько лет нужно, чтобы оно угомонилось?
Автомобиль — пример не очень хороший, там много жёстких технических ограничений на дизайн. Вот те же телефоны, к примеру, уродуют кто как умеет (физически, я имею в виду, интерфейс программный даже не трогаем). Дизайнеры становятся жертвами отдела маркетинга. «Надо все время меняться, чтобы создавать впечатление развития».
А если ты достиг совершенства, зачем его менять? Ведь любые изменения совершенства приведут только к ухудшениям…
Но нет, сегодня маркетинг рулит. Надо все время менять, и напихивать функционала как можно больше. Неважно, что этим неудобно пользоваться и никому оно не надо, важно чтобы на витрине красиво смотрелось.
Но, конечно, всегда может попасться неумелый дизайнер.
Был пример одного офиса, где сначала были телефоны с множеством программируемых кнопок, и можно было записать на каждую кнопку свой номер, и всё было понятно. А потом поставили новые, с офисной атс, где нужно было выбирать телефоны через набор номеров функций, и инструкция со списком функций была… В общем, везде можно ухудшить управляемость, если постараться Ж)
Ну а с мобильными телефонами какая вакханалия творится, это и так известно.
В качестве примера, можно привести инсталляторы винды и убунты. Первая таки заставляла раньше (как сейчас не знаю) пользователя сидеть и пялиться в монитор и ждать, пока она что-нибудь спросит, тогда как убунта спрашивает второстепенные вещи в самом начале и параллельно основным установочным действиям, идущим в фоне.
И секунда — это разве реальное время? За это время ЦПУ успевает сделать миллионы (а то и миллиарды) операций.
Задача должна либо быть выполнена в срок, либо должна сработать защита из-за невыполнения в срок. А что там — ядро трапнулось из-за того, что realtime нарушен, или реактор кабль у блока питания поплавил, это уже дело десятое.
Интерфейс автомобилей — это не задние/передние ведущие колеса и т.п., а приборная панель с рулем и переключателями. Дизайнеры автомобилей меняют интерфейсы часто и довольно сильно, причем у разных фирм есть свои фишки. В разных местах находятся и по разному работают ручки переключения скоростей, управление дворниками, настройка зеркал, регулировка подсветки панелей, включение фар и т.д. и т.п.
О разницах в интерфейсах радиоприемников, GPS, подключениях гаджетов даже начинать не стоит…
Интересно, сколько лет должно пройти, чтобы такая простая вещь, как неизменный интерфейс, появилась и в графических интерфейсах?Естественно, такого не будет никогда и интерфейсы будут развиваться бесконечно и меняться соответственно. Прогресс не остановится в угоду тем, кто за ним не успевает. Просто цивилизация достигла такой скорости, что учиться и переучиваться необходимо на протяжении всей жизни, а малоопытным пользователям нужно как можно быстрее становиться пользователями многоопытными.
Программ бывает много разных, но можно выделить небольшое количество универсальных интерфейсов, которые так или иначе присутствуют в разных программах, в общем-то понятны пользователю и важны для него. Типичнейший пример — текстовый редактор, если смотреть на него не как на отдельную программу, а как на интерфейс, так сказать, эйдос редактора. Это и собственно всевозможные текстовые редакторы, и IDE, и поле ввода в браузере, и командная строка терминала… Это место, где можно вводить и хоть как-то редактировать текст. Фундаментальная проблема всего ПО, о которой я говорю, заключается в том, что один и тот же интерфейс реализован в разных программах очень по-разному. Про новые для меня-пользователя программы пока умолчу, проблема актуальна для приложений, которыми я давно и успешно владею и легко адаптируюсь к незначительным изменениям в них, — она выражается в давно выработавшемся и укоренившемся двоемыслии в мозгах пользователя. Вот я только что в терминале редактировал командную строку и использовал комбинацию клавиш C-w, чтобы убить слово слева от курсора, а сейчас набираю текст в браузере и чуть ли не спинным мозгом осознаю, что та же самая комбинация убьет несколько минут моего труда. Эффективные комбинации для работы с текстом, закрепленные годами тренировок работают в емаксе, но совершенно бессмысленные в какой-нибудь другой программе, где нужно делать то же самое — редактировать текст. Зачем всё это? Я должен помнить кучу разных интерфейсов для того, чтобы делать одну и ту же механическую работу по редактированию текста. Но мозги не резиновые.
Есть и другие значимые интерфейсы, но острота проблемы для них разная. Например, общие операции с окнами консолидированы в оконном менеджере. И мне не нужно запоминать, что эта программа закрывается по C-q, а та — по A-F4, я просто жму комбинацию, прописанную как «закрыть окно» в настройках моего xmonad. Лишь некоторые особо извращенные приложения не хотят подчиняться общим правилам, и рисуют свои всплывающие меню в непотребных местах и плодят дочерние окна, которые xmonad не знает, как разместить.
Как с этим всем бороться, не знаю. Проблема слишком фундаментальна. Нельзя же заставить всех разработчиков ПО ходить строем.
Есть некоторые идеи по поводу интерфейса текстового редактора. Во-первых, это не один интерфейс, а целая система, отчасти иерархическая: бывает базовый консольный интерфейс (который тянется с самых древних консолей), есть несколько видов примочек к нему, например readline с историей и completion'ом. Эта часть как раз неплохо специфицирована как интерфейс (возможно именно поэтому многие люди предпочитают терминал гуям). Далее идет редактирования уже не строк, а текстов. Затем, редактирование специализированных текстов (как, например, xxx-mode в емаксе для редактирования файлов типа xxx). Ну и далее пошли IDE с наворотами. Это я вкратце обрисовал иерархию тексторедактирующих интерфейсов; разумеется, она не линейна, есть всякие ответвления. Так вот, я предлагаю каждый такой уровень жестко специфицировать — описать функциональность редактора в виде абстрактного набора команд. Для уровня readline можно считать, что такой набор уже есть (beginning-of-line, forward-char, previous-history и т.п., см. man 3 readline). Важно, что эти команды никак не привязаны к кнопкам. Все привязки должны быть ортогональны самому интерфейсу и отчуждаемы. То есть я могу взять привязку по умолчанию или создать свою и привыкнуть к ней раз и навсегда, чтобы потом мог сказать любой операционной системе на любом компьютере: «возьми мою привязку к данному интерфейсу и примени ее ко всем программам, его использующим». Разумеется, возможны конфликты привязок интерфейсов разного уровня, но это всё решаемо без насилия над пользователем.
Все так же как и во времена Генри Форда: «Если бы я спросил людей, чего они хотят, они бы попросили более быструю лошадь»
Основная проблема в том, что у одного и того же продукта интерфейс может меняться непредсказуемо. Как между версиями (а откатиться назад и сидеть на старом по нынешнему дырявому времени как-то не), так и даже в процессе работы с программой.
Самый вопиющий пример, который я помню, это режим document preview в офисе. Открывает пользователь документ — а он весь какой-то мелкий (в смысле, страницы мелкие), и неудобный и весь какой-то не такой.
Но даже в старом добром шелле я могу назвать такие вопиющие примеры. Например, обработка ctrl-c в bc. Омерзительно.
Унифицируйте всё, и пользователи будут покупать продукт только известной корпорации.
По-моему, очевидно ложное утверждение (все используют ascii, какой ужас, ведь он такой унифицирующий!). Стандарты (открытые) никак не ограничивают богатство реализаций и, кроме того, играют важную роль в развитии СПО. А вот хитрые корпорации, стремясь монополизировать отдельные сегменты рынка и устроить vendor lock пользователям, нередко пытаются продавить свои альтернативные стандарты и обложить всю поляну патентами. Более того, мой опыт показывает, что больше всего неудобств, связанных с неунифицированностью, вызывают именно проприетарные программы.
Вот взять пианино. Пока оно должно только издавать стандартный, однократно прошитый набор звуков, оно просто. А теперь представим, что производитель добавил в пианино возможность звучать как гитара, или как труба. Тут уже придётся добавлять кнопки переключения. А теперь добавим туда ещё и возможность создавать светомузыку — чтобы нажатия клавиш ещё и подсветку генерировали, причём эту подсветку тоже хорошо бы настраивать. А потом туда ещё и кондиционер всунуть, а то пианисту может быть слишком жарко в процессе игры…
И всё. Внезапно получается, что мы уже не можем просто так извлечь звук из пианино, т.к. сразу же нас начинает морозить, да ещё и вспышки какие-то, и как отключить — неясно. Да ещё почему-то на некоторых аккордах раздаются звуки трубы.
Так же и с микроволновкой. Наверное, первые модели имели только один переключатель: вкл/выкл, а время засекал сам пользователь. Тут при всём желании невозможно было испортить интерфейс. Но как только в микроволновку напихали сотни функций (вплоть до встроенного WiFi) — интерфейс неизбежно стал слишком сложным.
Я, кстати, часто предпочитаю командную строку именно по причине, указанной в статье. Бывает, конечно, что и новое что-то нужно осваивать, к примеру, лет 5 назад для меня Docker был новым, за сколько-то ещё лет до того — Git. Но зато освоив, я могу быть уверенным, что команда вроде git log --pretty=format:"%h %s"
будет значить то же самое и через 10 лет, а GUI нынче таков, что даже если в Skype сейчас узнал, как сделать screen share, то через полгода надо будет узнавать заново. Причём в последние 10 лет всё больше мода делать только одну кнопку для конкретной функции, и если нужно это выполнить… как б это сказать без мата… в общем, приходится все тщательно застрятанные вкладки перебирать в поисках этой кнопки. Причём, даже если Google в запросе и выдаст ссылку на решение именно этой проблемы, 99 шансов из ста, что оно будет относиться не к той версии, в которой это найти нужно, а шансы, что попадаётся ссылка именно на решение именно для этой версии, примерно как виграть в лотерею.
А указывать версию софта в поисковом запросе не пробовали?
Дело в том, что если переход с автомата на механику требует некоторого времени и переучивания (все как в статье), то переход с механики на автомат — это минут пять-семь.
Это я по себе смотрю и по знакомым. Единственное, что происходит неправильное — в момент полной остановки ищешь педаль сцепления, чтобы не заглохнуть. Это и происходит в первые пять-семь минут, а потом привыкается. В остальных случаях попыток найти педаль сцепления вообще нет. Просто потому, что машина не дает обратной связи «пора переключить передачу».
Так что либо пример неверен, либо теория дает сбой.
Кстати, а что по этой теории происходит, если какие-то функции в новых версиях программы вообще не требуется делать, потому что программа делает это сама автоматически и очевидным способом?
Такой вариант (когда всё сводится к некоему стандарту, соблюдение которого «само собой» всё делает) — идеальный, но происходит он очень редко, и обычно не в режиме «больше не надо настроек», а «в настройку добавляется ещё переключатель в режим „не надо настроек“, показывающий диалог настройки режима совместимости режима „не надо настроек“ с системами, этого режима не понимающими»".
Да, кстати, менее вопиющий пример. Переход на wifi и celular. В первых устройствах это был ручной режим с жутко геморройным режимом настройки и шаманством при переключении. Сейчас все работают и никто про это не думает (кроме момента, когда wifi плохой его лучше выключить и остаться на cellular).
А вот внезапный переход с переднего на задний привод в процессе вождения на скорости — это из разряда к счастью не сбывшейся фантастики.
Zanuda mode on. Вообще нежданчики с изменяющимся поведением и приводом — это как раз особенности сбывшейся фантастики.
Начиная от автоматически подключаемого полного привода, заканчивая системами стабилизации, которые могут сильно менять поведение в сторону от ожидаемого именно на ходу без участия и доброй воли пользователя.
Несколько лет назад митсу выпустили лансер с активным задним дифференциалом, многие не могли в раллях всяких ехать с ним быстро. Когда поняли логику работы — поехали быстрее. Для них это было существенным изменением поведения авто, поначалу новая система работала непонатно и, что важно, нелогично.
Вальтер Рёрль — легендарный гонщик, регулярно обкатывает свежие порши на нюрбургринге. Как то раз он сказал: «Почему вы не сказали мне, что система стабилизации включена? Вы что, хотите убить меня?». Для него эта разница в поведении авто была очень заметна. И неожиданна, что характерно.
По поводу интерфейса точку зрения ТС не разделяю — c win95 до win7 он (интерфейс) практически не изменился (не более чем если человек пересядет с велосипеда «Украина» на современный двухподвес. Да, комфортнее немножко, но в целом все детали на своих местах остались.
Ну и традиционно сошлюсь на старую статью Витуса Вагнера «О вреде дружественных интерфейсов» — http://www.wagner.pp.ru/~vitus/articles/user-friendly.html. Его понимание программы как «раба» невероятно близко мне лично, и я разделяю его недовольство тенденциями.
С другой стороны – люди привыкают даже к неудобному (просто потому что когда-то технологически так было проще сделать), и не всегда это хорошо, и хочется поменять на решение, более удобное, когда развитие технологий это позволяет. Не менять не очень хорошо. Делать режимы совместимости в командно-строчном интерфейсе очень просто, но в GUI я не знаю ни одной нормальной реализации режима совместимости. Это только еще более усложняет и запутывает дело.
Изменения нужно делать постепенные, поэтапные, дозированные, давая возможность пользователям адаптироваться. Правда, не всегда это возможно. Когда появляются новые концепции управления программой, приходится делать большие изменения и просить всех переучиться. Важно, однако, чтобы это было не «шило на мыло», а что-то действительно кардинальное упрощающее жизнь, как в случае перехода к автоматической коробке передач. В этом смысле грешат, кстати, многие автопроизводители. Каждый раз, как я сажусь за свой BMW, я поражаюсь идиотизму конструкторов, придумавших новый хитрый поворотник на руле. Я уже езжу полгода на этой машине и регулярно ошибаюсь с этим поворотником. И главное – совершенно непонятно, зачем было этот огород городить.
Аналогичное изменение на пианино — насколько я помню, максимум, который можно увидеть — это наличие/отсутствие модератора, третью педаль (по сравнению с двумя). Всё остальное неизменно уже столетия.
Педали, кроме правой, используются настолько редко, что подавляющее большинство пианистов даже не подозревают об их назначении.
Три самые ненавистные вещи в компьютерах