Немного подустал писать друзьям «прочитай эту книгу, там такие идеи!» — поэтому попробую писать сюда заметки из книг, которые я прочитал. Плюсом буду немного структурировать полученную информацию и заново осознавать прочитанное. Всем плюс! Для первого раза пусть будет книга Джефа Раскина: там возникло много мыслей и разногласий и вообще книга интересная. Что ж, начнём.
Как ощущается хороший продукт с плохим интерфейсом.
Представьте себе, что вы поднялись на борт сияющего шикарной отделкой авиалайнера, оснащенного просторными, комфортабельными кожаными креслами с целым набором встроенной аудио- и видеотехники; в буфете вас ожидают отличная еда и напитки. Вы садитесь в свое кресло и смотрите в большой, чисто вымытый иллюминатор. Со вздохом предвкушения особенно приятного полета вы протягиваете руку к шкафчику впереди вас, чтобы поглядеть, что там. Сначала вы достаете весьма объемистую бутылку любимого напитка, а затем буклет с описанием этого замечательного воздушного лайнера. В то время как двери закрываются и идут приготовления к взлету, вы усаживаетесь поудобнее и начинаете читать. Из буклета вы узнаете, что интерьер самолета создан трудами самых лучших в мире дизайнеров, что повара из пятизвездочных отелей лично составляли меню и готовили блюда и что в группу разработчиков самолета не были включены инженеры-авиаконструкторы, поскольку всемирно признанные дизайнеры сделали внешний вид самолета таким, что и без того создается впечатление авиалайнера, способного летать во много раз быстрее, чем любой другой. Еще в буклете мелким шрифтом сообщается, что путешествие на этом самолете нередко даже в хорошую погоду сопровождается болтанкой и что достаточно регулярно с ним случаются катастрофы. Если же перелет обойдется без этих инцидентов, то в целом, как обещают авторы, ваше путешествие будет комфортным и интересным. Теперь звук закрывающихся дверей внезапно принимает угрожающее значение, вы теряете спокойствие и чувствуете, что попали в ловушку. Вы начинаете думать, что именно этот рейс обречен и что вы предпочли бы сейчас сидеть в более жестком кресле, без любимого напитка и даже без бокового иллюминатора, лишь бы только самолет был оборудован хорошей и надежной техникой.
<...> качество любого интерфейса в конечном итоге определяется качеством взаимодействия между одним человеком и одной системой – между ней и вами. Если индивидуальное взаимодействие с некоторой системой не проходит для пользователя легко и комфортно, то в результате этот недостаток негативным образом отражается на качестве работы всей системы, независимо от того, насколько она хороша в других своих проявлениях.
Интерфейс — это, прежде всего, способ взаимодействия.
Интерфейс – это нечто большее, чем окна, пиктограммы, выпадающие меню и мышь.
Ну я же говорил.
<...> способ, которым вы выполняете какую-либо задачу с помощью какого-либо продукта, а именно совершаемые вами действия и то, что вы получаете в ответ, и является интерфейсом.
Кстати, те странные сигналы по радио — служебные сигналы для настройки часов на радиостанциях. И ещё похоже, что книга написана до того, как придумали NTP сервера для настройки времени, или Раскин не знал про них.
<..> лучшим вариантом были бы часы, в которых время автоматически устанавливается по сигналам точного времени, передаваемым по радио.
Мы слишком усложнили программное обеспечение и забыли главную цель.
— Джим и Сандра Сандфорс
<...> мы хотим, чтобы программное обеспечение было простым и понятным, своим безупречным поведением показывая нам, что его создатели больше работали над удобством использования, нежели над привлекательным внешним видом своего продукта.
Как в программировании — сначала интерфейс.
Интерфейсом удобнее всего заниматься именно на начальных стадиях разработки. И если специалисты по интерфейсам привлекаются уже после того, как программное обеспечение спроектировано и определены его инструменты или когда разработка программы уже почти завершена, то их рекомендации могут потребовать переделки всей выполненной работы, что, естественно, является неприемлемым.
Определив задачу, для которой продукт предназначен, сначала спроектируйте интерфейс, после чего приступайте к его реализации.
Просто делай свою работу, а наружу давай результат.
Пользователи не задумываются над тем, как устроена машина, пока она справляется со своими задачами. При этом не имеет значения, какой именно процессор используется и является ли язык программирования объектно-ориентированным, многопоточным или, быть может, называется какими-то другими умными словами. Для пользователей важнее всего удобство и результаты. Но все, что они видят, – это интерфейс. Другими словами, с точки зрения потребителя именно интерфейс является конечным продуктом.
Раскин перефразировал первый закон робототехники Азимова:
Система должна рассматривать все данные, вводимые пользователем, как бесценные.
Самое главное у дизайнера — эмпатия.
<...> следует развить в себе способность чувствовать те трудности, с которыми сталкиваются люди. И это не всегда просто. Мы настолько привыкли к тому, как работают программы, что соглашаемся принять их методы работы как данность, – даже в тех случаях, когда их интерфейсы неоправданно сложны, запутанны, неэкономны и побуждают людей к ошибкам.
Чтобы программисты не вешали вам лапшу, учите матчасть!
Не требуется обладать большими техническими знаниями, чтобы понять, что большая пропускная способность коммуникационных линий может ускорить передачу веб-страниц. Однако другие взаимосвязи иногда бывают не столь очевидны. Поэтому для разработчиков интерфейсов «человек-машина» важно знать внутренние механизмы технологии. В противном случае у них не будет возможности оценивать достоверность утверждений, высказанных, например, программистами или специалистами по аппаратной разработке относительно осуществимости тех или иных элементов интерфейса.
Наука эргономика
<...> [изучает] информацию, основанную на свойствах и возможностях человеческого скелета и органов чувств. Совокупность сведений в этой области составляет науку эргономику.
Когда был популярным паровой двигатель, человеческое тело представляли как набор котлов и насосов. Когда появился компьютер — как программы и электрические сигналы. Сейчас пытаются объяснить, используя нейросети. А вот Джеф предлагает использовать метафору интернета.
Я предполагаю, что в ближайшие несколько лет появится большое количество психологических теорий, использующих архитектуру «клиент-сервер», Интернет и Всемирную сеть с ее гипертекстовыми ссылками и броузерами в качестве моделей работы отдельных аспектов сознания.
Но не стоит воспринимать это буквально.
<...> без непосредственного подтверждения того или иного примера функционального параллелизма следует избегать слишком буквального понимания метафор, в которых человеческий мозг уподобляется компьютеру.
Рефлексия ☝.
<...> поразительно, что мы строим модели нашего мозга внутри нашего мозга.
Что такое локус внимания.
Различие между фокусом и локусом внимания можно понять на примере следующего предложения: «Мы можем целенаправленно сфокусировать наше внимание на каком-либо локусе». Тогда как фокусировать означает волевое действие, мы, тем не менее, не можем полностью управлять содержанием локуса нашего внимания.
Все, что стоит сделать хорошо, сначала стоит сделать плохо.
— Дик Карпински
Насколько важно думать о привычках.
[Вы можете] <...> ходить экстравагантной хромающей походкой, подпрыгивая на каждом четвертом шаге и одновременно насвистывая какую-нибудь мелодию. Но если вы станете концентрировать свое внимание на деталях, на движении каждой мышцы, чуть ли не падая на каждом шаге и в последний момент вовремя выставляя ногу, чтобы все-таки не свалиться, то, в конце концов, вы вообще не сможете двигаться и будете только дрожать от напряжения. Как-то раз один наблюдатель сказал, что бейсболист в момент удара должен думать о своей технике, на что звезда бейсбола Йоджи Берра, в продолжение приведенной мысли Льюиса, ответил с характерной краткостью: «Как можно думать и бить одновременно?»
Любая привычка означает отказ от внимания к деталям.
На языке когнитивной психологии любая задача, которую вы научились выполнять без участия сознания, становится автоматичной. Автоматизм позволяет выполнять сразу несколько действий одновременно. Все одновременно выполняемые задачи, за исключением не более чем одной, являются автоматичными. Та задача, которая не является автоматичной, естественно, находится непосредственно в локусе вашего внимания. Когда вы выполняете одновременно две задачи, ни одна из которых не является автоматичной, эффективность выполнения каждой из них снижается в результате конкуренции за область внимания. Этот феномен психологи называют интерференцией. Чем более предсказуемой, автоматичной и бессознательной становится задача, тем больше становится эффективность её выполнения одновременно с другими задачами, и, тем менее, она конкурирует с ними (Baars, 1988, с. 33)
<...> человек не может избежать формирования автоматических реакций. Эта невозможность не зависит от повторения: никаким количеством повторений нельзя научиться не формировать привычки при регулярном использовании того или иного интерфейса. Формирование привычек является неотъемлемой частью нашего ментального аппарата. Его невозможно остановить волевым действием.
Если вы хотите сформировать привычку — прекратите обращать на неё внимание.
Когда вы повторяете какую-то последовательность действий, единственный способ предотвратить формирование привычки – это удерживать то, что вы делаете, в локусе внимания. Это очень сложно. Как обычно говорят, наше внимание «гуляет».
Если спрашивать подтверждение для рутинной операции, то подтверждение становится частью операции и входит в привычку. При этом менять подтверждение и операцию можно сколь угодно много — привычка уже сформировалась.
«Если вы случайно удалите какую-то часть постоянной записи – что трудно сделать, поскольку компьютер всегда спросит вас о подтверждении операции…». К сожалению, Смит и Дьюэл дают нереалистичную оценку ситуации – ведь вы вполне можете случайно удалить запись, даже если упомянутое подтверждение было получено. Так как ошибки случаются редко, вы обычно будете отвечать Y («Да») на любую команду, которая требует подтверждения. Из-за постоянного повторения ввод Y после команды удаления вскоре становится привычным действием и, вместо того чтобы остаться отдельной ментальной операцией, превращается в часть действия по удалению файлов.
<...> любой запрос о подтверждении, требующий установленного ответа, вскоре становится бесполезным.
Вместо череды подтверждения — дайте право вето.
Более эффективный подход заключается в том, чтобы дать пользователю возможность отменить ошибочную команду, даже если после нее были совершены какие-то другие действия.
Действия by design, а не по каким-то правилам.
Если по тем или иным причинам, скажем, связанным с правами доступа, какой-либо файл никогда не должен быть удален пользователем, следует предотвратить саму возможность такого действия.
Даже если пользователь будет вводить обоснование удаления, – такой метод особенно подходит для ситуаций, связанных с соблюдением правомочности действий, – это, в конце концов, приведет к тому, что он станет каждый раз выбирать один и тот же стандартный ответ.
Единственный способ избежать подобных ошибок – это предусмотреть в интерфейсе неизбежность формирования привычек.
Минимализм это не мода. Минимализм это здравый смысл.
Системы должны разрабатываться таким образом, чтобы пользователь имел возможность сосредоточиться на своей работе. Интерфейсы следует разрабатывать с расчетом на то, что пользователь, поглощенный своей задачей, не станет даже реагировать на ваши попытки пообщаться с ним. Интерфейс должен хорошо работать независимо от степени поглощенности пользователя.
Надо разрабывать продукт, учитывая эмоции пользователя, которые он может испытывать в момент использования.
Чем более критической является задача, тем меньше вероятность того, что пользователь заметит предупреждения относительно тех или иных потенциально опасных действий. Предупреждающее сообщение с наибольшей вероятностью может остаться незамеченным именно в тот момент, когда информация, содержащаяся в нем, имеет наибольшую ценность.
Размышления по поводу невозможности настоящей многозадачности.
Каким образом такие ограниченные возможности оказались приемлемыми? Как было бы замечательно, если бы мы могли читать одну книгу, а писать другую, говорить с приятелем и еще наслаждаться какой-нибудь вкусной едой, и все это одновременно. Определенно, возможности нашей нервной системы кажутся достаточными для того, чтобы совершать все эти действия в одно и то же время. Стандартный ответ про некие «физиологические» ограничения – что у нас только две руки и один рот – кажется неубедительным, поскольку он приводит к другому вопросу, который еще более усложняет проблему: почему организмы, наделенные самым совершенным мозгом в животном царстве, не развили у себя руки и рты, чтобы нормально управляться с несколькими параллельными процессами? А также – почему наша способность к параллельной обработке информации возрастает с автоматизмом и уменьшается по мере того, как в процесс вовлекается сознание?
Наличие у человека только одного локуса внимания имеет и положительные стороны. Фокусники эксплуатируют это свойство нашей психики самым бесстыдным образом. Хороший фокусник может так зафиксировать внимание всей аудитории на одной руке, что ни один зритель не заметит того, что в это время делает другая его рука, хотя она никак и не скрыта.
Творите магию.
<...> мы можем производить изменения во всех остальных частях системы, зная, что они его не отвлекут. Этот эффект был использован при разработке компьютера Canon Cat. Когда пользователь прекращал работу, компьютер сохранял на первой дорожке диска побитовое изображение экрана именно в том виде, который был на момент остановки работы. Когда пользователь возвращался к работе, на экран за долю секунды помещалась та самая картинка. Человеку необходимо около 10 секунд для того, чтобы переключиться с одного контекста на другой или мысленно подготовиться к предстоящей задаче (Card, Moran и Newell, 1983, с. 390), в то время как компьютеру Canon Cat требовалось всего лишь 7 секунд, чтобы считать с диска остальную рабочую часть информации. Поэтому, пока пользователь смотрел на статичное изображение на экране, вспоминая, чем он занимался, и решая, что он собирается делать далее, в его локусе внимания находились приготовления к предстоящей задаче, а система тем временем завершала загрузку. Только после этого экран становился активным, хотя и не меняя своего вида – за исключением того, что курсор начинал мигать.
Компьютер Canon Cat имел свойство при запуске всегда возвращаться к последней задаче. Более того, на экране появлялось именно то изображение, включая позицию курсора, которое было на момент последнего его использования. Многие пользователи говорили, что когда они видели на экране ту же самую картинку, это помогало им быстрее вспомнить, чем они занимались, когда последний раз пользовались машиной, поэтому возвращаться к работе с Canon Cat было для них более приятно, чем к работе с компьютером, который при запуске отображал рабочий стол.
Опять первый закон робототехники:
«Никакая система не может причинить вред содержанию или своим бездействием допустить, чтобы содержанию был причинен вред»
Поскольку люди более уступчивы, чем компьютеры, бывает легче заставить человека приспособиться к ограничениям компьютера, чем создать компьютер, приспособленный к потребностям человека. И когда это происходит, человек попадает в подчинение к компьютеру, а вовсе не освобождается им.
— Карла Дженнингз
Ранее было скзаано, что при автоматизме не замечаются мелочи. Но если эти мелочи не проработать, то автоматизма не случится.
Заниматься разработкой интерфейсов и при этом не обращать внимания на такие детали – все равно, что пытаться исполнить скрипичный концерт, иногда забывая диезы и бемоли, обозначенные в нотной записи. Такие ошибки раздражают слушателя тем, что отвлекают его внимание от музыки. Точно так же мелкие ошибки в интерфейсе затрудняют ход работы пользователя.
Кастомизация — способ снять с разработчиков ответственность. Поэтому выдавать её надо осторожно.
Возможности установки пользовательских настроек являются одним из примеров режимов и представляют собой большой источник расстройств для пользователя. Как ни странно, но такие возможности обычно подаются как некие преимущества для пользователя. Существующие сегодня интерфейсы зачастую оказываются настолько трудными в применении, что сам пользователь может чувствовать желание как-то перестроить их.
Пользовательские настройки – это такие изменения в программном обеспечении, которые не отражаются в документации. Например, во время использования Word я попытался отключить функцию, которая была мне неизвестна. В Справке я узнал, что мне следовало всего лишь щелкнуть по соответствующей кнопке на стандартной панели инструментов. Однако человек, который пользовался программой до меня, изменил эту панель инструментов с помощью окна пользовательских установок, и поэтому необходимой кнопки на ней не было, и мне потребовалось много времени, чтобы разобраться, как наладить работу программы нужным мне образом. Этот инцидент указал на еще более важную проблему применения пользовательских настроек, а именно: как можно протестировать качество интерфейса или написать документацию для системы, если ее конфигурация разработчикам не известна заранее? В описанном мною случае изменение режима, произведенное предыдущим пользователем, сделало документацию неверной.
Снабжая программу настройками, мы обременяем пользователя задачей, которая не относится к его рабочим функциям. Пользователю, скажем, электронных таблиц приходится изучать не только эти электронные таблицы, но и опции по их настройке. Время, которое тратится на изучение и выполнение пользовательских настроек, большей частью является потерянным с точки зрения текущей задачи.
Персональные настройки кажутся удобными, демократичными, допускающими расширения, полными свободы и радости для пользователя, но, тем не менее, я не знаком ни с одним исследованием, в котором говорилось бы о повышении продуктивности, а также объективном улучшении юзабилити и облегчении в изучении системы. Добавление функций пользовательских настроек, безусловно, усложняет систему и делает ее более трудной для изучения. Могу предположить, что если вы проведете опрос пользователей, то большинство из них будет в восторге от большого количества параметров, настраиваемых самим пользователем. Однако здесь следует сказать, что когда только появились первые графические пользовательские интерфейсы, большинство пользователей утверждало, что никогда не захотят ими пользоваться. Также важно отметить, что пользователи настраивают интерфейсы в соответствии со своими субъективными представлениями. Наблюдения, сделанные во многих экспериментах, показывают, что интерфейс, который оптимизирует продуктивность, не обязательно является интерфейсом, который оптимизирует субъективные оценки.
Если пользователь сделал для себя лучше с использованием простых настроек, то такие настройки надо делать по умолчанию.
Основная мысль этого утверждения заключается в том, что если мы являемся опытными разработчиками интерфейсов и можем в максимальной степени оптимизировать данный интерфейс, то пользовательские настройки могут только ухудшить работу этого интерфейса. Поэтому следует с осторожностью предоставлять пользователю возможности по установке личных настроек. Если пользователь может действительно улучшить работу интерфейса, внеся в него всего лишь несколько полезных изменений, – это значит, что, вероятно, мы плохо сделали свою работу.
Дальше будет использоваться понятие режима. То ли я пропустил определение, то ли ещё что-то. Напишу тут по-своему. Режим — определённое состояние интерфейса; переключение между режимами требует от пользователя умственных усилий, чтобы изменить стиль работы, шорткаты и прочее.
Ещё немного из «творите магию».
С целью избежать режимы, компьютер Canon Cat был спроектирован без кнопки включения питания. Если продукт реагирует на жесты в зависимости от того, включен он или нет, то, следовательно, кнопка включения питания вводит режим (модальность). Для экономии энергии Canon Cat автоматически переходит в режим пониженного энергопотребления, если в течение 5 минут компьютер не используется. Во избежание превращения этого состояния в режим, было предусмотрено, чтобы любое действие пользователя или любое входящее сообщение без заметной задержки возвращало компьютер в обычное состояние. Кроме этого, действие пользователя не только «оживляло» компьютер, но и выполнялось так же, как если бы машина не находилась в режиме ожидания.
Во многих системах при нажатия любой клавиши компьютер выходит из режима ожидания, но эти нажатия, а также все последующие, сделанные до того, как система полностью «проснется», не производят действия, для которого они были предназначены. Возможность не терять никакие нажатия клавиш было довольно элегантным решением. Например, если у вас случилось вдохновение или вам потребовалось написать записку во время телефонного разговора, вы могли просто начать печатать, не заботясь о том, в каком состоянии находится Саnon Cat, или даже не глядя на монитор. Отсутствие режимов (немодальность) характерно тем, что когда у вас появляются привычки в пользовании интерфейсом, вам не нужно задумываться или планировать выполнение того или иного действия, поэтому внимание целиком сосредоточено только на содержании вашей работы.
F-ные клавиши — самый яркий пример режима.
Программируемые клавиши, которые могут иметь разные назначения, влияющие на экранные кнопки, или кнопки настройки дисплея имеют те же слабые места, что и кнопки с изменяемыми значениями. Сходная проблема возникает при использовании функциональных клавиш, которые на многих компьютерах обозначены символами от F1 до F12. Если бы их функции оставались неизменными, то такое название, конечно, являлось бы неудобным. Если же их функции изменяются, то вы не можете пользоваться этими клавишами автоматично. В любом случае их можно назвать неудачным решением.
Ещё пример режима.
В автомобильном радиоприемнике удобство использования жертвуется в пользу меньшего числа кнопок и небольшого размера лицевой панели. Худшим свойством конструкции этого приемника является то, что для того чтобы узнать, какой из рядов предварительных настроек сейчас активен, вы вынуждены отрывать взгляд от дороги, иначе вы не найдете нужной вам станции. (Чтобы переключиться с AM на FM или наоборот, требуется найти и нажать две кнопки, тогда как в приемнике Sony достаточно нажать только одну кнопку, чтобы перейти на заранее настроенную волну.)
Тут метафоры, но на самом деле идея создания интерфейса из того расчёта, что им будут пользоватся незрячие — вполне себе здравая. Мало того, что он будет полезен определённой аудитории, так такой подход позволит пересмотреть его проектирование с нуля.
Элементы интерфейса часто можно называть привычными в том случае, что они могут легко использоваться «слепым» пользователем. Интерфейсы, построенные на основе принципов, изложенных в этой книге, часто могут использоваться даже слепыми пользователями, – а по отношению к тому, что находится вне нашего локуса внимания, мы все являемся в самом прямом смысле слепыми.
Контент пользователя > нужды системы.
В основном существует только два типа сигналов, которые вы вводите в компьютер или другое устройство для обработки информации: те, которые служат для создания содержания, и те, которые используются для управления системой. В этом отношении предлагается следующий практический подход: квазирежимы должны использоваться для управленческих функций, тогда как для создания содержания должны применяться операции без задействования квазирежимов . Именно этот подход можно считать наиболее верным, поскольку управлять системой, удерживая кнопку для включения квазирежима, труднее. Однако важнее, чтобы пользователь мог больше времени уделить созданию содержания и работе с ним, а не применению различных команд для управления системой.
Возможно, я один такой, но меня бесит навигация в терминале макдака (Вкусно и точка, простите). Меня сначала спрашивает, как я хочу забрать заказ — с собой или в зале — и только потом позволяют собрать заказ. Вместо того, чтобы думать над бургерами, я думаю над подносом и пакетом.
В исходном варианте процесс состоял из трех шагов: 1. Необходимо выбрать отдел, для которого заказ был предназначен. Для этого следовало поставить флажок рядом с названием отдела. Один из флажков, соответствующий отделу, в котором находился данный компьютер, был установлен по умолчанию. 2. Требовалось выбрать необходимые товары из прокручиваемого списка. Рядом с каждым товаром находилось текстовое окно ввода, в которое можно было занести заказываемое количество каждого товара. 3. Необходимо щелкнуть по одной из двух кнопок внизу дисплея: либо «Отменить заказ», либо «Подтвердить заказ». Первая проблема состояла в том, что пользователи не могли выбрать свой отдел, если они делали заказ не со своего рабочего места. Разработчики компании предложили отменить установку отдела по умолчанию, вынуждая пользователей каждый раз сначала выбирать отдел. Они заметили, что в этом случае единственно возможная ошибка связана только с выбором неправильного отдела. Тем не менее, такое решение раздражало тех пользователей, которые обычно работали за своим компьютером, и необходимость каждый раз вводить информацию, которая уже была доступна системе, вызывала раздражение. По сути дела, проблемой являлась все та же ситуация «глагол-существительное». Сначала необходимо было ввести, что вы хотите сделать (доставить эти товары в этот отдел), и затем выбрать, что именно вы хотите доставить. Однако при открытии окна заказа в локусе вашего внимания находятся (или только что находились) товар или товары, которые вам нужны.
В измененном варианте интерфейса выбор отдела являлся действием, т. е. глаголом, после которого информация об отмеченных товаpax отправлялась для обработки. Психологически это стало действием, завершающим всю операцию заказа, а не предваряющим его. Кроме того, следует отметить, что к этому моменту бланк заказа уже заполнен, и внимание пользователя сместилось с самих товаров на необходимость их доставки. Таким образом, ход работы стал соответствовать тому, куда обычно следует внимание пользователя.
Сюрприз. Игры — просто программы. Сама по себе игра — интерфейс, где задачей пользователя является выполнение миссии. Но в играх есть свой интерфейс: карта там, меню, полоса здоровья. Т. е. у нас интерфейс внутри интерфейса...
Многие компьютерные игры являются, по сути дела, недокументированными интерфейсами, в которых способы управления или пути достижения желаемых результатов невидимы. Стоит добавить к этим играм документацию, и они станут неинтересными. Однако большинство людей не хотят играть в игры, когда им требуется выполнить свою работу, поэтому перед разработчиком интерфейсов стоит задача сделать каждый элемент своего продукта видимым.
☝😔
Человек – слишком сложный организм. Если уж ему суждено исчезнуть, то вымрет он от желания простоты.
— Эзра Паунд
В первую очередь мы люди, а потом, уже либо эксперты, либо новички.
— Клиффорд Насс
Сразу видно, что Раскин жил во времена отсутствия нормальной адаптивности.
Большинство попыток сделать интерфейс адаптивным оказываются неблагоразумными. Всякий раз, когда система автоматически как-то изменяется, даже если эти изменения настолько же незначительны, как и, скажем, измененный порядок элементов в меню, ваши ожидания от работы системы не оправдываются, и накопленные привычки и навыки теряют смысл.
Цель точной науки заключается в том, чтобы свести проблемы природы к установлению количеств посредством операций с числами.
— Джеймс Клерк Максвелл «К вопросу о фарадеевых силовых линиях» (1856)
До сих пор так.
Например, при попытке скачать какой-нибудь файл с America Online с помощью броузера (например, Netscape) очень часто возникает большая задержка. При этом не появляется никакого признака, что действительно что-то происходит. Возникает только небольшое статическое сообщение о том, что компьютер ждет ответа, но оно находится далеко за пределами локуса внимания пользователя. Через несколько секунд неопытный пользователь начинает кликать по кнопкам на экране, что приводит к остановке загрузки файла – опять же без всякого сообщения об этом. Если задержки неизбежны, важно, чтобы в интерфейсе была предусмотрена сообщающая о них обратная связь, – например, можно использовать индикатор хода выполнения задачи (status bar), отражающий время, оставшееся до конца операции. Если неизвестно, сколько именно времени займет операция, так и скажите об этом пользователю! Нельзя лгать пользователю или вводить его в заблуждение.
Аккуратный подсчет есть путь к знаниям всех существующих вещей и тайных секретов.
— Папирусы Рхинда, 1650 г. до н. э.
Если принять точку зрения, что внутри почти всех приложений, использующих общие аппаратные средства, акцент делается на унификацию физических действий, у нас появляется возможность разработать всеобъемлющий и в то же время простой интерфейс.
Много слов Джеф посвятил тому, как избавиться от модальности, а тут выясняется, что вся работа за компом — одна большая модальность.
Разные приложения имеют разные наборы команд, и пользователь обычно не может в целом использовать команды приложения А при работе с приложением В или наоборот. Если же сделать команды независимыми от приложений, то тем самым мы сможем устранить модальность, которая изначально им присуща.
Почему надо избавиться от модальности в компах.
<...> унификации общее количество команд, которое пользователю придется запоминать, существенно сократится, – главным образом потому, что унификация позволит избавиться от огромного числа повторений команд.
Хм. А вот у смартфонов команд вроде не так уж и много: свайпы, пинч-ту-зум, долгие удержания и... всё?
Например, в компьютере Canon Cat с помощью всего 20 команд можно было управлять текстовым процессором, электронными таблицами, созданием, сортировкой и обработкой баз данных, вычислениями и т. д. В современных системах аналогичной мощности используется более 100 команд для выполнения того же самого набора задач. Тысячи команд, которые используются в современных средах, можно было бы сократить до сотни.
Полумеры для избавления от режимов и модальности.
Так как не все команды могут применяться ко всем типам данных, возникнет необходимость применять к объектам преобразователи типов данных, чтобы создать новые объекты, к которым при определенных условиях уже можно будет применить выбранную команду.
Тут начинается странная часть, где Раскин грезит текстовым интерфейсом. Я так и не понял это.
<...> меню представляют собой всего лишь какой-то текст. Почему бы тогда не дать возможность пользователю самому составлять список часто используемых команд, защитить его от случайного изменения, прикрепить наверху экрана и использовать его как обычное системное меню? Для упрощения создания таких меню в интерфейсе можно было бы предусмотреть возможность блокировать и разблокировать какой-то текст, а также возможность его перемещения вместе с другим содержанием или закрепления в каком-то месте на экране. Текст может быть в разных состояниях. Хотя Eudora и Microsoft Word являются программами, в которых можно изменять меню, тем не менее, для изменения его содержания вы должны использовать только специально предназначенные для этого средства. В данном случае мы как раз и говорим о том, что должна быть возможность создавать меню обычными средствами создания и редактирования текстов. В этом смысле меню можно рассматривать как содержание.
А использование браузера — сплошной скроллинг.
Если вы посмотрите на человека, который работает с каким-нибудь существующим сегодня стандартным компьютерным оборудованием, но не будете видеть, что отображается на экране монитора, и знать, какую задачу оператор выполняет, и, в общем, не сможете предположить, что он делает. Конечно, здесь возможны исключения. Если вы видите, что пользователь пристально смотрит на экран и маниакальным образом вращает ручку джойстика под ритмичные и повторяющиеся звуки, то сможете догадаться, что, скорее всего, он играет в какую-то компьютерную игру. Но, в целом, действия пользователя при использовании одного приложения, например текстового процессора, в большой степени похожи на действия, которые он выполняет при использовании других приложений, например баз данных или электронных таблиц. Такое однообразие действий пользователя в разных приложениях подсказывает нам, что интерфейсы для различных приложений не так уж и отличаются друг от друга, как вам самим это может показаться при использовании этих приложений. Приложения отличаются друг от друга больше потому, что вы обращаете внимание на содержание того, что выполняется, т. е. на различные изменения смысла каждого действия.
Интерфейс, построенный вокруг ввода текста? Canon Cat? CLI? Spotlight для всего?
Другой аспект, который является общим почти для всех приложений, заключается в том, что при их использовании требуется вводить какой-то текст. (Даже в играх вам иногда приходится вводить собственное имя в случае выигрыша.) Поэтому стоит подумать над тем, чтобы обработка текста – будь это небольшой текст, как, например, цепочка символов в строке поиска, или, наоборот, большой текст, как, например, текст романа – была обеспечена набором удобных и эффективных команд.
Разработка интерфейсов должна быть основана на идее, что любые объекты, которые выглядят одинаково, одинаковы.
Undo и Redo надо внедрять везде.
Операторы Отменить и Повторить являются основополагающими, и их функция настолько важна, что в будущих системах для них должна быть предусмотрена специальная клавиша.
Я как писатель-фантаст уверен, что этот чертов робот должен говорить на человеческом языке, а не наоборот.
— Спайдер Робинсон
А что если бы у шорткатов были бы подсказки, как у слов на клавах смартфонов? Зажал ты Ктрл, у тебя на экране появилась иконочка клавиши + все возможные комбинации для сочетаний с командами, за которые они отвечают. Возможно, это будет слишком громоздко в какой-нибудь IDE, но в небольших прогах, мне кажется, это было бы прикольным.
Однако широкое использование клавиш-модификаторов, особенно в сочетаниях клавиш, очень часто приводит к появлению чрезвычайно сложных комбинаций, в которых можно просто «сломать пальцы». Кроме того, комбинации редко бывают запоминаемыми или понятными. (Знаете ли вы, какое действие выполняет на вашем компьютере сочетание «Control»+«Shift»+«Option»+«\»?) Запомнить различные сочетания клавиш не просто. Такое запоминание является недопустимым требованием к памяти пользователя. Кроме того, такие команды нарушают критерий видимости, если только в системе каким-то образом не отображается то, какой результат будет получен при применении той или иной команды.
А ещё Раскин будет часто предлагать внедрить новые клавиши. Я понимаю, что текущая привычная qwerty тоже менялась до сегодняшних дней, но ради таких небольших фичи... Не лучше ли просто как часть контекстного меню сделать?
А ещё такой есть калькулятор с такой идеей, даже лучше: Намбр.
Предположим, что на клавиатуре есть клавиша «Вычислить» (Calculate). При нажатии на эту клавишу текущая выборка рассматривается как арифметическое выражение и вычисляется. Далее я буду использовать подчеркивание, чтобы показать выборку. Допустим, что текст является следующим: Я хочу купить 3+4 рубашек При нажатии на клавишу «Вычислить» он будет преобразован в следующий текст: Я хочу купить 7 рубашек.
В ВанНоуте можно решать подобные примеры в тексте. Достаточно написать пример, поставить знак равно и нажать пробел. OneNote сам всё посчитает и поставит ответ.
До нажатия на клавишу «Вычислить» 3+4 было обычным текстом, Он ничем не отличался от остального текста, за исключением того, что он был выделен. Пять символов (включая пробелы), из которых состояла выборка, можно было переместить или удалить, или же к ним могла быть применена любая другая обычная команда текстового процессора. Но в данном случае была использована операция Вычислить. Пользователю не потребовалось открывать окно калькулятора или вызывать специальное приложение.
Как Эпол пришли к идеи синергии софта и железа.
Вышеописанный пример со специальной функцией захватывания, которой может быть оснащена мышь, показывает, что при разработке интерфейсов программного обеспечения часто могут возникать идеи по улучшению аппаратного оборудования, так же как те или иные характеристики аппаратного строения могут приводить к улучшению программного обеспечения. Необходимо сказать, что всегда лучше разрабатывать аппаратное и программное обеспечение вместе, несмотря на то, что такая возможность редко случается. Попытки «подставить» чистый программный интерфейс в аппаратное оборудование, которое было разработано для другого интерфейса, редко могут дать удовлетворительные результаты. Тем не менее, в большинстве случаев это именно то, что мы должны сделать.
Почему пользователи не спрашивают многого с компаний. Ну и не только про это...
Люди скорее готовы страдать до последней возможности, чем защищать свои права через уничтожение тех форм правительства, к которым они привыкли.
— Томас Джефферсон, из Декларации независимости Соединенных Штатов Америки
Чем является имя файла? С точки зрения пользователя, это «ручка», за которую файл можно взять. По своему опыту мы знаем, что имена файлов работают не так, как этого стоило бы ожидать, – они мешают, когда нужно что-то сохранить, и бывают бесполезными, когда нужно что-то найти. Если говорить более конкретно, файловые имена становятся назойливыми, когда вы собираетесь что-то сохранить, так как вам приходится останавливаться в середине самого процесса сохранения, чтобы придумать имя для файла.
А вот Гугл Доки при установке названия предлагает первые несколько слов, что упрощает процесс.
Необходимость давать имена файлам увеличивает ментальную нагрузку на пользователя. Назначение имени не делает ничего, кроме добавления к самому файлу еще нескольких символов. И вам приходится запоминать этот файл только лишь по тому кусочку символов и больше ни по чему другому. Я считаю это одним из главных бедствий, которым страдают современные компьютерные системы. Этот метод используется также и во многих других информационных средствах.
Нужно больше поиска. Кроме шуток, нужно.
Между именем файла и самим файлом не должно быть различия. Человеческий мозг способен более эффективным образом использовать быструю, полнотекстовую поисковую систему, поэтому любое слово или фраза из файла может служить ключом к нему. (Более того, желательно, чтобы по запросу «письмо о стрекозе» выполнялся поиск чего-либо в форме письма, а также не только слова стрекоза, но и связанных с ним терминов и выражений в случаях, если упоминались научные названия этого вида (например, Odonata ). Если такие письма обнаружены не были, поиск должен продолжиться среди документов, не являющихся письмами, и так далее, расширяясь до сетевых ресурсов и Интернета.) Вы не можете помнить содержание документа по его имени «Письмо Джиму от 21/12/92», но вы можете помнить, что когда-то вы писали Джиму по поводу одной голубой Edsel, которая однажды пролетала мимо вас. Поиск по слову Edsel найдет только один или два элемента во всей вашей системе, если только вы не интересуетесь именно видом Edsel – в этом случае вы, вероятно, выбрали бы другую схему поиска. Неограниченное по длине имя файла является самим файлом. Содержание текстового файла и есть его самое лучшее имя.
Папки зло, но это же метафора картотеки. Не думаю, что от этого скоро избавятся.
Вместе с отказом от имен файлов также отпадает необходимость в механизмах их обработки (например, каталогах), правилах их создания и синтаксических ограничениях при создании. С устранением файловых имен исчезает большая ментальная нагрузка на пользователя, а также значительная часть внутреннего программного обеспечения – того, что в настоящее время пользователям приходится изучать, а программистам разрабатывать.
Вся файловая система как один текстовый документ. На самом деле, это очень похоже на то, как физически устроена память: вся память — просто длинная последовательность 0 и 1.
Документы являются последовательностями страниц, разделенных символами этого документа, каждый из которых может быть набран, найден или удален так же, как и любой другой символ. Также могут быть разделители и более высокого уровня, как, например, символ папки и тома или даже разделитель секции и библиотеки.
Что, простите? Дед Раскин опять чудит. Нет ничего лучше манипулятора типа мышь
Нажатие 6 клавиш отнимает меньше времени, чем перетаскивание пиктограммы.
Там вокруг ещё много текста, но что это? Как можно что-то делать, не глядя на экран, чтобы проверить результат? А если слепая печать, то куда тогда смотреть, если не на экран? Дед ты...
Обратите внимание, что пользователю не требуется смотреть на экран при выборе документа.
<...> программа должна взаимодействовать с пользователем на основе наименьшей значимой единицы ввода. Взаимодействие с данными, вводимыми с помощью клавиатуры, должно быть познаковым, а не построчным. Взаимодействие с данными, вводимыми с помощью голосовых устройств, должно быть пословным, а для некоторых приложений даже может быть поморфемным и т. д.
Говоря о методах поиска, следует упомянуть наблюдения, которые были сделаны Ландауэром (Landauer) и его коллегами. Ими было показано, что наиболее распространенные формы расширенного текстового поиска, в котором поиск определяется булевыми комбинациями строк или регулярными выражениями, менее эффективны в сравнении с полнотекстовым механизмом поиска. Последний оказывается и более быстрым, и более простым, и с помощью него пользователи находят больше подходящих элементов, по которым они производят поиск (Landauer, 1995).
А я говорил!
Современная структура программного обеспечения, состоящая из операционной системы и выполняемых под ней приложений, изначально является модальной. Это означает, что для того, чтобы интерфейс был немодальным, требуется подход, при котором не используются приложения в их современном виде.
А можно в плохой редактор встроить плохую рисовалку и все будут довольны.
Например, мой текстовый процессор имеет встроенную программу для рисования, с помощью которой я могу создавать простые рисунки, без необходимости выходить из редактора. В то же время, моя программа для рисования графики имеет встроенный текстовый редактор, с помощью которого я могу включать в рисунки форматированные блоки текста без необходимости выходить из программы рисования. Средства рисования в текстовом редакторе и средства редактирования текстов в программе для рисования хуже, чем программы, которые разработаны специально для соответствующих задач. В идеале все команды и возможности как программы для рисования, так и текстового редактора должны быть доступными для пользователя в любой момент.
В системе должна быть доступной также и другая возможность: в любом месте, где пользователь может ввести цифры, он должен иметь возможность ввести арифметическое выражение и вычислить его.
<...> система не должна быть сложнее, чем ваши потребности в данный момент.
Где-то до этого было про преобразователи типов данных.
Предположим, что с помощью одного трансформатора производится конвертация из А в В, а с помощью другого – из B в С. Если команда предусматривает обработку данных типа С, а данные выборки представляют собой тип А, то перед выполнением команды должны быть запущены два трансформатора. Если необходимых трансформаторов не имеется, никаких изменений с выборкой не производится. Пользователю при необходимости выдается специальное сообщение, а выборка остается без изменений. При таком подходе вместо прикладных программ разработчики будут поставлять наборы команд, представляющие собой совокупность взаимосвязанных операций. Например, вместо программы для обработки фотоизображений разработчик будет предлагать ряд отдельных команд, которые в совокупности будут давать те же возможности, что и программа. Пользователь сможет устанавливать столько команд, сколько ему необходимо, вместо того, чтобы устанавливать целое приложение, из которого ему может понадобиться только некоторая часть.
<...> программа, или в будущем команда, должна автоматически выполнять перенастройку параметров, если это необходимо для ее нормальной работы. После завершения работы программы (или прерывания пользователем) все параметры должны быть восстановлены в исходное положение. Если восстановление невозможно или может привести к нежелательным побочным последствиям, должно выдаваться специальное предупреждение, в котором сообщалось бы об этих последствиях и предлагалось бы пользователю решить: продолжить ли действие или нет.
Эпол и его сторонники особенно любят использовать прилагательное «интуитивный».
Одним из самых хвалебных терминов, используемых в отношении интерфейсов, является слово «интуитивный». При ближайшем рассмотрении это понятие исчезает так же бесследно, как шарик в наперстках, и заменяется более простым термином «знакомый».
Нападающий на всеобщее мнение поступает во всех отношениях опрометчиво и должен быть достаточно удачлив и необычайно силен на случай, если будет услышан.
Когда пользователи говорят, что какой-то интерфейс является интуитивным, они имеют в виду, что он работает так же, как и какой-то другой метод или программа, с которыми они знакомы. Иногда это слово означает «привычный», как в предложении: «Использование этих средств редактирования со временем становится все более интуитивным». Или же оно может означать «уже знакомый», как, например, было сказано об одном из новых аэронавигационных устройств: «Как и любое другое, это устройство можно изучить, но для того чтобы использовать его интуитивно, потребуется большой опыт» (Collins, 1994 г.)
Мышь — вовсе не очевидный манипулятор.
Сегодня это кажется нелепым, но этот же момент был показан в одном фильме из научно-фантастического сериала «Star Trek». Инженер космического корабля попал из будущего в наши дни и оказался рядом с компьютером Macintosh. Он берет мышь в руки, подносит ее ко рту, как будто это микрофон, и говорит в нее с сильным шотландским акцентом: «Компьютер…» Эта ошибка вызывает смех зрителей. Я порадовался за создателей фильма, которые показали, что мышь не является чем-то очевидным для каждого, кто пытается ею воспользоваться.
Эти эксперименты показывают, что скорость изучения и легкость использования какого-то интерфейса не связаны с воображаемыми свойствами интуитивности и естественности. Научиться пользоваться мышью очень легко. Все, что мне нужно было сделать в экспериментах с участием людей, не знакомых с этим устройством, – это положить мышь на стол, подвигать ее и щелкнуть по чему-нибудь с ее помощью. Через 5-10 с каждый мог понять, как пользоваться мышью. Это действительно быстро и легко, но это не значит, что использование мыши является интуитивным или естественным.
Убеждение, что интерфейсы могут быть интуитивными и естественными, часто оказывается препятствием для их улучшения. Меня часто просят в качестве консультанта помочь улучшить интерфейс какого-либо продукта. Обычно интерфейс можно улучшить так, чтобы с точки зрения времени изучения, скорости работы (продуктивности), частоты ошибок и простоты исполнения он был лучше в сравнении как с текущей версией продукта, так и с аналогичными продуктами конкурентов. Тем не менее, даже если мои предложения считаются значительными улучшениями, они зачастую отклоняются на том основании, что не являются интуитивными. Это классический случай Уловки-22: клиент хочет получить нечто, что должно значительно превосходить то, что предлагается конкурентом. Но если это должно быть превосходящим, то это должно быть другим (обычно чем значительнее улучшение, тем сильнее разница). Поэтому результат не может быть интуитивным (т. е. знакомым). Клиент хочет получить интерфейс, который бы не сильно отличался от существующей практики разработки интерфейсов (что почти неизбежно означает Microsoft Windows) и, в то же время, каким-то образом стал бы значительным усовершенствованием.
Привет, Журнал буфера обмена в Винде 10. Ну и тут Раскин предлагает плодить сущности, связанные с текстовым интерфейсом.
В обычных интерфейсах также имеется и другая проблема, связанная с методом «вырезать и вставить» (cut-and-paste). При использовании этой функции многие пользователи сталкивались с ситуацией, когда какая-то часть работы пропадала после случайного повторения операции вырезания до того, как первый вырезанный отрывок был вставлен. Когда текст удален, он не должен исчезать в небытии, и особенно он не должен перемещаться в невидимый буфер вырезания. Одно из решений может заключаться в том, чтобы помещать вырезанный текст в конце какого-то документа, в котором собираются удаленные элементы. Такой документ может быть самым обычным текстовым документом. (Желательно также, чтобы имелась специальная команда для более радикального удаления.)
Конечно-конечно, о деньгах вообще не думали — для людей же делали.
В тот момент мы пытались подобрать для Macintosh запоминающее устройство. Жесткие диски были тогда слишком дорогими. Накопители на гибких дисках 5,25 дюйма были наиболее широко распространенными, однако ряд других технологий начинал уже вытеснять их. Группа разработчиков системы Macintosh решила использовать накопители 3,5 дюйма, что впоследствии оказалось правильным решением, т. к. остальной мир персональных компьютеров поступил так же. Если бы компания IBM, например, приняла другое решение, пользователям, возможно, было бы труднее достать дискеты для «Мака» (Мас – сокр. от Macintosh). Тем не менее, наш выбор в пользу накопителя компании Sony был предопределен с точки зрения человекоориентированности интерфейса.
Привет, Винда с её незакрываемыми окнами. Да и веб с его alert'ами.
Если выдается сообщение, которое не требует ответа от пользователя, оно может быть устранено. Если по каким-то причинам сообщение непременно должно быть выдано, оно может быть отображено как прозрачный слой, как об этом говорилось в разделе 5.2.3. Если сообщения будут выдаваться в виде прозрачных слоев, лежащее под ними изображение на экране останется видимым, и работа с ним может быть продолжена, как если бы сообщения и не было вовсе.
Т. е. Джеф сделал модальность, но это как бы не модальность, потому что смотреть надо левым глазом с прищуром, повернув голову...
Было высказано предположение, что команда DISK создает модальность. Такая ситуация может возникнуть, только если воспринимать команду DISK как комбинацию команд Загрузить и Сохранить, представленную одной клавишей. Однако если вы не знаете ничего об этих командах, используемых в обычных системах, вы можете воспринимать клавишу «DISK» как команду типа «делай то, что нужно сделать с помощью дисковода». В этом случае, как показало тестирование, модальных ошибок не происходит.
Так как пользователь не получает никакой пользы от возможности контролировать процесс форматирования, он может даже и не знать о его существовании. Это является еще одним примером, иллюстрирующим следующий принцип: не предоставляйте пользователю тех средств управления, которые должны работать всегда или никогда.
На Винде с биометрическими сканерами работает вход по отпечатку/лицу. Т. е. вам достаточно предьявить себя, а Винда сама войдёт в нужный аккаунт.
При входе в большинство систем пользователи выполняют больше работы, чем это необходимо. Сначала требуется сообщить, кто вы, для чего вы указываете свой «идентификатор», «онлайновое имя» или «системное имя», и затем вводите свой пароль. Как предполагается, с помощью имени вы сообщаете системе о том, кто вы, а пароль позволяет предотвратить несанкционированный доступ к вашей учетной записи. На самом деле вы дважды сообщаете системе о том, кто вы. По логике вещей все, что от вас должно требоваться в этом случае, – набрать пароль. И это не снизит безопасность вашей системы.
АБСОЛЮТНО СПРАВЕДЛИВО. ИМЕННО ПОЭТОМУ НА МОБИЛЬНЫХ УСТРОЙСТВАХ ТАКОЙ КНОПКИ НЕТ. ФУНКЦИОНАЛЬНОСТЬ КАПСА ВИСИТ НА ДВОЙНОМ ШИФТЕ, FYI
Также хочу добавить, что требуется радикальная реформа клавиатуры, связанная с удалением клавиши «CapsLock». Эта клавиша порождает режим.
«Когда выбирается опция поиска, курсор должен появляться в соответствующем текстовом окне так, чтобы пользователь мог начать вводить информацию без необходимости щелкать мышью внутри поля или нажимать на кнопку Tab». Это частный случай следующего общего принципа: если пользователь в следующий момент может выполнить только одно действие, пусть это действие выполнит компьютер.
Кнопки «Далее» — зло.
<...> каждый раз, когда пользователь должен вступить во взаимодействие с компьютером, это взаимодействие должно предполагать получение полезного результата. Перемещение к следующему шагу в работе само по себе не является полезным результатом.
Иконки — не панацея.
При создании графических интерфейсов мы должны помнить, что текст тоже может быть визуальной подсказкой.
«Пусть потеет машина». Студия Лебедева про это, Бюро Горбунова про это.
Общий принцип состоит в том, что почти любой чрезмерно структурированный подход к процессу взаимодействия с пользователем рискует стать препятствием при выполнении им той или иной задачи, которая требует совсем другого подхода. В данном случае интерфейс превращается из помощника для пользователя в диктатора. Компьютер должен быть слугой для пользователя. Он не должен быть равным человеку или быть его начальником.
Поэтому пишите ваши идеи и предложения!)
Если покупатель тратит свое время на тщательный анализ вашего продукта и делает конструктивные предложения для его улучшения, обязательно отнеситесь к этому с вниманием! Это нельзя рассматривать как попытку сделать вам выговор или нанести оскорбление. Такой человек не является вашим врагом. Этим он демонстрирует свою лояльность и интерес к вашему продукту.
Осознанность против привычек. Битва века в сфере продуктивности.
Утверждение, что следует развивать привычку думать о том, что мы делаем, часто повторяется в учебниках и в речах известных людей и является абсолютно ошибочной избитой фразой. Верно совершенно обратное. Развитие цивилизации связано с увеличением числа важных операций, которые мы можем выполнять не задумываясь.
— Альфред Норф Уайтхед
В давно исчезнувшем компьютере Apple II для того, чтобы написать программу сложения двух чисел, требуется включить компьютер (время загрузки не заметно!) и нажать «Control»+«b», после чего вы переходите в BASIC. Если вы теперь наберете PRINT 3+4 и нажмете «Return», то сразу же и без трудностей получите 7. С момента запуска BASIC до получения результата прошло 5 с. Как хорошо известно, в компьютерной промышленности простота использования достигается с помощью довольно больших ресурсов памяти и скорости. Поэтому мы понимаем, что компьютер Apple II способен выполнять вычисления с такой быстротой и простотой именно потому, что он обладает мощнейшими ресурсами: имея 2-мегагерцовый 8-битный процессор, 48 Кбайт памяти (и это все, что можно вместить!) и 400 килобайтовый диск, машина работает как зверь. В 1999 году на выполнение этой операции у компьютера с 400-мегагерцовым 32-битным процессором, 192 мегабайтовый RAM-памяти и несколькими гигабайтами памяти на жестком диске уходит более 3 минут. Судя по разрядности системной шины и тактовой частоте процессора, новая машина работает приблизительно в 1500 раз быстрее, чем старая. Если же оценивать по времени, которое требуется для написания программы, новая машина оказывается медленнее приблизительно в 36 раз.
Его — ПО для программирования. Парадокс обучения IDE.
Оправданием его громоздкости может быть то, что он позволяет сделать большие проекты проще, однако это не может быть оправданием для того, чтобы делать простые вещи сложными. Большие вещи состоят из множества малых, поэтому чем проще сделаны составные задачи, тем проще становится вся задача в целом.
Привет, питон с его молниеносным запуском. Да и любой интерпретируемый язык.
<...> было утрачено нечто удивительно непосредственное, в частности, немедленная обратная связь, в которой человек нуждается для того, чтобы иметь возможность быстро создавать эффективные программы. Я не настолько наивен, чтобы думать, что мы можем вернуться к прежней простоте и достичь того уровня сложности, который требуется от современных программ. Но я уверен, что мы можем сделать в этом много улучшений.
Разумный человек приспосабливает себя к миру. Неразумный человек стремится приспособить мир к себе. Следовательно, весь прогресс зависит от людей неразумных.
— Бернард Шоу
В большинстве современных интерфейсов акцент делается на краткость в ущерб ясности. Почему мы должны заниматься расшифровкой непонятного названия «Список» в выпадающем меню в текстовом процессоре, когда можно было бы использовать более понятное «Создать указатель или оглавление»? (Необходимо учесть, что выпадающее меню не занимает места в документе, поскольку оно исчезает сразу же, как только вы уводите от него курсор или выбираете какую-то из опций.) Не следует путать простой внешний вид экрана с простотой использования интерфейса.
Книги Тафти это отдельный мир... Пока до них не добрался.
Визуальный дизайнер Эдвард Тафт (Edward Tufte, 1983, с. 105) разработал принципы отображения информации, среди которых первыми тремя являются следующие: • данные следует показывать прежде всего остального; • следует максимально увеличивать долю чернил, используемых для отображения данных; • следует максимально уменьшать долю чернил, которые не используются для отображения данных.
Серьезный, профессиональный пользователь желает, чтобы экраны были до отказа заполнены полезным содержанием. Экраны должны быть хорошо обозначены, снабжены простыми механизмами для осуществления поиска и получения информации, отражающей суть данного экрана. (В конце концов, раз уж мы сели за компьютер, мы должны извлечь из этого максимальную пользу.)
Короче, не надо метаться из крайности в крайность. Нужен баланс.
<...> если довести до логического конца популярную философию экранного дизайна, которая сводится к принципу, что «чем больше пустого пространства, тем легче читать», то мы увидим, что тогда на каждом экране должен помещаться только лишь один элемент данных. В этом случае пользователь уж точно сможет визуально распознать этот элемент с наименьшим возможным усилием.
Главная мысль книги. Очень в духе Баухауса (да, выпендрился знаниями).
Лучший способ заставить интерфейс вашего продукта отличаться – это сделать так, чтобы он работал.
«Если неприятность может случиться, она случается». Первое следствие из этого закона формулируется следующим образом: «Если никаких неприятностей не ожидается, они произойдут обязательно».
Опять любовь Раскина к клавише на каждый чих.
Возможно, клавиша «Следующее поле» (Next Field) была бы полезным дополнением к современным клавиатурам.
На этом всё! Пишите, как оно, стоит ли делать больше/меньше комментариев, источников, других полезных ссылок.