Известный разработчик Майкл Холл (Michael Hall) обратил внимание на спор между разработчиками Стюартом Лангриджем (Stuart Langridge) и Брайном Ландюком (Bryan Lunduke) по поводу современных тенденций в создании ПО. Веб приложения (WebApps) лучше или хуже родных (native) приложений?
Майкл считает, что в первую очередь нужно разобраться, что именно различает эти технологии.
WebApps - это набор файлов с языком разметки HTML, склеенные со скриптовым языком JavaScript и выполняющиеся в специализированном контейнере (браузер), подгружая необходимое с удалённого источника (веб сервер).
Родной (native) код в Убунту взял курс на использование Ubuntu SDK, опирающегося на кроссплатформенный фреймворк Qt/QML. QML (Qt Meta-Object Language) - это набор файлов с описанием элементов, склеенные со скриптовым языком JavaScript и выполняющиеся в специализированном контейнере (qmlscene), подгружая необходимое с удалённого источника (AppStore).
Различие оказывается лишь в том, откуда и как часто код приложения подгружается.
Самое большое препятствие для WebApps по сравнению с родными приложениями, состояло до сих пор в том, что они были отрезаны от вариантов интеграции с системой. Другими словами, до сего момента веб приложения были не более чем вкладкой в окне браузера, который пытался представить контент как родное приложение. Такие вещи, как локальное хранилище и уведомления, пытались частично восполнить разрыв между WebApps и системой, но они были ограничены необходимостью поддерживать наименьший общий набор возможностей различных браузеров.
Только с появлением Unity, несколько лет назад, впервые появилась для веб приложений возможность быть более глубоко интегрированными с системой через WebApps-API. Это позволило веб приложениям не только обладать своим запускным значком на панели Launcher'а и отображаться в окне переключения окон, но и получить новые API, благодаря которым можно взаимодействовать с системой так же, как и родные приложения. Например, можно управлять аудио плеером из индикатора звука в веб приложении.
С новым Ubuntu SDK веб приложения получать ещё больше возможностей. Для примера, веб приложение Facebook в Ubuntu Phone написано с использованием QML и позволяет обмениваться контентом с ним из других приложений - WebApp и QML приложений. Вы можете получать уведомления, даже если данная программа не запущена.
Майкл соглашается со Стюартом, что веб приложения можно рассматривать как родные приложения, ибо с каждым днём разница между ними размывается. Но Майкл так же считает, что WebApp не заменят родные приложения, а в ближайшие пару лет противостояние WebApp vs Native никого уже не будет волновать. Те операционные системы, которые не смогут обеспечить в будущем работу веб приложений ждёт судьба кануть в лету истории.
Соглашусь, что чем дальше в будущее, тем будет всё равно на чём написана программа и какие она использует технологии. Недавние новости про гегемонию Google с Android (байт код Java) захватившим 85% мобильного рынка это только подтверждают. Ведь оставшийся кусок делят Apple с iOS, для которого софт пишется с использованием Objective-C, а это чистый native code, и Microsoft с MS Windows + пузатая мелочь.
Программная связь:
Ubuntu SDK и разработка ПО.
Новая модель работы приложений в Ubuntu.
Cordova поддержит Ubuntu Touch в следующем релизе 3.3.