Grumpy Website

 

я сейчас в разъездах и на текущей квартире интернет плохонек: 100-200 Кб/с с периодическими падениями до 0 раз 2-4 минуты. Т.е. хреновый.

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

Обычные, контентные сайты еще куда ни шло — они либо грузятся, либо прорисовываются.

А вот «приложения» (из которых моё самое любимое — веб-Твиттер) полагаются на сеть очень сильно и плохо работают с реальностью. Т.е. весь web ui твиттера например построен на предположении что на каждый запрос придет ответ в минимальные сроки. Всё — попапы, менюшки, табы, разворачивание фоток, переключение фоток — сначала делают запрос, дожидаются ответа и только потом что-то там двигают в UI. Т.е. ты нажал, скажем, «следующая фотка» и на экране ничего не происходит. Показывается фотка старая. И показывается, и показывается. Пока не загрузится новая, на экране ни один пиксель не шелохнется. Или, скажем, щелчок на твите, чтобы он открылся в попапе. Ничего не происходит. Ладно, думаешь, полистаю ленту дальше. Идешь дальше, че-то еще пробуешь развернуть. Не выходит. Занимаешься какими-то своими делами, вдруг бац — приходит интернет — всплывает попап нежданно-негаданно с тем самым твитом, на который ты когда-то щелкал. Ютуб, скажем, попап с плейлистами даже открыть не может без инета. И т.п.

С одной стороны, это объясняет общее раздражение от web ui, когда они ощущаются туповатыми и тормозными. Конечно — ведь на каждое ваше действие вы видите реакцию только после успешно выполненного network request. В результате активно работать с такими UI практически невозможно, ощущения скорее как палкой в вязкой жиже водить. И это даже с хорошим интернетом, дома! (не знаю, может в Америке с их пингом это лучше ощущается)

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

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

Я на твиттер наезжаю только потому, что пользуюсь им чаще всего. Остальные не лучше — Ютуб не может добавлять в плейлисты, Коуб грязно зависает на середине трека, и т.д. Inbox показывает последнее сохраненное состояние — быстро — но никак не показывает, насколько оно актуально. Т.е. можно легко зайти в папку и он покажет что она пуста (на самом деле — не может загрузиться в данный момент). Зато отзывчивый. Надеюсь, что постепенно как-то всё во всём разберутся и всё придет к общему золотому стандарту, но пока это гонка инвалидов, которые не могут пересечь стартовую черту.