субота, 9 серпня 2014 р.

Веб приложения против нативного кода

Известный разработчик Майкл Холл (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 никого уже не будет волновать. Те операционные системы, которые не смогут обеспечить в будущем работу веб приложений ждёт судьба кануть в лету истории.


От себя лично хочется добавить, что рассматриваются нативные программы, использующие Qt/QML. QML со стороны native и JS со стороны Web и сближают эти два лагеря, размывая границу между ними. Но если взять кристально чистый native code, то с ним в плане быстродействия ничто не может сравниться. Хотя следует признать, что пользователю часто плевать на скорость, если программа укладывается в некие разумные рамки.

Соглашусь, что чем дальше в будущее, тем будет всё равно на чём написана программа и какие она использует технологии. Недавние новости про гегемонию Google с Android (байт код Java) захватившим 85% мобильного рынка это только подтверждают. Ведь оставшийся кусок делят Apple с iOS, для которого софт пишется с использованием Objective-C, а это чистый native code, и Microsoft с MS Windows + пузатая мелочь.

Реальный телефон с Ubuntu Phone на борту.

Программная связь:
Ubuntu SDK и разработка ПО.
Новая модель работы приложений в Ubuntu.
Cordova поддержит Ubuntu Touch в следующем релизе 3.3.

Немає коментарів:

Дописати коментар

HyperComments for Blogger

comments powered by HyperComments