На чем быстрее написать GUI — Qt/C++ (традиционный подход) или Qt/WebKit/JQuery/HTML5 (браузерное приложение)?
Пишу на Qt/C++ приложения в традиционном стиле - классы, объекты, виджеты, сигналы, слоты и т.д.
Вижу, что Qt развивается во все стороны сразу - HTML5, QML.
Неспроста, подумал я, что Qt двигается в эти стороны.
Сейчас при начале нового проекта, доступны (крупно) 3 типа:
1. GUI приложение Qt
2. Приложение QtQuick
3. Приложение HTML5
Возможности 1-го типа знаю. Про остальные не знаю ничего.
Может на них лучше писать GUI, да и в принципе десктопные приложения? В чем их преимущества и отличия?
Интересует скорость разработки приложения в целом, легкость поддержки, гибкость, расширяемость сторонними библиотеками.
Браузерное быстрее.
Нет заморочек с крестами (в JS можно намутить любое ООП какое тебе больше по душе, плюс есть CoffeeScript - можно юзать функциональщину), куча разных фреймворков – выбирай любой, в котором тебе работать удобнее. Фреймворков, которые специально точились для того и только для того, чтобы разрабатывать гуй было легко, удобно и быстро.
Проблема - приложение выглядит не нативно.
Частичное решение - берешь делаешь браузерное приложение, и открываешь его в QtWebKit - оно начинает вести себя как нативное (рамочка, сворачивание, итп).
Сильно не наоптимизируешь - сложный гуй будет жрать память и тормозить.
Проблема - если не понять, что в JS хорошего и как это использовать, получится ад похуже крестов. Надо вникать.
+ имхо "HTML5" - это бесполезный баззворд. W3C сошло с ума и делает какую-то фигню. Вместо того чтобы расширять возможности кодера, оно прибивает гвоздями какую-то лажу прямо в браузер. Наверняка это происки проклятых DRMщиков. Правильно говорить "приложение с веб-интерфейсом".
Всё зависит от того как события будут в код пробрасываться. Когда-то давненько делал интерфейс на activex IE, тот еще ад, да еще и слишком сильно тормозит, с большим объемом данных будет кошмар, нет виртуальных контролов, грузить все данные надо сразу. С событиями особых проблем не было, нормально в C++ пробрасывалось. Но уж очень неотзывчивый интерфейс, таблицы были по несколько тысяч строк, сортировки и т.д. Делалось всё на стороне C++, постоянно пересобиралось DOM дерево.