Поговорим о ситуациях, когда компьютер тормозит.
Под тормозами понимается медлительность, мешающая свободному взаимодействию и тем самым вызывающая фрустрацию и раздражение. Если компьютер скачивает пять гигабайт данных, компилирует сложный проект или рендерит видео, это занимает ощутимое время, но это не тормоза: мы дали компьютеру задачу, и он работает, выполняет. Теперь допустим, что видео рендерилось час, потом отобразился статус «Завершено», а через секунду готовый файл отобразился на рабочем столе. Первый час компьютер не тормозил, но следующую секунду — тормозил.
Теорема: все тормоза являются ошибками и исправимы.
Технически даже своевременное отображение статуса или реакции не действие пользователя — это такая же «работа», как и рендеринг видео. Однако такая работа должна быть выполнена за время, которое человек не способен ощутить. Будем называть это «мгновенно».
Примеры тормозов в современно софте:
- при запуске программы нельзя сразу же начать ей пользоваться, а нужно ждать загрузки;
- после загрузки часть интерфейса дорисовывается на глазах у пользователя;
- при нажатии на кнопку нет мгновенной реакции;
- при вводе с клавиатуры символы появляются не мгновенно;
- при прокрутке страница едет не плавно или с отставанием от пользователя;
- при прокрутке часть содержимого догружается на глазах у пользователя, а не приезжает уже готовым из-за края окна;
- при изменении размеров окна разные части интерфейса перерисовываются на глазах у пользователя с разной скоростью или в несколько «прыжков»;
- при перетаскивании объекта программа понимает, что может «принять» его, не мгновенно;
- после открытия меню, на глазах у пользователя в нём добавляются пункты или меняется их порядок;
- разные части интерфейса реагируют на действия пользователя через разное время.
Во времена первых компьютеров тормоза были неизбежны, потому что мало что можно было сделать мгновенно. Но как минимум последние двадцать лет компьютеры на несколько порядков быстрее, чем необходимо для мгновенности, а значит и для полного отсутствия тормозов во всех случаях.
Если программа тормозит, это лишь значит, что в тот момент, когда она должна мгновенно отобразить данные или отреагировать на действие пользователя, она занята чем-то другим. Это что-то другое — ненужная в данный момент, лишняя работа. Это ошибка в программе, и она должна быть исправлена. Лишняя работа должна перестать делаться и мешать пользователю пользоваться компьютером.
Таким образом, тормоза нельзя списать на слабое железо; это слабость исключительно её автора.