I was raskin around
На днях я решил освежить в памяти труд Джефа Раскина (Jef Raskin) про интерфейсы просто потому, что люблю перечитывать фантастику ;) Это и вызвало мой недавний пост про состоятельные элементы. Помимо всего прочего, Раскин рассказывает об оценке интерфейса и оценивает на примере интерфейс для перевода одной температуры в другую. Я уже 10 минут ворочаюсь и не могу смириться с тем, что идеальный интерфейс так и не был предложен ;) Итак, Раскин предлагает интерфейс с вводом чисел.

Недостатками и лишними действиями тут являются выбор одной из опций (что во что переводим) и нажатие на кнопку, которая запускает подсчет (например, Enter).
Следующий интерфейс абсолютно графический, с настраиваемыми шкалами, но при этом считающий автоматически.
Недостаток этого интерфейса лишь в том, как вводятся данные — настройки шкал и перетягивание стрелок мышью — не то, о чем мечтает каждый лаборант. Зато данные подсчитываются автоматически, без нажатия на кнопку.

В конце концов, Раскин не выдерживает и выдает действительно неплохой интерфейс с одним полем ввода и двумя метками. Вводишь в поле ввода число, а оно по нажатию на определенную клавишу переводится в градусы и по Фаренгейту, и по Цельсию.
Еще при прочтении задачи у меня родилось свое решение, которое, как я убежден, ничуть не хуже. Сложность считать не буду, потому что… не люблю оценки, не очень связанные с действительностью ;)
Что мешает создать интерфейс, в котором пользователь будет вводить одну из температур, а вторая будет считаться автоматическию Ввод осуществляется в связанные поля, а по переходу на поле выделяется его содержимое, равно как и по окончанию введения числа или активации окна (что больше по душе). Переход осуществляется либо нажатием на клавишу Tab, либо кликом по соответствующему полю.

Забавно, что сейчас обычные поля ввода и шрифты, когда-то бывшие нормальными, воспринимаются мелкими и нечитаемыми. Привет, вебдваноль?
Алгоритм работы с таким конвертером температур выглядит идеально: выбрать нужное поле, ввести данные, продиктовать ответ из соседнего поля. При подсчете сложности очевидно, что у Раскина интерфейс должен быть лучше (можно я не буду писать все эти МКМКККК? ;), но он увеличивает возможность ошибки в невероятное количество раз. Он сложнее лишь потому, что алгоритм работы с ним сложен и вынуждает все время помнить из какой системы измерения в какую переводится температура.
В предлагаемом же мною интерфейсе оператор должен лишь помнить, что переводит из, например, градусов Цельсия, потом спокойно вводить число, забыв уже, что ему нужны Фаренгейты, и читать результат из соседнего поля ввода, заканчивая чтение обозначением нужной системы измерений. То же самое и для градусов по Фаренгейту Ох! Да эти связанные поля просто божественны! Разве нет?

Оказалось, что в очередной раз great minds think alike: виджет в Mac OS X для перевода разных величин в другие величины выглядит как раз так, как я бы посоветовал Раскину. Признаюсь честно, мне приятно, что независимо друг от друга мы с разработчиками Apple придумали то, что не придумал Раскин ;)


