USD 68 ЕВРО 76.76

Веб-приложения: будущее Интернета или несбыточная мечта?

Аналитика

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

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

Ещё несколько лет, и, может быть web, а не iOS и Android будет платформой для создания приложений. Одна из целей консорциума веб-стандартов W3C – совершенствование технологий, на которых строится Всемирная паутина.

Создание приложений на основе стандартных технологий для веб-сайтов, в первую очередь HTML, CSS и JavaScript, обещают создавать приложения, которые, при некоторой настройке, будут работать с различными браузерами, на разном «железе», и смогут запуститься почти на любом устройстве в мире, на котором работает браузер.

В отличие от web, нативные приложения на смартфонах и планшетах привязаны к конкретной операционной системе. В обычных условиях Android-приложение может работать только на смартфоне под управлением Android, а iOS-приложение может работать только на iPhone или iPad.

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

«Создание продуктов и услуг, доступных для различных устройств, крайне важно с точки зрения развитых рынков – там, где люди регулярно используют более одного устройства», сказал Джо Рабин, глава группы мобильных платформ веб-сообщества в W3C.

«Вполне очевидно, что web имеет очень существенное преимущество – полную кросс-платформенность. Это действительно единственная жизнеспособная платформа, для которой справедливо утверждение «Я напишу программу, и она будет работать на любом устройстве».

«Нельзя сказать то же самое о нативных приложениях, и это кажется тем явным преимуществом веб-платформы, на которое будет сделан акцент снова и снова».

Веб-приложенияпуть вперед

Конечно, web может иметь большую базу пользователей на своей стороне, но существует множество препятствий перед тем, как веб-приложения получат всеобщее признание в качестве вычислительной платформы. Веб-приложения сегодня не могут конкурировать с нативными во многих областях. Ограниченный доступ к аппаратным ресурсам смартфонов делает простые задачи, типа сохранения фотографий, сложнее, чем они должны быть. Кроме того, веб-приложения отстают по производительности от нативных приложений.

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

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

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

Существует также проблема согласованности самой веб-платформы. Одно и то же приложение может выглядеть или вести себя по-разному в различных браузерах. Существуют различия в смеси веб-технологий — в первую очередь HTML, CSS и JavaScript — и особенности, поддерживаемые в каждом из основных браузеров, оставляющие разработчикам необходимость реализовать обходные пути для отсутствующих функций в разных браузерах. Даже там, где одни и те же технологии реализованы во всех браузерах, есть случаи, где эти технологии реализуются по-разному.

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

Для устранения этих недостатков W3C предоставляет вспомогательный персонал и ресурсы Сообществу Мобильных Веб-Платформ и называет её Группой Мобильных и Веб-Разработок. Компетенцией группы является управление различными группами W3C, которые составляют спецификации для веб-технологий, с целью составления базового набора веб-технологий, которые могут быть использованы для создания мобильных приложений.

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

1. Оффлайновые возможности

Первая попытка заставить работать оффлайн для пользы веб-приложений — кэш приложений в HTML5 (AppCache) — функция, часто критикуемая за ее недостатки, и вдохновившая такие красочные шутки, как «Кэш Приложений – это клизма».

Спецификация имеет несколько, как кажется, нелогичных функций, таких как неавтоматическая загрузка свежего контента после того, как данные были кэшированы, даже если пользователь находится в сети. Джейк Арчибальд, разработчик Google Chrome и автор вышеупомянутой статьи, сказал, что AppCache основана на ряде высокоуровневых и ошибочных предположений о том, как приложения хотят кэшировать данные.

«Пользователи нашли его трудно настраиваемым в том виде, в котором он предполагался быть развёрнутым», сказал представитель W3C Рабин, который также является техническим директором мобильного маркетингового агентства Sponge.

«В результате использования мы обнаружили, что некоторые вещи невозможно сделать, как хотели бы пользователи».

Рабочая группа веб-приложений W3C в настоящее время ищет варианты использования, которым должен соответствовать AppCache следующего поколения.

Любые улучшения возможностей автономной работы будут дополнять уже ведущуюся работу по возможности запуска веб-приложений вне браузера. Веб-платформа, которая используется как основа для всё большего числа операционных систем – это прежде всего Chrome OS, потом Mozilla с ориентированной на смартфоны Firefox OS. Google недавно сделал «пакетные приложения» – Chrome Web Apps, которые ведут себя больше как нативные приложения и могут работать в автономном режиме и вне браузера – центральный элемент системы магазине Chrome Web Store.

Локальное хранение данных в настоящее время является еще одной областью в очереди на капитальный ремонт. Недавно опубликовано определение для нового Web Storage API, что позволит хранить мегабайты данных приложениям и сайтам, работающим в браузере.

2. Производительность

Медленная работа веб-технологий по сравнению с нативным программным обеспечением – ещё одна палка, которой бьют веб-приложения.

Де-факто, язык сценариев приложений в браузере – JavaScript. Он является чем-то вроде жернова, когда дело касается производительности. С одной стороны, это интерпретируемый язык программирования. До недавнего времени это означало, что исходный код JavaScript выступал в качестве инструкций для программного обеспечения под названием интерпретатор, а не компилировался в машинный код. Эта возможность позволяет переносить JavaScript между платформами, позволяя запускать его в браузере независимо от того, работает ли браузер на ПК с Mac, Windows или Linux PC или смартфоне с Android или iOS.

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

JavaScript также отягощён своим динамическим характером – например, тем, что не требует определяемых разработчиком типов данных. Такая динамическая природа заставляет интерпретаторы JavaScript обрабатывать широкий спектр возможностей при интерпретации кода и ограничивает возможности оптимизации производительности. Пути обхода подобных ограничений были обнаружены в таких вещах, как введение поддержки asm.js в Mozilla Firefox.

Asm.js является подмножеством JavaScript, которое воздерживается от нескольких динамических особенностей языка, и при этом позволяет движкам JavaScript в браузере выполнять оптимизацию производительности, что было бы невозможно из-за динамической природы языка JavaScript. Тем не менее, поддержка в настоящее время ограничивается только Firefox. Существуют и другие ограничения производительности, которые asm.js не может разрешить. Например, неспособность движка JavaScript справиться с многопоточным кодом.

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

Арчибальд (разработчик Google Chrome) недавно заявил, что одной из особенностей мобильных веб-приложений, которая более всего заметна пользователям как недостаток производительности – задержка в 300мс перед тем, как мобильные браузеры реагируют на касания пользователя экрана. Задержка реализована, чтобы обнаружить – повторяется ли действие и нужно ли его интерпретировать как двойное нажатие.

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

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

«Я думаю, что вопрос не в том — являются ли нативные приложения быстрее, чем при использовании JavaScript или веб-платформы вообще? А в том, что — «будет ли веб-платформа достаточно быстрой, чтобы запускать разумный диапазон приложений на разумном диапазоне устройств?»

3. Ограниченный доступ к функциям платформы

Родные приложения, как правило, первыми получают доступ к новым аппаратным возможностям конкретной платформы — будь то навигация с помощью GPS телефона и акселерометра или съемки с камеры телефона. Но если определённая аппаратная функция становится популярной, стандарты для реализации этой функции в браузере всегда будут следовать, сказал Рабин.

Работа по стандартизации интерфейсов API для веб-технологий доступа ко многим из функций, доступных на современных смартфонах проходит в рамках W3C. Текущая работа в этом году включает в себя: изложение API системного уровня, позволяющего веб-приложению управлять контактами устройства, API обмена сообщениями для отправки и получения SMS и MMS, новые механизмы для фотосъемки и записи, новые триггеры событий, которые могли бы использовать мышь, ручку и сенсорный ввод, новый push-API, позволяющий веб-приложениям получать сообщения в фоновом режиме, новые медиа-запросы для быстрореагирующего веб-дизайна, API для обмена информации с помощью NFC и точный контроль над загрузкой ресурсов в веб-документе.

В октябре прошлого года W3C также основал Рабочую Группу Системных Приложений, целью которой является обеспечение среды выполнения, безопасная модель, и связанные с ними интерфейсы API для создания веб-приложений с возможностями, сопоставимыми с нативными приложениями. С момента своего запуска, группа опубликовала семь спецификаций, затрагивая такие темы, как модель безопасности вне браузера и сырые сокеты.

Какова реальная перспектива для веб-приложений?

Рабин из W3C может быть, и уверен, что браузерные технологии станут «достаточно хорошими» для основной массы мобильных и стационарных пользователей, чтобы принять веб-приложения в качестве альтернативы нативным, но согласится ли с этим остальной мир? Это зависит от того, кого вы спрашиваете.

Одной из областей, где философия Рабина о том, что веб будет достаточно хорош, чтобы стать фактической платформой приложений уже взята на вооружение в правительстве. Цифровая Правительственная Служба Великобритании решила, что в большинстве случаев правительство будет создавать отзывчивый веб-сайт и приложения, которые работают на ПК, планшетах и мобильных телефонах, а не вкладывать средства несколько раз в создание отдельных приложений для IOS, Android и других мобильных платформ.

«Мы считаем, преимущества разработки и поддержки приложения будут очень редко оправданы затратами», писал в начале этого года заместитель директора службы, Том Лузмор.

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

 

Пример того, как сайт gov.uk адаптирует дизайн, чтобы соответствовать различным экранам и устройствам. Изображение: Цифровая Правительственная Служба

Но есть много компаний, которых всё-ещё нужно убеждать, что веб-приложения готовы для массового принятия. Ранее в этом году, старший директор мобильных разработок LinkedIn Киран Прасад объяснил, почему социальная сеть для профессионалов решила переключить свое внимание с мобильного веб-приложения на разработку нативного приложения.

Для LinkedIn неудача мобильного веб-приложения случилась из-за нехватки памяти и недостаточно плавной анимации интерфейса. Разработка мобильных веб-приложений, также оказалась сложнее, чем программирование для других основных платформ, сказал Прасад, ссылаясь на отсутствие отладчика и средств диагностики, которые могли бы дать фирме необходимую информацию об ошибках и проблемах с производительностью.

Широкий диапазон недостатков, которые LinkedIn выявили при разработке веб-приложения, показывает, насколько много работы предстоит сделать, прежде чем мобильные веб-приложения смогут достичь стандарта «достаточно хорошо» в глазах пользователей и разработчиков.

Также, основатель Facebook , Марк Цукерберг в прошлом году назвал самой большой ошибкой решение компании слишком полагаться на HTML5 в построении своих приложений. Тем не менее, обе компании по-прежнему разрабатывают под HTML5 и другие веб-технологии, и обе, кажется, стремятся к мобильной веб в долгосрочной перспективе.

Рабин остается оптимистично настроенным насчёт веб-приложений: «Возможности и совместимость веб-стандартов постоянно улучшаются, значит не будет никаких причин писать подавляющее большинство бизнес и коммерческих приложений, использующих что-то, кроме веб-технологий».

«На мой взгляд, это предопределение Судьбы».