Какой интерфейс для современного приложения?

Появляются HTML 5, QML, XAML, платформы, каждая со своими преимуществами и недостатками, и выбор возникает, когда хочется создать веб-приложение, RIA (Rich Internet Application) с тем же интерфейсом и теми же возможностями, что и у локального приложения, как это делают некоторые популярные сайты.
Страх пойти по неправильному пути и тратить месяцы на развитие с окружающей средой, которую один, возможно, не сможет достичь, в то время как другой, возможно, окажется более подходящим, отражается на форумах, где вопрос очень присутствует.
Проблема становится еще более сложной, когда мы понимаем, что различные предлагаемые решения продолжают развиваться и предлагают функции, которые ранее отсутствовали, и мы задаемся вопросом, возможно ли, что в будущем одна платформа будет предлагать те же возможности, что и другая?

JavaScript и HTML 5

Новая спецификация HTML 5 обеспечивает универсальный интерфейс для онлайн-приложений и некоторых локальных приложений благодаря офлайн-режиму.

Это дополняется Ajax, который представляет собой комбинацию техник, составляющих динамический HTML (CSS, JavaScript, DOM) и объекта XMLHttpRequest, который дает возможность асинхронного взаимодействия между браузером и сервером. И совсем недавно WebSocket и WebRTC для лучшего взаимодействия с сервером или непосредственно с другими клиентами в случае WebRTC.
Приложение использует скриптовый язык на сервере наподобие PHP или ASP или JavaScript с Node.js.

C # и XAML

XAML, как и XUL, является языком описания интерфейсов на основе XML. Но Microsoft рассматривает его как способ создания насыщенных интернет-приложений. Он предоставляет язык интерфейса для Windows с .NET, Linux с Mono и Linux-производных систем, таких как платформа Android.
Он использовался для графического интерфейса Windows начиная с Vista, и к Windows 8 и 10 как в интерфейсе Modern UI/Metro, так и на классическом рабочем столе с .NET.

Читайте также: Какое будущее у XAML?

Java и JavaFX

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

Qt и QML

Изначально Qt - это интерфейсный фреймворк для Linux, который был портирован на все операционные системы, включая Android и iOS. Он включает в себя все виджеты, необходимые для создания интерфейса, а также имеет свой язык интерфейса, QML. Это имеет синтаксис, похожий на JSON, что делает его похожим на JavaFX .

Сводная таблица

Выбор интерфейса веб-приложения можно упростить с помощью следующей таблицы:

 
HTML 5
XAML
QT
JavaFX
Отображать в браузере
да
нет
да
нет
Переносимость операционной системы
да
Неравнодушный
да
да
Совместимость с мобильными устройствами
да
да
да
да
Локальное использование (без подключения)
да
да
да
да
Производительность (быстродействие)
По данным
да
да
да
Бесплатно
да
да
да По данным
Избыточная сложность
нет нет
C++
Ява

Отметим, что возможно объединение решений для разрешения недостатков формата. Например, Ajax можно использовать на стороне клиента совместно с Java на сервере, чтобы избежать медлительности апплетов. Фреймворки также позволяют работать в автономном режиме.

Другие решения

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