Дайте мені вийти!

У деяких програмах відсутня можливість легкого виходу з них. Спочатку це здається помилкою проектування інтерфейсу, але, схоже, творці деяких програм просто вважають, що вихід з програми - це необов'язкова і шкідлива можливість.


І справді, навіщо давати такий інструмент користувачеві? Він же тупий, вийде ще ненароком, а потім заблукає і не повернеться в програму. Тому потрібно замкнути користувача всередині неї, і якщо він захоче вийти - то нехай спочатку помучиться, щоб не повадно було.

Під катом небагато міркувань про те, чому легка функція виходу з програми необхідна на даному етапі розвитку ПЗ, і демонстрація поганого підходу на прикладі Skype для Android і Dr. Web для Windows.

В ідеальному світі від функції виходу можна було б відмовитися. Але в реальному світі програми працюють не безкоштовно, а жеруть ресурси. Особливо це помітно на мобільних пристроях, коли неоптимальний код починає з диким апетитом пожирати батарейку.

Візьмемо, наприклад, Skype під Android. Він досить швидко їсть батарейку, до того ж, коли спілкуєшся через комп, телефон постійно «булькає», сигналізуючи про те, що прийшло нове повідомлення. Природно, це все дратує і хочеться скоріше вийти з цієї програми, як тільки вона перестала бути потрібна. Але щоб це зробити потрібно здійснити ритуал мінімум з 5 тапів. Причому відбудеться не миттєвий вихід з програми, а вихід з мережі, після чого користувач потрапить на форму логіну, а не на основний екран. І при наступному заході доведеться заново логінуватися, а не просто запустити програму.

У мене складається враження, що муторний вихід зроблений з розрахунком на те, що користувачі не будуть виходити через це з Скайпу і тому будуть набагато частіше онлайн, тим самим піднімаючи якісь показники доступності через систему. Не знаю, чи працює це на більшості користувачів, але сам я тепер запускаю цю програму тільки в разі крайньої необхідності. А щоб швидко виходити з неї навіть завантажив окрему утиліту «Stop Skype» (одна наявність такої утиліти вже говорить багато про що).

Другий показовий приклад - це Dr. Web для Windows. Програма, схоже, вважає себе настільки важливою і необхідною, що користувач просто не в праві її зупинити. Точніше, призупинити її можна, але тільки увійшовши в адміністративний режим, звідти вибравши зупинку для кожного компонента, ввівши капчу. А потім вручну доведеться всі компоненти запускати за новою. І це замість того, щоб просто вийти з програми, а потім знову увійти.

Ну гаразд, захист від вірусів річ важлива, і відключати захист не треба давати, наприклад, звичайним користувачам в корпоративній мережі або вашій дитині/бабусі/молодшому братові. Але досвідчений користувач може вирішити, коли йому потрібен антивірус, а коли ні. Чому програма вважає, що її думка важливіша за думку користувача?

Можливо, якби антивірус був непомітною утиліткою і тільки в разі загрози давав про себе знати (яким і повинен бути домашній антивірус), то проблема виходу не стояла б так гостро. Але ж ця зараза періодично починає пожирати повністю ресурси одного ядра. Причому приховує себе при цьому з диспетчера завдань, і здогадатися про те, що трапилося, можна тільки по початківцю відриватися від поверхні столу ноута, який ось ось і відлетить на реактивному струмені з кулера.

Все це призвело до того, що мені Dr. Web довелося просто видалити.

Загалом, я вважаю, що комп'ютер - власність користувача. І користувач повинен сам вирішувати коли з якої програми виходити. Програми ж, які не дають з себе легко вийти - подібні гостям, які засиділися у вас вдома, не розуміють натяків, прохань тощо, а йдуть тільки з викликом міліції. Та й то не завжди. Тому така програма викликає роздратування і заборону виходу призводить до зворотного ефекту: користувачі починають якомога рідше запускати програму або зовсім видаляють її.