Если мы остановимся, мы двинемся вспять

Перевод статьи If we stand still, we go backwards с сайта jakearchibald.com, c разрешения автора — Джейка Арчибальда.

Недавно PPK заявил, что веб движется слишком быстро в неправильном направлении, и попросил однолетнего моратория на веб-фичи. Я настолько разозлился, что тут же бросился к словарю, чтобы уточнить значение слова «мораторий». Оказалось, что оно значит «приостановка».

Я немного вспылил в твиттере, что было не совсем правильно, так что вот более взвешенный ответ:

Веб становится всё сложнее

Разве? Взгляните на «hello world» в современном вебе:

<!DOCTYPE html>
<title>Hello</title>
World

И сравните это с «hello world» до появления HTML5:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head><title>Hello</title></head>
    <body><div>World</div></body>
</html>

Сегодня «нello world» проще, чем когда-либо.

А первый в мире веб-сайт по-прежнему работает в современных браузерах. Сложность воссоздания данной страницы сегодня такая же или даже проще. Дело не в сложности создания данной страницы, а в том, что…

Ожидания пользователя выше

Нам не стоит удивляться этому. Ожидания изменчивы. В 1995 году один из моих любимых юмористов сказал (что-то вроде):

Мне не интересен Star Trek или детская порнография, так что интернет для меня ничего не значит.

— Стюарт Ли

Веб проделал долгий путь за двадцать лет. Передача данных по всему миру уже не проблема. Совершение онлайн покупки — не что-то такое, чем можно произвести фурор на званом ужине. С учетом прогресса веба, «очень хорошо» прошлого десятилетия — это сегодняшнее «средней паршивости».

В вебе началась конкуренция за лучший пользовательский опыт. В результате нам, разработчикам и дизайнерам, приходилось повышать ставки в нашей игре, но в итоге веб становится лучше.

Веб-платформа слишком велика?

Веб-платформа приобрела новые фичи, чтобы дать нам возможность выстроить лучшие впечатления. Это проблема?

Когда я закончил университет, мне казалось, что о веб-платформе я знал всё. Частично потому, что веб был проще, но и вообще я был высокомерным меленьким засранцем, который не понимал, сколького еще не знает.

Когда появились новые фичи и я узнал о существующей платформе ещё больше, я понял, что познать её всю не удастся. Сначала я воспринимал это как личную неудачу, но с тех пор смирился с этим.

Веб-платформа слишком большая? Для одного человека — да. Разве это проблема? Нет. Никто не может стать экспертом во всём вебе. Хирурги не являются экспертами во всех видах операций, ученые — во всей науке, а веб-разработчики — во всей веб-разработке.

Пару лет назад я провел небольшую викторину по браузерным запросам. Даже победителю редко удавалось преодолеть отметку 50%, и не потому, что аудиторией были идиоты, как раз наоборот, это были грамотные разработчики, некоторые — даже эксперты. Просто это было не то, что каждому приходилось вспоминать моментально, а то, с чем вы смогли бы разобраться, едва оно понадобится, с помощью инструментов разработчика (в точности, как делал я сам, создавая этот тест).

Несколько лет назад совокупность моих знаний «автономного веба» сводилась к «есть вещь под названием «appcache», которая делает это», и этого было достаточно. Мне ни к чему было знать о ней больше, пока не появился проект, на котором это могло бы пригодиться. Конечно, теперь я понимаю, что автономность пошла бы на пользу любому проекту, верно? Разве не так?

Вы не обязаны учить и использовать что-либо просто потому, что оно есть

Вот мой снимок группы самолетов, выполняющих какую-то фигуру пилотажа:

original.fe3cd1e86129

Могло бы быть и лучше, так что воспользуемся Photoshop. При знакомстве с обширным набором инструментов Photoshop у начинающих есть распространённая ошибка — применить всё сразу:

bay.f317ee610028

Возможно, Майкл Бэй и пришел бы от этого в экстаз, но он исключение. Однако, я бы не отказался использовать подмножество функций более точечно:

subtle.7ccdf26fd334

Так же и в вебе. Вам не нужно задействовать 100% возможностей браузера на одной странице. Применяйте только необходимое. Лучшее в плане пользовательского опыта решение — то, которое позволяет достичь целей пользователя проще всего.

Правильные ли фичи мы добавляем в веб?

PPK утверждает, что мы слепо копируем нативные приложения, хотя я так не считаю, но это не означает, что мы должны полностью игнорировать их. Нам следует добавлять фичи, отталкиваясь от объективных фактов, и нативные приложения — просто кладезь таких фактов.

Благодаря нативным приложениям на наших глазах пользователи наслаждаются обменом смс-сообщенями, доступом к автономным данным, gps, быстрыми платежами. Также на наших глазах с их помощью политика магазинов приложений вредит открытости, распространение в виде пакетов вредит связям, а выдача разрешений в момент установки вредит безопасности и приватности. Успехи и неудачи нативных приложений — это отличные опорные точки.

И давайте кое-что проясним. Когда мы говорим «нативные», мы имеем ввиду класс устройств, который пришёл после веба — мобильники и планшеты. Веб был готов для мобильных, как только мы установили в них браузер, но он не был оптимизирован под них. Медиазапросы, gps, Push-уведомления, вот-вот к ним добавятся события указателя — всё это фичи, которые приспосабливаются к новым способам ввода, размерам экрана и моделям использования.

Конечно, образцы UX можно подсмотреть не только у нативных приложений. Оглядываясь на несколько лет назад, мы смотрели, в чем Flash был сильнее всего, и заимствовали из него. Когда я читаю «мы не должны выпускать [фичу], поскольку они делают то же, что и нативные приложения», то мне интересно, думает ли этот человек, что нам не нужен <video>, поскольку она делает то же, что и Flash.

Библиотеки и инструменты — это другие источники фактов, они показывают, с чем разработчикам приходится бороться. jQuery показал, как разочаровал разработчиков застой IE и каких возможностей DOM им не хватало. Coffeescript показал недовольство возможностями языка JavaScript. Sass — недовольство CSS. Эти вещи, и их популярность, были чётким сигналом, что веб-разработчики нашли недостающие части веб-платформы, и были недовольны темпами развития.

Другие фичи, такие как HTTP/2, создавались, исходя из слабых сторон веба. Конечно, HTTP/2 сложнее HTTP/1.1, но он также снижает потребность во множестве хаков типа объединения файлов, встраивания ресурсов в разметку, спрайтов, которые усложняют нынешний веб.

Мы не всегда понимаем это правильно, см. appcache. В его случае нам не хватало фактов, и мы создали высокоуровневое решение, которое нельзя использовать так, как хотели бы разработчики. После этого мы приняли на вооружение другой подход, «Расширяемый веб». Теперь мы сперва стараемся внедрить фичи более низкого уровня. Они гибче, но требуют больше JavaScript, чтобы полностью встроить их в рабочий процесс. То, как разработчики пользуются этими низкоуровневыми фичами, становится новым источником фактов для будущих фич более высокого уровня.

Приостановка — не успешная стратегия

Ещё в 2007 году Apple выпустила iPhone. В сравнении с конкурентами это был шаг вперёд с точки зрения превосходного сенсорного экрана и продуманной интерактивности. По другим параметрам он отставал. Ни 3g-подключения, ни GPS, ни фронтальной камеры. Почил ли он на лаврах своих сильных сторон, объявив мораторий на всё остальное? Нет.

Но одна компания это сделала. Она называлась «Исследования в движении», и выпускала телефоны «BlackBerry». Они решили сосредоточиться на своей текущей аудитории, которая, как они решили, не хочет перемен. Но эта группа пользователей уменьшилась, как только ожидания поменялись.

У BlackBerry было преимущество в мобильной гонке, но они остановились. К тому моменту они поняли, что находятся позади, их попытки исправить ситуацию не увенчались успехом, было слишком поздно. Между тем iPhone постепенно осваивал преимущества своих конкурентов. Не все из них, только те возможности, что имели значение, те, что доказали свою значимость на деле.

Я люблю веб, поэтому в шоке, когда слышу предложения заимствовать стратегию BlackBerry.

Я был разработчиком во время последнего моратория в вебе, IE6-8. IE6 вышел в 2001 году и он был замечательным, но затем Microsoft остановился. IE7 появился в 2006, а IE8 в 2009, но это были в основном исправления ошибок, и они мало что добавили в плане новых фич. Мы всё ещё отходим от этого, но чувствуется, что есть свет в конце тоннеля. Я не хочу туда возвращаться!

Совершенствовать веб вперёд

Самое замечательное в вебе — он не останавливается по достижении версии1.0, он непрерывен. После изучения табличных раскладок появился CSS, который позволил описывать раскладки без захламляющей разметки. После изучения библиотек DOM-селекторов у нас появился querySelectorAll. После изучения всего многообразия областей просмотра у нас появились медиа-запросы. Мобильный веб достиг огромной популярности, и это новая захватывающая вещь для изучения.

Нам не стоит снобистски относится к фичам, которые впервые появились на др. платформах. Нативные приложения также стремятся получить преимущества веба, они переизобретают ссылки, а в какой-то момент они переизобретут постепенную загрузку и покончат с процессом установки. Если мы остановимся, мы проиграем.

Веб богат фичами, и это замечательно. Медиазапросы, тач-события, флексбоксы, Service Worker, push-нотификации, веб-аудио, canvas… всё это возможности, с помощью которых вы можете улучшить пользовательский опыт. Я не уверен, попадают ли они в заданные PPK рамки «вот досюда, не дальше», но вас ничто и не обязывает использовать хоть одну из них. Вы можете смело подвести черту и отказаться впредь изучать новые веб-возможности. Но если ваш конкурент воспользуется ими, и создаст благодаря им лучший пользовательский опыт, чем тот, что вы можете предложить, вы проиграете. А пользователи выиграют.

Обновлено: Брюс Лоусон из Opera ответил PPK почти одновременно со мной. Но я опубликовал свою статью на пять минут раньше, так что я выиграл. Что, Брюс, съел?

Благодарю Анне ван Кестерена, Алекса Рассела, Питера Биверлу и Пола Льюиса за исправление ошибок и уточнение тезисов в целом. Те, кто дочитал до этого места, выиграли бесплатные обои для рабочего стола со звёздным котиком-истребителем на ионных двигателях.

P.S. Это тоже может быть интересно:

3 Комментарии

  1. Max

    Бегу за попкорном)

  2. n

    Опчеатка: нello world.

  3. Алексей

    Не всё то золото, что блестит (с) Вполне может быть, что много из того, что «ждут» пользователи, это желание самих разработчиков поразить пользователя чем-то таким, что произведёт на него впечатление. Аналогично, погоня за фичами, возможно, в некотором роде, охота за разработчиками, поверившими, что им дадут что-то ценное, позволяющее «делать круто», с минимум усилий… Но чем более пользователь «падок» на картинку, чем меньше от него требуется усилий, чтоб быть поражённым, тем, вероятно, более тривиальная задача решается и тем более поверхностен будет импульс, которым мотивируется пользователь. Разработчики получат пользователей, желающих красивых эффектов и настроенных на потребление того что дают, без глубокого переваривания информации. Ясен пень, что за такими не угнаться, поскольку сам паттерн их поведения не подразумевает удовлетворённости чем-либо, поскольку неразборчивость не развивает вкус, а наоборот притупляет…
    ИМХО, ценно не удобство само по себе, а удобство для чего-то и чем более сложная и интересная задача решается, тем больше возможностей даёт удобство. Фан же от удобства самого по себе, это, скорее, фетиш перед средством, в виду, отсутствия интересных целей.
    Добавлю, что подобный подход, вероятно, стал столь популярным, ввиду того, что он является противоположностью, нередко встречающегося среди компьютерщиков ловли лузлов от того, что они, наконец, понимают что-то такое, что другие вообще не понимают :)
    Раньше было «круто, что вообще никому не понятно!» (и не важно, есть ли польза, от этой работы), а стало «нет ничего проще»…
    В общем, я не считаю, что автор во всём не прав, но погоня за чем-то призрачным, что вот-вот приведёт нас к нереальному счастью, чаще всего иллюзия, нужная для того, чтоб сохранить движение. А когда движение нужно сохранять? Почему само не двигается? Потому что для движения нужны достойные цели, которые интересно достигать, а в погоне за эффектами, наступает мельчание и цели постепенно теряются… Ессно ИМХО.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Получать новые комментарии по электронной почте. Вы можете подписаться без комментирования.