Таблицы в интерфейсах. Итоги. Часть 3
Теперь поговорим про затронутую тему соотношения анимации и производительности.
А что можно сказать про анимацию и производительность? Ребята, посмотрите на Мак и Айфон. В Айфоне процессор крутится на четырёхстах мегагерцах.
Всё понятно: против анимации выступают пользователи Винды, которые не видели нормальной анимации. Собственно, я тоже при установке винды первым делом отключаю весь этот кошмар. Проблема всей анимации Винды — если забыть о чудовищном качестве реализации — её бессмысленность.
В Висте Микрософты сделали более крутую графическую подсистему, которая позволяет сделать всё плавным, поэтому на анимацию в Висте по крайней мере не так больно смотреть. Но Микрософты всё ещё думают, что анимация — это просто развлечение пользователя. Они ещё не понимают, что Дашбоард плавно прилетает из-за спины не только потому, что это круто, но и для того, чтобы пользователь понимал, что он за спиной. Они не понимают, что окна утекают в Док настолько реалистично для того, чтобы пользователь совершенно подсознательно чувствовал, что вот эта штука в Доке — это и есть его окно. Поэтому на Маке для переключения между окнами есть Экспоузей, а на Висте — эта тупая хрень с окнами, стоящими к тебе боком и заслоняющими друг друга. Про Тайм-машину вообще чего говорить — понятно, что там анимация в интерфейсе сделала продукт — первое в истории человечества приложение для бекапа, которым люди будут пользоваться.
Если кто не знает, когда у Джобса в интервью спросили, зачем они сделали в Дашбоарде, что когда бросаешь в него новый виджет, от него идут круги по воде, он ответил: Because we can. Этот ответ в три раза умнее, чем может показаться сначала. Этим ответом он дал понять, что все остальные этого не делают просто потому, что не могут. Разговоры про потерю производительности — отмазки неудачников. И, «могут» здесь означает не только техническую возможность, но ещё и умение сделать это так, чтобы это действительно выглядело хорошо и помогало в работе.
Микрософты к 2008 году так и не обратили внимания на то, что в мире существует инерция. Поэтому если бы они сделали летающие туда-сюда строчки при пересортировке, это было бы просто невнятное мельтешение.
Да, я вполне допускаю, что может быть анимация в случае с пересортировкой таблицы была бы и лишней. Но уж точно не стоит делать её «отключаемой».
Если, реализовав такой контрол, мы обнаружим, что анимация мешает (не помогает), её нужно просто убрать, совсем.
Ок, только скажи сначала, когда ты начинал это действо, ты рассчитывал на проектирование таблицы, которая показывает файлы, или все-таки делал табличный контрол, который умеет показывать все, что в него положат?
Я, сейчас, работаю с базами. Есть контрол-таблица, он показывает первые -цать строк выборки. Если нужно следующие — он тащит следующие и показывает их. Все нормально. Мне нужно пересортировать — я нажимаю заголовок — у меня обновляется запрос, вытаскиваются первые -цать записей. Это вообще нормальная работа для db-контролов.
Все замечательно. Но потенциально в таблице может быть до 100-150 килозаписей (и на некоторых площадках есть). И время, затрачиваемое на вытаскивание 10-20-100 записей, которые видны пользователю и 100-150 килозаписей, которые есть «за кадром» это немного разные времена. Для того, чтобы реализовать анимацию мне нужно вытащить первые 100 килозаписей и потом вытащить вторые 100 килозаписей. Отработать порядок их «полета» и показать анимацию. Причем, я догадываюсь, что даже отработка построения анимации здесь будет не самым страшным. Самым страшным будет вытаскивание этих тонн абсолютно ненужной информации.
Поэтому я совершенно точно знаю, что анимация тут будет не нужной и тормозной. Но конечно, если ты работаешь со списком файлов на тридцать-сто позиций, которые при этом уже лежат в оперативке — легко рассуждать о подобной возможности.
Кстати, именно поэтому для меня — странно отказыватся от обратной сортировки и алфавитной и цифровой.
Дмитрий Кирсанов на днях скинул мне замечательную цитату из Дональда Нормана, которого я, к стыду, так и не удосужился сам прочитать. Это его вольный перевод:
!!Забавно наблюдать, когда учёные и инженеры занимаются дизайном продукта. Они готовы спорить, что лучше для пользователя, и исходят из благих побуждений, но когда дело доходит до выбора между удобством для пользователя и простотой реализации, они всегда выбирают второе, упрощая свою работу. Они будут делать всё хорошо, но постараются сделать внутреннюю архитектуру системы как можно проще. Элегантность внутреннего дизайна часто «ложится» на элегантность интерфейса, но не всегда.!!
Нужно найти хорошего программиста, который не будет ныть, а возьмёт и сделает: придумает как правильно сложить данные в базу, что куда закешировать, как навесить триггеры на изменение базы, чтобы поддерживать вспомогательные данные актуальными.
Люди делают как-то, что не тормозит даже PhotoSynth (Ютюб). Технология такова, что производительность зависит только от числа пикселей, отображаемых в данный момент на экране, но не от объёма данных, с которыми ведётся работа.
Игорь, «разговоры про потерю производительности — отмазки неудачников».
Вы серьезно считаете что для отображения анимации 20-и текущих записей и 20-и записей, которые появятся после пересортировки нужны запросы в 100-150 килозаписей?
У себя в Маке я почти сразу отключил часть анимации. Действительно некоторые штуки начинают раздражать, когда интенсивно работаешь. И кажется, что окно сворачивается не треть секунды, а целую вечность. Чисто психологический эффект.
Игорь, во время работы нужно периодически расслабляться, успокаиваться и чуть-чуть медленнее «фигачить».
Впрочем, это моё лично мнение касательно моего собственного стиля работы.
Оффтопик: Calibri с отключенным ClearType ужасен.
Начну немного издалека...У меня было огромное количество телефонов. Соеди них десяток смартфонов Nokia. Каждый раз я покупал их в надежде что наверное эта платформа лучше...что этот процессор быстрее. И что в результате? Я увидел iPhone и понял что все то дерьмо что я устанавливал на Symbian OS — жалкое пародие на софт. Оказывается софт на телефоне может работать быстро и быть ОЧЕНЬ комфортным. Оказывается чтобы открыть контакты нужно не 3 секунды, а НОЛЬ! Оказвыается они могут плавно прокручиваться, а не мерзостно перескакивать. Оказывается маштабирование картинок может быть в реальном времени, а интернет-страницам не нужен «недобраузер».
P.S. Не купил iPhone лишь потому, что он похоже уже есть у всех вокруг. Теперь стыжусь своей Nokia E-50 на которой из софта есть только убогая читалка книг.
Меня не смущает, что Айфон у многих есть. Меня-то он от этого радовать меньше не будет.
Кстати, a pro pos анимация — на WII (такой же гениальный продукт как iPhone) с довольно хилым процессором анимировано изменение размера текста (ну так +- когда делаешь чтобы буквы были больше/меньше). Притом анимировано настолько доходчиво и понятно, что я сначала подумал, что это решение из Купертино. Ан нет, оказалось чисто японской инновацией. Так что да, согласен, анимация — это ОЧЕНЬ важно.
Да что я рассказываю, это как-то так
http://ru.youtube.com/watch?v=ZW_COtPtWg0
p.s. а новости на WII можно читать вот так http://ru.youtube.com/watch?v=uO6J8ryTKYk — тоже анимировано суперски!
Выглядит очень прикольно, но, кажется, читать совсем не помогает.
Не перевариваю анимацию. За исключением двух случаев, это маленький крутящийся шарик (как это сделано в браузерах). И исключительно с утилитарной целью, показать что «мы не зависли, процесс идёт».
Второй случай — это скроллинг текста. Тут уж исключительно удобство и скорость получения информации. И то, этот скроллинг должен идти с постоянной скоростью, зависящий лишь от моего желания (безо всяких ускорений в начале и замедлений в конце(
Ну и со скрипом можно сказать о попапах, в той-же опере.
А все эти выезжающие панели, подменю, окна в панель задач, диалоги в сафари — нафиг-нафиг.
!!Дашбоард плавно прилетает из-за спины не только потому, что это круто, но и для того, чтобы пользователь понимал, что он за спиной.!!
не за спиной он. Когда его нет, его нет. Когда он есть — он на экране. Точно так-же, как и любое другое окно.
Все они лежат в куче где-то вне пространства, с неопределённым порядком, за исключением верхнего окна. Аналогичная ситуация с виртуальными рабочими столами (ну, разве что кроме тех случаев, когда они находятся черепицей, как и окна) Кстати поэтому и переключатель в висте бессмысленен, и все эти кварцы-бериллы в никсах — они отображают совершенно не то, что есть на самом деле.
Впрочем, я никого не заставляю следовать моей логике — на то это и «My workspace».
Очередной забавный спор.
На самом деле, анимацию делать можно, и не во всех типах программ она должна быть отключаемой. Чисто условно программы можно разделить на два типа — первые используются как повседневный инструмент, а вторые предназначены для разового использования.
Вторым программам вообще бессмысленно иметь какие бы то ни было настройки. А вот первые должны обладать кучей настроек для кастомизации, и анимация, если она имеется, должна в настройках отключаться. Ведь если на экране действие сопровождается анимацией, то оно будет выполнено медленнее, чем без анимации. Так ведь? А я не хочу, чтобы инструмент, которым я пользуюсь каждый день, работал медленнее по сравнению с тем, как он может на самом деле работать.
!!А я не хочу, чтобы инструмент, которым я пользуюсь каждый день, работал медленнее по сравнению с тем, как он может на самом деле работать.!!
В винде такое переключение между рабочими столами как в mac будет сопровождацо моргающими окнами и кучей глюков. Ясно, что этим никто не будет пользоваться.
А они в эппл сделали реально работающее переключение с анимацией, которое работает и видно куда деваются окна.
По времени вся эта анимация занимает меньше чем нажатие на кнопку. Зато видно что и как.
!!По времени вся эта анимация занимает меньше чем нажатие на кнопку. Зато видно что и как.!!
И что? Когда я работаю с несколькими окнами и мне нужно переключиться между ними, мышью я вообще не жму. Я нажимаю ALT+TAB и оказываюсь в том окне, в котором был до этого. Какая бы то ни была анимация лишь замедлит этот процесс.