Мёртв ли QML? Стоит ли забыть раз и навсегда о кроссплатформенных гибридных приложениях на Qt?
Вопрос, возможно, холиварный, но хочется узнать мнение сообщества. Примерно в апреле этого года я открыл для себя PyQt5, а месяц назад окунулся в удивительный мир Qt C++, мир порядка и статической типизации. QML, собственно, заинтересовал еще на стадии работы с PyQt5. Почитал разнообразные статейки, на хабре и схожих ресурсах, где приводились как просто обзоры QML+JS+Cpp, так и статистика по разнообразным фреймворкам для кросплатформенной мобильной разработки, от PhoneGap, до React Native. По некоторым опросам, многие считают Qt, более юзабельным, чем расхваливаемый некоторыми моими знакомыми React Native. Однако не наблюдаю на том же Upwork ажиотажа вакансий по QML разработке (4 дня назад, 9 дней, 20+ дней по одной вакансии), а вот React Native, за последние только сутки - более десятка... Да и Xamarin интересует людей больше, чем Qt. Так что же получается, мнение профессионалов не коррелирует с спросом на рынке? Или это не профессионалы, кто отдает свои голоса в пользу Qt? Есть ли здесь такие, кто занимается гибридной разработкой, поясните тонкости? Или, может, вся эта возьня, сама по себе - ересь?
Если скорость разработки на Qt под три платформы высока - значит можно поднять хайп и после 2-5 лет усилий по продвижению, все будут задавать вопрос - "почему все не пользуются реактом"
Однако не наблюдаю на том же Upwork ажиотажа вакансий по QML разработке ..., а вот React Native, за последние только сутки - более десятка...
Про C++ много ли вакансий на том же Upwork?) Чем технология ближе к няшному веб-стеку, тем больше там специалистов => дешевле. Поэтому и распределяется так: React - Xamarin - Qt.
Толстый Лорри, Жаль, Жаль. Вот тот-же десктопный Telegram, как я понял, полностью на QtWidgets с какой-то магией в QPainter, даже не QML. А если я не ошибаюсь, и iOs и Android кушают QtWidgets.
Филипп Бондарев, я особо в код Telegram desktop не копал, но там вроде бы просто кастомные контроллы рисуются, без какой-либо магии (= Во времена его разработки QML был тостаточно проблемным.
QML больше для RAD полезен, большинство же приложений, что я встречал, были на виджетах. Это более стабильный, производительный инструмент и достаточно развитый (если использовать MV-фреймворк и прочие его плюшки).
Моё мнение таково:
1) популярность QML на "том же Upwork" зависит от популярности C++ на "том же Upwork";
2) C++ - язык крупномасштабной командной разработки, либо же разработки узкоспециализированной;
3) заказы на крупномасштабную командную разрабоку всегда будут составлять лишь небольшую часть заказов на Upwork ввиду природы этого ресурса (т.к. на этом ресурсе не только крупные заказы а ЛЮБЫЕ заказы);
4) вывод: Upwork - плохой критерий оценки пригодности QML для продакшена.
Что касается React Native - это инструмент для задействования frontend-рабочей силы в сфере, где специалист QML/C++ будет более дорогим. Это разумный выбор для приложений и компаний, где ещё нет C++ разработчиков но есть JS разработчики, и где ещё нет C++ кодобазы, но есть JS, либо ещё нет никакой вообще.
Примерно с таким же успехом я могу заявить, что Electron - лучший инструмент для продакшен-десктопа. Ну понятно наверное о чём я говорю.
Занимаюсь гибридной. По-моему QML дорогое удовольствие (как стоимость часа разработчика) для простых интерфейсов и не столь популярен как раз из-за этого (готовые контролы по типу виджетов в нём появились относительно недавно, но досихпор сыроваты), а вот для кастомных: типо терминалов оплат, детских образовательных программулек и прочего он незаменим, а на такое и спроса гораздо меньше.