Веб-приложения: браузер или OS?
Если я скажу, что мы на пороге нового изменения веба – это будет слишком громко? Или все и так уже устали от очередных красивых обещаний революций в интернете, которые имеют обыкновение не сбываться или оставаться местечковыми, почти незаметными. А то, что действительно новое – приходит неожиданно?
На фоне волнений о новых стандартах (привет HTML5 и CSS3), всеобщего перехода к новому поколению движков JavaScript (это которые с частичной компиляцией, фоновым исполнением и работают существенно быстрее, чем предыдущие) и продвижению аппаратного ускорения графики, которое, рано или поздно, будет у всех… На этом фоне происходит еще одна существенная трансформация.
И да, она происходит не только силами Microsoft, мы, по существу, только начинаем разворачиваться в этом поле ;)
Web apps vs. Web-oriented apps
Долгое время практически основным средством связи с интернетом оставался браузер. В этом смысле даже почтовый клиент и IM не воспринимаются так сильно завязанными на веб с его веб-страницам, как браузер. Браузер – окно в интернет. “Интернет” – это браузер.
В значительной мере усилиями разработчиков мобильных платформ, разработчиков приложений для мобильных платформ и разработчиков веб-сервисов, предоставляющих API концепция “веб-приложения в браузере” оказывается замещаемой концепцией “приложения, ориентированного на веб”.
Вместо того, чтобы работать в браузере, приложение просто использует веб-сервисы, подтягивает нужные данные и осуществляет необходимое взаимодействие.
Если говорить про мобильные устройства, этому есть понятные объяснения: наиболее эффективное использование платформы, скомпилированный код, интеграция в систему без промежуточного звена в виде браузера, мимикрия под мобильную платформу в соответствии с гайдлайнами UI и концентрация на самом приложении (и контенте), а не оболочке вокруг него.
И да, приложение-то уже в системе, а браузеру нужен стабильный коннект. Другой вопрос, конечно, ограничения веб-технологий в лице html, css, javascript, svg – поддержка браузерами, скорость. В мобильном контексте это особо критично.
С другой стороны многие очень-очень рассчитывают и с нетерпением ждут окончательного и бесповоротного прихода html5, css3, svg, canvas и прироста производительности… Вот тогда-то расцветут веб-приложения, которые “убьют flash”. :)
И да, веб-приложения-то по природе кроссплатформенные, а обычные – нет (да-да, бывают исключения).
Browser vs. Content
Другая интересная вилка – в противоречии между браузером и контентом, который он показывает. Браузер сам по себе из средства показа веб-страниц, платформы для работы веб-приложений, превратился в “инструмент работы с вебом”. Браузер обрастает плагинами, аддонами, тулбарами и прочими вспомогательными средствами, которые помогают запомнить, пометить, изменить, а чаще вообще никак не связаны с контентом на странице.
Они связывают с чем угодно еще, но не с контентом. Браузер как бы намекает: “а я еще и крестиком вышивать умею”, – и по нажатию кнопки начинает вышивать крестиком. И да, он по-прежнему зовется браузером.
Я не говорю, что это плохо или ужасно. Не говорю и, что так и надо и надо смириться. Не говорю и, что это как раз очень круто, что все браузеры умеют крестиком вышивать, а у кого-то вообще швейная мастерская вмонтирована.
Просто это очень интересное противоречие, в чем-то созвучное с “вам шашечки или ехать?”. Но не совсем, мне это скорее напоминает стремление повесить свои шторки в цветочек в машине, раскрасить в божьи коровки и вмонтировать мини пинг-понг.
Так что должно быть во главе угла? Контент и сайт (веб-приложение) или браузер?
Дилема тут еще в том, что в том, чтобы преимущество имел сайт и его контент, заинтересованы поставщики, владельцы, производители. Причем интерес этот сознательный. Они же заинтересованы в том, чтобы на других сайтах сохранялось их присутствие, например, в виде тех самых аддонов, тулбаров и прочих дополнений.
Иногда даже могут возникать функциональные противорчения, например, если ретвитнуть можно с сайта, из контекстного меню и кнопкой на тулбаре – что выбирать?
А что же пользователь? Интерес пользователя в контенте, конечно, есть, и более того, если мы решаем какую-то важную задачу, где нужна концентрация на контенте, нам бы все лишнее как раз убрать надо. Но и шторки цветные тоже хочется ;)
Интересно, что в случае приложения, использующего веб, владелец сам полностью определяет оболочку – никаких плагинов от сторонних производителей и тем более конкурентов. Ну и, само собой, концентрация на контенте этого приложения.
Wep-pages vs. Web-apps vs. OS Apps
Наконец, еще один взгляд на эту проблему. Браузер – средство для навигации по страницам, но мы определенно живем в интернете не только веб-страниц, но и веб-приложений. Элементы управления браузера заточены под первое, и мы заведомо понимаем, что концепция одностраничных приложений противоречи кнопкам назад/вперед, осуществляющим переходы по истории страниц.
Да, мы умеем решать эту дилему, подменяя историю навигации историей действий приложений, а иногда и сохраняя текущее состояние на случай прерывания сессии случайным переходом. Но, черт побери, я не могу в окне Word перейти на окно Visual Studio с тем, чтобы текст в первом затерся. А браузер позволяет делать такие фокусы. :)
В браузере соседствуют любые страницы и любые веб-приложения. Своими окнами и табами он держит множество несвязанных сессий и расселяет рядом несвязанный контент. На самом деле, он даже способствует размножению количества окон и табов.
Противоречие возникает также в сроке жизни (сессии), которое у веб-приложений заведомо больше, чем у веб-страниц. Страницы приходят и уходят, а приложения остаются.
В какой-то момент эта дилема начала пророждать новое направление – веб-приложения в отдельном окне. Характерным примером такой инициативы является Mozilla Prism, позволяющая отделить веб-приложение от браузера и запускать его самостоятельно. Даже со своей иконкой.
И… ура! Веб-приложения страновятся десктопными приложениями. Как бы независимыми, со своим окошком и прочими фишечками.
Собственно тут и начинается трансформация, стриющая разницу между веб-приложениями в браузере и десктопными приложениями операционной системы.
От Web-app к OS Apps
Веб-приложение по-прежнему живет в браузере или чем-то очень похожем на браузер. Оно по-прежнему работает в соответствии с веб-страндартами, а значит, кросплатформенное и может работать в любом современном браузере.
Как аксолотль, попав в сухой и прохладный климат может превратиться во взрослую амбистому, так и веб-приложение, попав в условия десктопного окружения проявляет новые возможности и становится все более похожим на приложение, ориентированное на веб.
Это все очень интересно и интригующе! Граница действительно стирается и веб-приложения становятся равноправными членами операционной системы. Конечно, сохраняя безопасность песочницы.
При чем тут IE9?
Прогресс в решении этих противоречий, который сделан в IE9 меня лично очень радует. Приложение не просто закрепляется иконкой, но и благодаря минималистичной оболочке браузера повзоляет сориентироваться на контенте, содержании конкретного сайта или веб-приложения.
В то же время закрепленное приложение – это не просто браузер, но браузер, визуально настроенный под данное конкретное приложение.
Страницы и приложения получили возможность пользоваться функциями операционной системы: от манипуляций над окнами до jumplist-функциональности приложений, закрепленных на панели задач. Последнее особенно интересно, так как веб-приложение может понять, что оно закреплено, и начать взаимодействовать со списком и всплывающими иконками. Да, веб-приложение, начинает общаться с операционной системой и пользователем как обычное приложение.
Оно становится приложением, ориентированным на веб, но остается веб-приложением.