Какой интерфейс для современного приложения?
Появляются 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.
Преимущества
Полная переносимость: признана всеми последними браузерами.
Очень широкий выбор рамок.
Совместимость с веб-стандартами: JavaScript, CSS, Document Object Model.
Работает локально без подключения к серверу.
Облегчить реализацию.
Недостатки
Использование CSS для форматирования зачастую трудоемко.
Программирование на JavaScript затруднено для больших программ.
Эволюции
Эволюция происходит в фреймворках, которые все больше разрабатываются, а также в новых веб-стандартах, предназначенных для поддержки веб-приложений. Постепенный переход от Node.js к ECMASCript 6 облегчает создание профессиональных приложений.
C # и XAML
XAML, как и XUL, является языком описания интерфейсов на основе XML. Но Microsoft рассматривает его как способ создания насыщенных интернет-приложений. Он предоставляет язык интерфейса для Windows с .NET, Linux с Mono и Linux-производных систем, таких как платформа Android.
Он использовался для графического интерфейса Windows начиная с Vista, и к Windows 8 и 10 как в интерфейсе Modern UI/Metro, так и на классическом рабочем столе с .NET.
Преимущества
Очень большая библиотека функций.
Выбор языка программирования на платформе .NET
Недостатки
Совместимость, однако, ограничена. Требуется WPF или WinRT, но не в Windows 10 и Core .NET.
Эволюции
Приложения Immersive Modern UI в Windows 10 могут использовать XAML. Открытый источник .NET также может дать новую жизнь XAML.
Читайте также: Какое будущее у XAML?
Java и JavaFX
Решение Java является полным, потому что оно предлагает серверный фреймворк, а на стороне браузера - использование апплетов, которые представляют собой небольшие приложения, работающие внутри веб-страницы. Это также может быть дополнено серверным языком сценариев, JSP. Добавим в Это сервлеты для веб-сервисов и предоставляет портативную и комплексную платформу для корпоративных веб-приложений. JavaFX помогает создавать графические интерфейсы пользователя.
Преимущества
Чрезвычайно обширная библиотека функций.
Совместимость со всеми платформами.
Недостатки
На клиентском компьютере должна быть установлена среда выполнения. Для веб-приложений сервер должен поддерживать Java, что практически подразумевает выделенный сервер.
Программирование на Java может быть сложным.
Эволюции
XAMJ, Java-реализация XAML, могла бы сочетать преимущества формата XAML с переносимостью Java, но стандартным решением для построения интерфейсов является JavaFX.
Qt и QML
Изначально Qt - это интерфейсный фреймворк для Linux, который был портирован на все операционные системы, включая Android и iOS. Он включает в себя все виджеты, необходимые для создания интерфейса, а также имеет свой язык интерфейса, QML. Это имеет синтаксис, похожий на JSON, что делает его похожим на JavaFX .
Преимущества
Портативность настольных и мобильных ПК.
Интегрированный движок рендеринга документов и интерфейсов на базе Chromium .
Средство разработки Qt Creator упрощает создание приложений.
Недостатки
Время выполнения Qt велико (не менее 30 Мб). Но то же самое верно и для Java.
Программирование производится на C++, что позволяет быстро работать с приложениями, но часто встречаются ошибки.
Сделать так, чтобы JavaScript в интерфейсе и C++ в бэкэнде общались, может быть сложно.
Эволюции
Мобильная операционная система Sailfish основана исключительно на Qt. Он предлагает совместимость с Android (у которого есть SDK для C++), а потому может заменить виртуальную машину Dalvik с добавленной портативностью .
Сводная таблица
Выбор интерфейса веб-приложения можно упростить с помощью следующей таблицы:
HTML 5 |
XAML |
QT |
JavaFX |
|
Отображать в браузере |
да |
нет |
да |
нет |
Переносимость операционной системы |
да |
Неравнодушный |
да |
да |
Совместимость с мобильными устройствами |
да |
да |
да |
да |
Локальное использование (без подключения) |
да |
да |
да |
да |
Производительность (быстродействие) |
По данным |
да |
да |
да |
Бесплатно |
да |
да |
да | По данным |
Избыточная сложность |
нет | нет | C++ |
Ява |
Отметим, что возможно объединение решений для разрешения недостатков формата. Например, Ajax можно использовать на стороне клиента совместно с Java на сервере, чтобы избежать медлительности апплетов. Фреймворки также позволяют работать в автономном режиме.
Другие решения
Язык векторной разметки SVG позволяет создавать графические компоненты для интерфейса веб-приложения. Наличие векторных виджетов позволяет по желанию менять размер экрана, делая его более подходящим для десктопной графики или игровых приложений. Веб-приложения и мобильные приложения не должны использовать SVG, поскольку совместимость между браузерами несовершенна.