Воображаемый диалог о прогрессивном улучшении

Перевод статьи A fictional conversation about progressive enhancement с сайта tommorris.org, с разрешения автора — Тома Морриса.

— Я разочаровался в современной веб-разработке. Кучи раздутых фреймворков, горы скриптов, одностраничных приложений, ссылок с #! — всё как-то переусложнено. Мы забыли старые приемы прогрессивного улушения, а взамен  получили жуткие нелепости вроде бесконечного скроллинга, которые прикольно выглядят, но проку для пользователя от них никакого. Мы будто заново изобрели эпоху флэш-заставок, но радуемся тому, что сделали весь этот бессмысленный хлам не на флэше, а на JavaScript.

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

— Мне когда-нибудь кто-нибудь объяснит толком эту разницу?

— Ну, веб-приложение — что-то такое, чем действительно нельзя пользоваться без кучи скриптов. Прогрессивно улучшать его вроде как не получится.

— То есть веб-приложение определяется как система, которая не может работать без кучи скриптов. А необходимость в куче скриптов аргументируется тем, что без нее мы не сможем делать веб-приложения. По-моему, выходит какой-то замкнутый круг.

— Да ладно. Логика. Фиг с ней, с логикой. Разница всё равно есть, даже если она не впихивается в твои философские категории. Вот, я могу привести явные примеры веб-приложений. Gmail! Google Docs! Если не рассматривать их как приложения, смысла в них нет. Это тебе не старомодные веб-странички с небольшими довесками по модели прогрессивного улучшения, про которые вы, старые угрюмые луддиты, без конца талдычите. Если я хочу сделать Google Docs, надо делать это по-новому.

— Хорошо подмечено. Чтобы редактировать табличку в Google Docs, нужен современный браузер со свистелками и дуделками. В Lynx этим добром всё равно не попользуешься, так что, видимо, это и не нужно.

— Смотри-ка, этот дивный новый мир приложений не так и страшен! Помочь тебе с настройкой Gulp?

— Погоди, не торопись. Значит, аргумент в том, что если все современные фронтендовые штуки не работают, то Google Docs полностью бесполезен.

— Именно так.

— И если кто-то откроет табличку или текстовый документ Google Docs в браузере, скажем, с отключённым JavaScript, нам ему буквально совсем нечего показать?

— Абсолютно. Вот почему при их разработке нужно мыслить приложениями, а не документами.

— А что пользователь редактирует в Google Docs?

— Ну, тексты с форматированием и электронные таблицы.

— А это разновидности чего?

— Документов.

— Можешь повторить мне это слово?

— Ой, блин…  Документов. Подловил, так подловил.

— Так что можно сделать, если пользователь загрузит страничку в браузере, у которого нет возможностей для редактирования документа?

— Ну, можно отобразить документ, наверное.

— А какие технологии нужны, чтобы отобразить текст с форматированием и таблицы в браузере?

— Сам же знаешь. HTML и CSS.

— А если браузер умеет редактировать документы…

— …то он загружает соответствующий код для редактирования. Это же то самое прогрессивное улучшение! До меня дошло.

— И ты можешь даже пользоваться своей дурацкой переделкой GNU Make на Node.js, если тебе от этого легче.

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

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

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

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

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