Что нового появилось/произошло в Qt за полгода почти год с прошлой статьи. Релизы 5.9 и 5.10, а также новые инструменты, аддоны, платформы и переход на подписочную модель лицензирования.
Я бы хотел писать о новостях чаще, чем раз в полгода год, но получается как получается. Эту статью я вообще начинал писать в январе, но закончить удалось только сейчас.
Сегодня содержание такое:
Конференции и выставки
Qt Contributors Summit 2017
Это конференция разработчиков Qt. Не только тех, кто работает в The Qt Company (их даже было меньше половины участников), а вообще всех желающих, кто участвует в проекте.
В 2017 году Qt Contributors Summit был совмещён с Qt World Summit 2017, и проходил в Берлине. Программа и конспекты сессий опубликованы на вики.
В этом году было решено провести конференцию в Осло, то есть World Summit на этот раз пройдёт отдельно.
Qt World Summit 2017
Мероприятие (конференция), которое организует сама The Qt Company. В 2017 году саммит прошёл в Берлине. По числу посетителей получился рекорд — около 1000 человек (в прошлом было 800?).
В адресе страницы события (https://www.qtworldsummit.com) год не указан, потому, надо полагать, скоро эта ссылка начнёт указывать на саммит 2018 года (уже указывает), а 2017 уедет куда-нибудь в архив (нет, просто куда-то дели). Но пока не уехала (уже уехала) — можно посмотреть программу конференции и участников выставки. Там же можно было загрузить мобильное приложение саммита, написанное на Qt (точнее, на V-Play), и поразиться тому, как оно тормозит и крашится на каждый чих, спасибо партнёрам-разработчикам. Почему мы сами который год не можем написать приложение для собственного саммита — непонятно.
Все выступления с конференции опубликованы на YouTube.
- Keynotes:
- Qt Design Principles and Roadmap, Lars Knoll, The Qt Company;
- Modern C++, Herb Sutter;
- Trends in Software and Business, Igor Beuker;
- One Hundred Languages, Linda Liukas, Hello Ruby;
- How Do You Measure What You Can’t See? Steven Goldfarb, ATLAS experiment, CERN;
- Welcome to Qt World Summit 2017, Juha Varelius, The Qt Company;
- Game Engine Evolution: From Tech to UX, Alex Montgomery, Amazon Lumberyard;
- An IDE for Embedded Devices, Justin Howard, Qualcomm;
- Business:
- Cut development time and cost with Qt and QML, Thomas Boutroue, Independent Qt Expert;
- The Evolution of the LGPL License Agreement, Paul Criswell, Independent General Counsel;
- Applying Spatial Analytics to Unlock the Power of your Data, Eric Bader, Esri;
- Qt vs. Web – Total Cost of Ownership, Burkhard Stubert, Embedded Use;
- System-on-Modules HMI and M2M solutions development, Rimac Automobili, Toradex;
- Success with mobile first in a real business, Roland Wienen, caseIC-SYS Informationssysteme;
- First experience with Qt for Mobile: our journey, Bogdan Ogrean, FORTecH;
- One developer, Three products, Three platforms, Nuno Filipe Magalhaes Santos, Imaginando;
- Investing into Software Technologies, Petteri Hollander, The Qt Company;
- Interactive DOOH software with Qt libraries, Ionut Alexandrescu, The Qt Company;
- App Dev:
- Take a walk on the PySide, Friedemann Kleint, The Qt Company;
- A Cute app deserves a Clean architecture, Marco Piccolino, Maply;
- Improve your productivity with Clang tools. Olivier Goffart, Woboq GmbH;
- RESTful API description languages, Alexey Rusakov;
- QtBluetooth on mobile devices — A dragon guide, Mathias Hasselmann, KDAB;
- Technical Tips and Examples for Development & Testing, Christian Feldbacher, V-Play;
- Introduction to User Experience Design for Developers, Jeff LeBlanc, ICS;
- Test coverage of Qt C++ and QML, Harri Porten, froglogic;
- The Pre-User and the Unified User Experience, Jeffrey Brendecke Software Services;
- Android & iOS — put your app on a diet, Maciej Weglarczyk, GameDesire;
- No Limits: HowTo make a more complicated mobile business APP, Ekkehard Gentz;
- Inside The Qt Object Model, Simon Hausmann, The Qt Company;
- QML For C++ Developers, Bo Thorsen, Viking Software;
- Embedded:
- Using Qt to Build Next Generation Intuitive High End Cameras, Richard Rojfors, Hasselblad;
- Qt Wayland Compositor: Creating multi-process user interface, Johan Helsing, The Qt Company;
- Accelerating Time to Market for Embedded Device, Jouko Luukas The Qt Company;
- Gestures Handling in Qt, Bo Thorsen Viking Software;
- Qt for Embedded Device creation — future direction, Marko Finnig, The Qt Company;
- KNX in the IoT world, Dries Verbrugge, KNX;
- Using Virtual Keyboards on Qt Embedded Devices, Jan Arne Petersen, KDAB;
- Graphics and 3D:
- Integrating OpenGL with Qt Quick 2 applications, Giuseppe D'Angelo, KDAB;
- Integrating out of process graphical content into a QtQuick scene, Giulio Camuffo, KDAB;
- Creating User Interfaces for Virtual Reality with Qt, Andy Nichols, The Qt Company;
- Breathing life into your applications: Animation with Qt 3D, Sean Harmer, KDAB;
- Modern Graphics APIs in Qt: Vulkan and friends, Laszlo Agocs, The Qt Company;
- Earth rendering with Qt 3D, Paul Lemire — KDAB;
- Qt in Use in Fortune 500 Companies, V-Play;
- Qt 3D as a Runtime Enabler, Laszlo Agocs, The Qt Company;
- What's new in Qt 3D? Sean Harmer, KDAB;
- Creating 3D User Interfaces with Qt 3D Studio, Sami Makkonen, The Qt Company;
- Interacting with 3D content, Mike Krus, KDAB;
- Medical:
- Technical Overview of Qt in Medical devices, Ionut Alexandrescu, The Qt Company;
- Building a Human Machine Interface for the medical IoT, Jereme Givens-Lamothe, DocBox;
- The Present and Future of Qt in the Medical Industry, Roger Mazzella, The Qt Company;
- Imaging Tissue Architecture: The Next Frontier in Battling Cancer, Michel Nederlof, QIS;
- Communicating with Thoughts, Matthias Hohmann, Max Planck Institute;
- Technical Deep Dive:
- QObject Deep Dive, Bo Thorsen, Viking Software;
- Qbs – Build Systems State of the Union, Jake Petroules, The Qt Company;
- QtLocation 5.9: from tilted maps to pluggable engines, Paolo Angelelli, The Qt Company;
- Pointer Handlers for fluid applications in Qt Quick, Shawn Rutledge, The Qt Company;
- QStringViews, QStringViews everywhere, Marc Mutz, KDAB;
- Multithreading with Qt — Giuseppe D'Angelo, KDAB;
- Industrial Automation:
- QtWebGL, Jesus Fernandez Prieto, The Qt Company;
- Securing Qt based Linux Devices, Maciej Halasz, TimeSys;
- Device Tailored Compositors with QtWayland, Andreas Cord-Landwehr, CLAAS E-Systems;
- Practical Qt Lite, Frank Meerkotter, basysKom;
- Boot Time Optimization for Qt-powered Devices, S. Agner, R. Avila, Toradex/The Qt Company;
- Designing the Internet of Things with Microsoft, Sylvain Ekel, Microsoft;
- QtKnx: the new Qt module dedicated to home automation, The Qt Company Lucie Gerard;
- Qt and Mqtt, Maurice Kalinowski, The Qt Company;
- How CoAP standard makes your IoT talk with Qt, Adrien Leravat, Witekio;
- LPWAN will make the IoT Revolution Real, Massimo Santoli, Gimasi;
- ChargePoint EV Charging: One UI to rule them all, Matthew Hungerford, Chargepoint;
- Qt for Automation, Lars Konig, The Qt Company;
- Intro to the WebOS QtWayland Compositor, Florian Haenel, LG Electronics;
- Automotive:
- Functional safety with Qt and Qt Safe Renderer, Tuukka Turunen, The Qt Company;
- Plugin-based IVI Architectures with Qt, Krzysztof Krzewniak Vladimir Moolle, ICS;
- Communication with slave device over CAN bus from embedded, Nazar Babik, Viking Software;
- QtWS17 — Maximize your creativity and quality for automotive HMIs, Hirotaka Suzuki, sdtech;
- Automotive navigation with Mapbox GL and QtLocation, Bruno de Oliveira Abinader, Mapbox;
- QML-driven HMI Architectures for Rolling Embedded Devices, Christoph Sterz, KDAB;
- GammaRay — Taking a deeper look into your Qt application, Volker Krause, KDAB;
- Qt for gesture control and body tracking applications, Sascha Klement, Gestion;
- Modbus with Qt, Morten Winkler Jorgensen, Viking Software;
- Future of Vehicle HMI Systems, Takayuki Tanabe, Panasonic ITS;
- Behind the scenes of a show car: Rapid UI/UX prototyping, Alex Hilliger, Daimler;
- Complex Event Processing of An Electric Car In A Simple Way, Muge Kural, Eteration;
- QtIVI: Integrating and Testing vehicle functions with Qt Automotive Suite, KDAB;
- Under the Hood of Qt Automotive Suite After One Year of Hacking, Johan Thelin, Luxoft;
- Race to digital cockpits – win with Qt, Tero Marjamaki, The Qt Company.
На выставке в центре зала показывали новые разработки:
- Qt KNX;
- Qt MQTT;
- Qt WebGL streaming;
- Qt Quick Controls Imagine Style;
- Qt Safe Renderer;
- Qt 3D Studio.
Вокруг стояли стенды партнёров и клиентов, которые показывали что-то из своего. Например, Mercedes-Benz прикатили вот такой концепт-кар.
Начиная с 2018 года, саммитов теперь несколько и проходить они будут в разное время и разных местах. В этом году будет 2: американский (Бостон) и европейский (Берлин) — оба ближе к концу года. Далее планируется добавить третий для стран Азии (возможно, в Токио).
Qt на Embedded World 2018
Как и в прошлом году, мы были на выставке Embedded World в Нюрнберге.
Из интересных демо можно выделить:
- AirServer;
- сравнение Qt и JavaFX;
- создание HMI "на лету";
- Qt на i.MX6 ULL без аппаратного ускорения;
- экспериментальный порт Qt на MCU (о нём ниже).
Что вообще нового
Изменения в коммерческой лицензии
Начиная с января 2018, лицензии Qt для всех продуктов перешли на модель подписки (term-based), то есть больше нельзя приобрести "пожизненную" лицензию. Вообще, для тех кто до этого и так "продлял" лицензию каждый год (для обновлений и поддержки) ничего особо не поменялось, потому что фактически это уже и была подписочная модель. Но есть отличие: раньше можно было не продлять лицензию и спокойно продолжать разрабатывать/распространять свой продукт (сама лицензия-то пожизненная), но теперь условия лицензионного соглашения это запрещают — у вас должна быть хотя бы одна активная подписка, иначе нельзя ни вести разработку, ни продавать уже готовый продукт. Вот это поворот!
Я представляю, что вы хотите сказать мне на тему лицензий-подписок, я и сам всё это не раз говорил разработчикам тех или иных приложений (Ulysses, например), но не я это придумал, я только доставляю новость. Но вообще, для фреймворка подписочная лицензия выглядит более-менее оправданной (по сравнению с подпиской на текстовый редактор).
Из положительных изменений — если вы приобретаете Device Creation, то лицензия Application Development теперь входит в его состав. Кроме того, раньше для RTOS (операционных систем реального времени) была отдельная цена для каждой, а теперь всё включено.
Всё это отражено в новом лицензионном соглашении (License Agreement version 4.0, которое кстати больше не разделяется на отдельные соглашения для Application Development и Device Creation.
Изменения на сайте
Работа над "улучшением" вебсайта не останавливается ни на минуту, и длина списка подключённых сторонних скриптов уже достигла километра. Анимация всего подряд позволила достичь утилизации процессора пользователя на уровне 80-90% и соответствующего энергопотребления, что, однако, не осталось незамеченным для посетителей, потому сейчас идёт героическая борьба за оптимизацию всех этих красот.
Если вы задавались вопросом, почему какие-то разделы сайта лежат на поддомене www
, а какие-то на www1
, то это потому что на сайте используется две разных CMS. Ну потому что вот так.
Где-то в мае 2017 очередной эффективный менеджер решил запрятать Open Source загрузки куда подальше и поставить побольше кнопок Buy Qt ("купи лицензию"). Запрятали настолько хорошо, что нам даже стали присылать письма с вопросом "Почему вы удалили Open Source?!". К счастью, встретив критику как от Open Source сообщества, так и внутри компании, через каких-то полгода это изменение пересмотрели и вернули всё почти как было.
Появился новый раздел — Qt Resource Center, такой агрегатор различных ресурсов (статьи, видео, "истории успеха" и т.д.) с разделением на категории и поиском. Теперь можно, например, разом заполучить все твиты официального аккаунта (но зачем).
Релизы
Qt 5.9
31 мая 2017 вышел Qt 5.9. Он же следующий после Qt 5.6 релиз LTS — с долгосрочной поддержкой (3 года).
В статье на OpenNET уже есть отличный обзор.
Кстати, это вроде бы первый релиз со времён Qt 4.7, для которого было выпущено более трёх корректирующих (minor) релизов (текущая версия 5.9.5).
И начиная с этой версии, корректирующие (minor) релизы теперь опять не обновляют текущий, а устанавливаются отдельно:
Qt 5.10
7 декабря 2017 вышел Qt 5.10.
И опять прекрасный обзор релиза в статье на OpenNET.
Аддоны
В дополнение к обычным (базовым) лицензиям (Application Development и Device Creation) теперь будут появляться "аддоны". Вообще, хотели сделать что-то вроде магазина аддонов/плагинов (как qpm, только официальный), но дальше идеи пока не пошло, потому они будут просто добавляться в установщике.
Если взять за основу схему из прошлой статьи, то новая выглядит так:
И без того непростая структура лицензирования стала ещё сложнее. Если попытаться объяснить всё вкратце, то аддоны в "стандартные" лицензии не входят и продаются за дополнительные деньги. Учитывая, что не всем интересно читать про коммерческие лицензии, я подробно расписывать не буду (кроме того, надо и отделу продаж дать поработать).
Если же вы используете Qt под Open Source, то для вас ничего не поменялось — просто добавились новые библиотеки и инструменты.
Qt for Automation
Qt for Automation — первый аддон, объявленный в августе 2017. Представляет собой пакет библиотек для построения решений для так называемых Industry 4.0 и M2M.
На данный момент (Qt 5.10) в состав аддона входят:
С Qt 5.11 должен появиться OPC UA, затем CoAP и другие. Кроме самих библиотек также предоставляется пакет сервисных услуг по установке/настройке/обучению.
Qt for Medical
Пока больше промо, чем реальный продукт/аддон. Ну а так, конечно, планируется добавление функционала, специфичного для медицинской индустрии, например работа с форматом DICOM (хотя конкретно для этого формата уже есть сторонние реализации).
На самом деле, для связанных с медициной проектов больше важна сертификация, чем фичи, и потому мы теперь входим в состав таких ассоциаций и альянсов как AdvaMed, Qmed и MassMEDIC. Я от этой индустрии далёк, потому о реальной пользе от вхождения в эти альянсы ничего сказать не могу.
Qt 3D Studio
В октябре 2017 исходники Qt 3D Studio были наконец-то опубликованы (статья на OpenNET). Почему не опубликовали сразу после получения их от Nvidia — потому что там всё было написано на MFC, и решили сначала портировать это на Qt.
Через месяц после публикации исходников выпустили и версию 1.0. В ней всё ещё используется собственный 3D движок за авторством Nvidia, но уже почти закончена работа по переводу его на уже существующий Qt 3D (потому что хватит плодить движки).
Qt 3D Studio и её рантайм доступны как под коммерческой лицензией, так и под GPLv3 (под LGPLv3 нет). Сама студия бесплатная, но использование её рантайма в вашем коммерческом приложении увеличивает стоимость лицензий на распространение (если таковые полагаются).
Qt Design Studio
Вообще, это пока полусекретный проект, но раз на официальном канале опубликовали это видео, то получается уже и не очень секретный.
Но на всякий случай, пока без особых подробностей. Когда-то скоро должен состояться официальный анонс (через пару недель?) и первая публичная бета-версия (в июне?).
Qt Safe Renderer
Qt Safe Renderer — это сертифицированный (IEC 61508 и производные стандарты functional safety) рендерер графики. Фактически отдельное приложение, которое рендерит критичные элементы GUI независимо от главного приложения. И если главное приложение "помрёт", то эти элементы продолжат отображаться на экране.
Очевидные сферы применения: автомобильная и медицинская индустрии, где зависание главного приложения на скорости 200 км/ч или во время хирургической операции чревато негативными последствиями.
Пример использования в цифровом инструментальном кластере (дашборде) автомобиля:
Если интересно, я могу написать отдельную статью с "живым" примером на железе под управлением QNX (в конце статьи будет опрос). Но сразу хочу сказать, что Safe Renderer в Open Source не попадёт и будет доступен только за деньги (и очень немаленькие).
Roadmap
- Скорый релиз PySide — использование Qt из Python;
- Qt Quick Pointer Handlers — "более лучший" мультитач и вообще работа с тачскринами;
- Qt for WebAssembly — запуск Qt приложений в браузере (
не знаю, зачеммогу попытаться объяснить, зачем); - Переработка (new compiler pipeline) QML Engine;
- Поддержка формата KTX;
- Qt 5.11 будет в мае-июне 2018 (уже вышел RC — release candidate);
- Следующий LTS релиз будет Qt 5.12 (ожидается в конце осени 2018). Минимум новых фич, фокус на надёжность и производительность;
- Qt 6 ожидается очень примерно года через два;
Qt на микроконтроллерах (MCU)
Очень часто спрашивают, можно ли использовать Qt для разработки ПО, и частности GUI, на микроконтроллерах.
И вот мы провели исследование, завершившееся портированием Qt под операционную систему реального времени RTEMS и оптимизацией сборки Qt для запуска на микроконтроллерах STM32F469, STM32F746 и STM32F769.
О результатах исследования недавно вышел пост в официальном блоге, и кстати говоря, оригинал этого поста вообще-то был написан на русском, так что с минимальными усилиями его можно опубликовать и на Хабре (об этом тоже будет опрос в конце статьи).
Пока идёт сбор отзывов от клиентов, кто куда и что хотел бы портировать, и потом на основе пожеланий будет планироваться дальнейшее развитие.
Вакансии
В этом году вакансий не так много, как в прошлом, но поиск новых сотрудников продолжается. Так что если что-то заинтересовало, можете написать мне, и я расскажу подробнее.
Вот например уже больше полутора лет (серьёзно) в берлинский офис разыскивается sales engineer — это такой человек, который разбирается в Qt и при этом может разговаривать с людьми (клиентами) и отвечать на их технические вопросы. Уже настолько отчаялись найти, что возьмём кого угодно будем рады любым кандидатам. Кстати, не самый плохой способ завести трактор, хотя наверное мне не стоит такое говорить. Осложняется вакансия тем, что так как позиция в Берлине, то очень желательно знание ещё и немецкого.
Всего в 2017 наняли около 130 человек. Люди приходят из всех (включая русскоязычные) частей планеты, никаких рассовых/религиозных/половых предпочтений/предрассудков нет (кроме того что на позиции эффективных менеджеров берут только чаще финнов (шутка)).
Заключение
Если хотите узнать о чём-то подробнее, пишите комментарии, я постараюсь ответить сам или узнать у тех кто знает.
Комментарии (79)
Harrix
09.05.2018 07:26+1> Qt for WebAssembly — запуск Qt приложений в браузере (
не знаю, зачеммогу попытаться объяснить, зачем)
Ждем! А запуск любых приложений? QML часть или с С++ тоже?
И да. В QtQuick Controls 2 появится когда-нибудь TreeView?
NewStahl
09.05.2018 12:59+1>Если хотите узнать о чём-то подробнее, пишите комментарии
А расскажите про поддержку Андроида и перспективы этой поддержки. Дело в том, что поддержка есть (я довёл пару программ до Google Play без особых приключений), но Google начал ставить палки в колёса и на данный момент собрать нормально работающее окружение для разработки на Qt под Android — задача мутная и есть основания считать, что дальше будет только хуже.
Если кто в курсе, то было бы интересно почитать…Elsedar
09.05.2018 17:53А какие конкретно палки ставит google? У меня тоже есть 1 приложение в google play, никаких проблем не замечал. Правда само приложение иногда падает, особенно, если его часто запускать и тут же закрывать, но это уже претензия к Qt.
RPG18
09.05.2018 14:24могу попытаться объяснить, зачем
время от времени на формумах рунета кто-нибудь да и спросит, как написать "сайт" на QML. Не хотят люди изучать еще JS+React/Angular+HTML+CSS.
Лично мне WASM нравится больше чем WebGL стриминг.
isnofreedom
09.05.2018 16:03Вопрос дилетанта, что проще использовать для представления кроссплатформенного GUI (Android/Win/Linux) новичку, Kivy или PyQT?
xztau
09.05.2018 19:42Лицензия 460$ в месяц с рожи…
Стоимость подбирается под возможности покупателя или одна для всех?abagnale Автор
10.05.2018 00:10Там есть ещё опция для стартапов (но только для Application Development) — такая же лицензия, но без тех.поддержки, зато дешевле.
Но вообще да, это стандартная цена для всех. Вот если у вас команда от 5 разработчиков, то начинается прогрессирующая скидка. Или если у вас есть чем заинтересовать (готовы к сотрудничеству на маркетинговой почве, например), то тоже можно получить более интересные условия. Можно также купить подписку на несколько лет вперёд — стоимость будет значительно ниже.
DaylightIsBurning
10.05.2018 11:13А цена какая? Что-то я её найти не могу.
abagnale Автор
10.05.2018 19:13Там раньше были указаны цены, но сейчас зачем-то убрали. 100 долларов в месяц, если платить ежемесячно, и 80 долларов — если купить сразу на год.
Nick_Shl
09.05.2018 20:00+1теперь условия лицензионного соглашения это запрещают — у вас должна быть хотя бы одна активная подписка, иначе нельзя ни вести разработку, ни продавать уже готовый продукт.
В корне не согласен с последним выражением. Подписка на редактор ещё понятна: пока плачу — пользуюсь. А вот с фреймворком… им пользуются пока разрабатывают. После сдачи бинарных файлов в продакшн фреймворк могут вообще не запускать и в код не лезть(актуально для медикал, где сертификация стоит дурных денег). Не должно распространение готового продукта зависеть от наличия лицензии.
Но вообще, для фреймворка подписочная лицензия выглядит более-менее оправданной (по сравнению с подпиской на текстовый редактор).
Это получается примерно так же, как если бы можно было бы открывать документ(на любом компьютере) только если продляется лицензия на текстовый редактор тем человеком который его создал.abagnale Автор
10.05.2018 00:01+1На всякий случай уточню: те продукты/устройства/приложения, которые вы уже продали/распространили, пока была действующая лицензия, после её истечения конечно же в тыкву не превратятся, и ваши пользователи/клиенты вполне могут продолжать ими пользоваться. Ограничение касается только будущих поставок/продаж.
А так — да, я тоже с этим решением не согласен, но эффективный менеджмент его принял без меня.
xztau
10.05.2018 08:19Драконовские условия лицензии, ничего не скажешь.
Вспомнилось тут:
Ребята, что делают словарик yarxi (Смоленский Вадим и Всеволод Алексеев) объявляли краудфандинг на 1500$ чтобы embracedero RAD Studio купить и делать софтинку.
Их многие корили, почему Delphi, а не Qt. Во бы они сейчас попали на бабло…
Смоленский предвидел это!DaylightIsBurning
10.05.2018 11:18Справедливости ради, (L)GPL версия Qt никуда не девается и для GUI там всё есть. Один только KDE чего стоит как пример, а он под свободной лицензией. Интересно, подпадает ли Plasma Mobile под необходимость покупать commercial лицензию, это же вроде как девайс. Или на девайсах тоже может быть lGPL версия Qt?
NewStahl
10.05.2018 11:25Почему нет? Пока не вносятся изменения непосредственно в код Qt и не производится статическая линковка, то допустимо использовать LGPL версию хоть в девайсах, хоть в Чубайсах.
xztau
10.05.2018 12:25То есть можно подключить свою закрытую библиотеку к проекту на Qt opensource и продать?
Что то я никак не разберусь в разнице между GPL и LGPL.DaylightIsBurning
10.05.2018 12:31да, можно. Разница между lGPL и GPL в copyleft. GPL «инфицирует» любой проект, который использует хоть что-то под GPL, нельзя использовать GPL код в закрытом проекте. LGPL разрешает закрывать код проектов, использующих LGPL код, при условии что LGPL-часть остается обособленной и не изменяется. Изменения LGPL части должны быть открыты.
изменённые и расширенные версии [copyleft] программы обязаны быть свободными [тоже быть copyleft].
DaylightIsBurning
09.05.2018 20:55Переработка (new compiler pipeline) QML Engine;
А что с лицензированием QML compiler? Окончательно передумали его открывать? Как я понимаю, разработка под iOS без Qt Quick Compiler не имеет смысла — всё будет тормозить и жрать батарею? На гитхабе есть нечто qmlrc, кто нибудь его пробовал, как оно? Как Ahead-of-Time/qmlcache соотносится с Qt Quick Compiler по производительности/энергоэффективности? Кажется очень соблазнительным разрабатывать GUI для C++ приложений под все побильные платформы разом с помощью Qt Quick, но терзают смутные сомненья. Не поделится ли кто подобным опытом?Zifix
10.05.2018 00:44В общем случае оно не тормозит и не особо жрет батарею на iOS, но тут зависит от сложности приложения.
max_dark
09.05.2018 21:36Очень не хватает Qt Lite (легковесной версии с минимум виджетов и прочего).
Тащить в небольшой проект 50+ МБ бинарников из за пары кнопок/менюшек как то не хочется.
trantor1
09.05.2018 23:48у вас должна быть хотя бы одна активная подписка, иначе нельзя ни вести разработку, ни продавать уже готовый продукт.
Жесть, теперь еще больше контор задумается, стоит ли переходить или начинать на Qt разработку.max_dark
10.05.2018 00:27Ну остается же Open Source версия под LGPL, которая покрывает большую часть задач…
Или все хуже и придется искать альтернативу?abagnale Автор
10.05.2018 00:47+1Конечно остаётся. И я надеюсь, Qt никогда не откажется от своего лицензионного дуализма (будет доступен и под Open Source). Другое дело что большинство новых компонентов доступно только под GPL.
DaylightIsBurning
10.05.2018 11:36Проблема в том, что невозможно перейти от lGPL проекта к commercial лицензии. Честно говоря, то движение по изменению правил лицензирования, которое мы наблюдаем последние годы со стороны Qt Company, вызывает недоумение. А еще выглядит так, будто направлением развития «библиотека для кросс-платформенного GUI» пренебрегли в пользу embedded/automotive, к сожалению. Имхо, для commercial Qt гораздо лучше подошла бы лицензия по типу Unreal Engine: плати роялти, если доход превышает определенную суму. Мне кажется, у Qt есть огромный потенциал быть «главной» кросс-платформенной библиотекой для GUI по умолчанию для мейнстримных мобильных и десктопных платформ, но стратегия лицензирования и развития, видимо, не способствует этому. Такое впечатление, что Qt отказались от активной конкуренции с Xamarin/React Native и прочими подобным технологиями, а жаль.
RPG18
10.05.2018 11:49пренебрегли в пользу embedded/automotive
Зачем платить, когда можно пользоваться бесплатной версией? Вот и пришлось переориентировать бизнес.
DaylightIsBurning
10.05.2018 12:27Ради поддержки, дополнительных компонентов распространяемых в виде shared source с оплатой по типу Unreal Engine.
RPG18
10.05.2018 12:37Дополнительные компоненты были(те же Qt Charts, Data Visualization), но были open source аналоги. Поэтому покупать особого смысла не было.
На Unreal Engine делают игры класса AAA, где большие бюджеты большие, поэтому там работает.DaylightIsBurning
10.05.2018 12:45Были, но они были недостаточно интересные и слишком дорогие. Если бы они лицензировались по принципу «бесплатно при доходе <100$/год с приложения, далее 5%», то ими бы гораздо охотней пользовались, а так даже разбираться в них не хотелось, если не во всех проектах ими потом пользоваться можно. Зачем мне изучать новый компонент, который я смогу использовать только в больших коммерческих проектах (из-за цены), когда есть более универсальные аналоги?
где большие бюджеты большие
Зато GUI приложений делают на несколько порядков больше по количеству. Порог можно и в 100$/приложение/год установить.RPG18
10.05.2018 13:00Зато GUI приложений делают на несколько порядков больше по количеству.
А вы уверены в этом? Такие технологии как .NET, Electron вытесняют C++ как язык, для разработки GUI. При этом зачем платить, года я 7 лет обходился OpenSource решением?
DaylightIsBurning
10.05.2018 14:34Ну да, вполне уверен, что всех приложений с GUI создается больше чем только игр. Я же не говорил, на каких языках. Но вообще, это ещё один пример того, что Qt не очень активно двигаются в направлении кросс-платформенного GUI — можно было бы сделать также и C# bindings, аналогично тем, что есть для Python.
Платить больше затем, что окупается. Также, как в случае с Unreal. Например за возможность пользоваться Qt Quick Compiler или Qt Charts можно было бы заплатить, если бы у них была прогрессивная цена лицензии (начиная с 0$). Правда пришлось бы допилить Qt Charts что бы он по всем направлениям превосходил QWT и другие аналоги, но если бы Qt Chart распространялся аналогично Unreal — комьюнити было бы более заинтересовано в его использовании и развитии. Наверняка и другие компоненты полезные есть.
Обходится то можно, но если есть возможность для более комфортной разработки по адекватной цене — зачем отказываться? Qt Charts — это пример порочного круга: ими не хотят пользоваться т.к. они не всегда подходят из-за политики лицензирования, а изучать разные варианты одного и того же только ради разных типов лицензирования тоже не хочется, в результате и в крупных коммерческих проектах Qt Charts тоже выглядят не слишком привлекательно — QWT уже знаком, зачем переучиваться.RPG18
10.05.2018 15:15Ничего бы не вышло. За примером далеко ходить не надо. Все просили от PVS-Studio дешевый продукт, уверяли что будут покупать, но не покупали. Точно так же, было бы здесь.
DaylightIsBurning
10.05.2018 15:20Я не знаю, как распределяются доходы Qt Company, но подозреваю, что если бы они сделали лицензию основанную на роялти — ситуация никак не ухудшилась бы. Те, кто сейчас платят за дорогую лицензию и так платили бы за неё, для них это дешевле чем роялти, а те, кто сейчас пользуются LGPL версией или предпочли вообще не использовать Qt из-за цены хоть что-то бы, но заплатили. + Расширение абонентской базы и комьюнити. Я же не предлагаю им сделать дешевый или бесплатный продукт, я предлагаю ввести прогрессивную шкалу цен, что бы те, кто сейчас вообще не платят (и не пользуются) могли пользоваться, заплатив немного. В перспективе некоторые из них вырастут и будут с радостью платить больше или перейдут на работу в большие компании, которые платят за дорогие лицензии Qt. Станет больше Qt разработчиков на рынке, больше причин для компаний разрабатывать новые продукты на Qt. Ну как Unreal Engine.
abagnale Автор
10.05.2018 19:25невозможно перейти от lGPL проекта к commercial лицензии
Если вы про пункт в лицензионном соглашении, то случаи такого перехода были, но конечно больше в порядке исключения. Во всяком случае, это не невозможно.
выглядит так, будто направлением развития «библиотека для кросс-платформенного GUI» пренебрегли в пользу embedded/automotive
Тот же embedded может быть на Linux, на какой-нибудь RTOS, на Windows и так далее. Не говоря о том, что доля "простых" десктопных приложений по-прежнему составляет значительную часть прибыли от продажи лицензий, а там тоже Windows/Mac/Linux. По-моему, вполне кроссплатформенно.
мобильных
Ну вот тут да. Для мобильной разработки (если нужны только мобильные платформы, особенно если только одна), я лично взял бы что-то другое.
DaylightIsBurning
10.05.2018 20:07доля «простых» десктопных приложений по-прежнему составляет значительную часть прибыли от продажи лицензий
Но для развития этого направления делается сравнительно мало. Всё по инерции. Кроме того сегодня мало Windows/Mac/Linux что бы считаться «кросс-платформенным». То, что web вариант развивают — это хорошо, но гладкого перехода на Android/iOS и даже просто между ними не хватает. Хотелось бы, что бы можно было значительную часть приложения портировать с десктопа на мобильные платформы, а поскольку поддержка мобильных платформ хромает, то это не очень выходит.
DaylightIsBurning
10.05.2018 11:42надеюсь, Qt никогда не откажется от своего лицензионного дуализма (будет доступен и под Open Source
Не уверен, что они могут убрать (L)GPL лицензии для «старых» компонентов, даже если бы захотели. Там есть код, авторские права на который не принадлежат исключительно Qt Company, его пришлось бы переписать, но тогда появится несовместимый форк (силами комманды KDE, полагаю), который оставит QtCompany за бортом.abagnale Автор
10.05.2018 19:58Всё так, но я уже не раз слышал от продаванов "а зачем нам Open Source, без него же легче продавать". Если вот таких кадров постепенно окажется большинство, а тем более в менеджменте, то можно всякого ожидать.
DaylightIsBurning
10.05.2018 20:14без него же легче продавать
Почему? Они какие-то доказательства этому утверждению приводят? Потому что аргументы против привести легко, я уже приводил тут. Почему они считают, что без открытой версии они вообще смогут что-то кроме automotive продать? Мне кажется, за пределами automotive главным ассетом Qt Company является широкое комьюнити, которому можно продать дополнительные услуги. Потому что конкурентных преимуществ, за которые стоит платить, у Qt самого по себе уже почти не осталось — конкуренты настигают. Раньше из конкурентов был только wxWidgets, но теперь ситуация другая. Да и весь этот устаревший хлам из собственных контейнеров, потоков, moc, qmake и прочего больше не нужен, только мешает. Раньше это было преимуществом, но теперь — наоборот. Выходит что главная ценность — что люди знают, как пользоваться Qt. Но для людей с технологией уже практически не осталось стимулов в неё вникать. Перспективы не видно.abagnale Автор
10.05.2018 20:58Ну тут надо понимать, что зачастую они до этого занимались продажей "обычного" софта, где всё просто: нет денег — нет стульев. А тут вдруг двойная лицензия, в которой можно использовать продукт "забесплатно". Через пару месяцев они конечно "въезжают" в специфику, и меньше задают таких вопросов, но поначалу бывает вот так.
DaylightIsBurning
10.05.2018 21:02Всё таки многовато, два месяца, ведь идея простая: «Qt-платформа нам не принадлежит, мы не её продаём, а дополнительные компоненты и услуги для неё.» Вопрос в том, так ли ситуацию видит менеджмент. Судя по направлениям развития — не так.
DaylightIsBurning
10.05.2018 20:27а зачем нам Open Source, без него же легче продавать
Мне кажется, ответ тут: «мы не продаём Qt-платформу, она нам не принадлежит, мы продаём дополнительные компоненты к ней и число проданных компонентов зависит от числа пользователей основной части. Если основная часть была бы платной (если бы это было возможно вообще) — она бы никому не нужна была и, следовательно, компоненты тоже». Как Android.
8ex7er
09.05.2018 23:48Очень хочется увидеть статьи на тему поддержки мобильной разработки iOS/Android. У нас у самих очень много опыта мобильной разработки на Qt, но нет возможности описывать этот опыт в статьях, к сожалению.
Woodroof
10.05.2018 07:16Сразу несколько вопросов:
1. Почему на сайте доступен только онлайн-инсталлятор? На канале в 100 МиБ установка загрузка компонентов идёт со скоростью 300-400 КиБ/сек. Кажется, offline-инсталлятор даже в большем объёме загрузился бы быстрее.
2. Зачем при установке Qt насильно ставить Qt Creator? А если он не нужен? Или, как в моём случае, использую новую версию Qt со старым Qt Creator?
3. С одной стороны есть план перехода на QBS, а с другой Qt Creator 4.6+ на большом QBS-проекте стал работать безумно медленно (на маке у меня вообще слайд-шоу), когда 4.4 работает вполне шустро.abagnale Автор
10.05.2018 19:01Почему на сайте доступен только онлайн-инсталлятор
Верно уже ответили, оффлайн тоже есть. Но вот кстати говоря Device Creation пакеты доступны только в онлайн установщике (оффлайновый бы весил ~50 ГБ, если не больше).
загрузка компонентов идёт со скоростью 300-400 КиБ/сек
Если вы про первый этап, где идёт загрузка мета-информации, то это известная проблема, в обозримом будущем должны оптимизировать. Если вы про загрузку уже самих компонентов, то это зависит от зеркала, к которому подключился установщик.
Зачем при установке Qt насильно ставить Qt Creator? А если он не нужен?
Тогда можно взять исходники из репозитория, и собрать только Qt :)
Но вообще "насильно" он ставится только в первый раз, а потом новая версия к вам попадёт только если вы пойдёте в Update components, а не в Add or remove components, насколько я помню.
на большом QBS-проекте стал работать безумно медленно (на маке у меня вообще слайд-шоу)
Я бы рекомендовал такое поведение зарепортить.
Woodroof
10.05.2018 19:402. Про второй. А как выбрать правильное зеркало?
3. Можно, но это нужно собирать. А цель-то — скачать и программировать. На вопрос «зачем насильно» всё же не ответили :)
4. Ок, подумаю, как лучше сделать. Не присылать же весь qbs-проект :) Но всё-таки странно, т.к. не только у меня, но и у коллег, и не только на маке, но и на linux'е.abagnale Автор
10.05.2018 20:50А как выбрать правильное зеркало?
Немного костыльно, но можно. Почему это не интегрировали в сам установщик — возможно, чтобы все не навалились на одно зеркало, а работало автоматическое распределение.
А цель-то — скачать и программировать
Ну так вот он и ставится из коробки :)
На вопрос «зачем насильно» всё же не ответили
Я спрошу у команды релизеров.
подумаю, как лучше сделать. Не присылать же весь qbs-проект
Будет уже хорошо если вы напишете что после обновления c 4.4 до 4.6 сборка с Qbs стала тормозить, причём независимо от платформы.
zim32
10.05.2018 11:04+1Странное решение. В мире становится все больше кроссплатформенных фреймвлрков а они гайки прикручивают. Пилчт сук на котором сидят.
aknew
10.05.2018 12:16Так это на мобильных все больше кроссплатформенных, а у qt охват гораздо шире и, я бы сказал, что основное все-таки не мобильное направление (хотя они и активно пытаются пролезть и сюда)
DaylightIsBurning
10.05.2018 12:40активно пытаются пролезть и сюда
Не очень, имхо. Реально необходимые вещи не делаются: нет активности в направлении улучшения native-like look, не переходят на Quick Compiler как основной инструмент работы с QML, а вместо этого пилят какие-то непонятно зачем нужные JIT и AOT, не переходят на контейнеры и механизмы стандартной библиотеки, а вместо этого поддерживают свои клоны, которые уже устарели. В направлении QtCore и всего что связано именно с кросс-платформенным GUI (в первую очередь X11/Win/Mac/Android/iOS, а не embedded) инновации забуксовали.RPG18
10.05.2018 12:47JIT штука нужная. Мы когда делали доклад на cppconf.ru, то получали поразительные бенчмарки. JIT очень важен, если хочется в будущем логику писать на чем то отличным от C++.
DaylightIsBurning
10.05.2018 12:52Какие у JIT преимущества по сравнению с Qt Quick Compiler? Мне кажется, Qt Quick Compiler — это более универсальный подход, который также даёт более качественный результат. Зачем тогда JIT? Что бы отдельно лицензировать Quick Compiler?
RPG18
10.05.2018 12:58When you use this add-on, the application's startup time is significantly improved and you no longer need to deploy .qml files together with the application.
Пруф. При этом не исключается наличие JIT, для оптимизации. Сделано для такие систем как iOS, где нельзя сделать нормального JIT.
DaylightIsBurning
10.05.2018 14:42Так там написано, что время запуска уменьшается при использовании Qt Quick Compiler, а не JIT. JIT медленнее Qt Quick Compiler и они не совместимы, что логично, т.к. JIT-ить то, что уже скомпилировано не получится.
Читаем дальше:
The popular Just-in-time (JIT) compilation technique is used to generate machine code on the fly, which speeds up the execution of JavaScript and QML binding expressions.
Unfortunately this approach has some disadvantages: On application startup, several .qml files need to be parsed and dynamically compiled before the user interface can become visible and interactive.
Получается, что QML JIT — это недо Qt Quick Compiler.RPG18
10.05.2018 15:24Не путайте разметку QML и логику на JS. Иначе бы Node.js не интерпретировала бы JS, а все бы компилировали сразу в нативный код.
DaylightIsBurning
10.05.2018 15:27Я и не путаю. Compiler и JIT не совместимы, Compiler быстрее:
Compiled Qt Quick is an elegant solution to these problems: .qml files as well as accompanying .js files can be translated into intermediate C++ source code. This entirely eliminates the need of deploying QML source code, it reduces the application startup time and allows for a much faster execution on platforms that do not permit Just-in-time compilation.
На платформах с JIT разнецы может не быть, если повезет, но JIT не быстрее.RPG18
10.05.2018 15:43Они не говорят, что компилируют весь JavaScript. Они говорят про QML, который является языком разметки. Т.к. разметка достаточно формальна, то можно из
Button { text: "Button" }
с генерировать создание объекта на стороне C++, а не через интерпретацию. Раньше Digia не рекомендовала писать бизнес логику на JS, т.к. это медленно, но с JIT это станет возможно.
DaylightIsBurning
10.05.2018 15:48А есть ссылка на источник? Потому что
.qml files as well as accompanying .js files can be translated into intermediate C++ source code.
Говорит о том, что js тоже компилируется.
DaylightIsBurning
10.05.2018 12:49У меня создается впечатление, что для Qt Company Qt как «слой абстракции над платформо-специфическими графическими, input, connectivity, location и прочими API» более не является первостепенным направлением. Я правильно понимаю?
saw_tooth
10.05.2018 16:02Очень хотелось бы увидеть в свободной доступе инструмент для компиляции qt исходников из embedded edition, ибо простыня флагов не спасает, когда нужны определенные опции (не спасает из за отсутствия информации, что и когда можно отключить, особенно для linux, с его x11)
abagnale Автор
10.05.2018 20:28в свободном доступе
Если вы про Qt Configuration Tool, то в Open Source он вряд ли появится. Пока все ждут чтобы он хотя бы перестал быть "эксклюзивом" Device Creation.
отсутствия информации, что и когда можно отключить, особенно для linux, с его x11
Ну вот это как раз почему он коммерческий компонент.
"Не разбираешься в системе конфигурации? Плати денег и можешь просто щёлкать мышью по переключателям".
Звериный оскал капитализма.
SinsI
11.05.2018 13:02А нет ли планов сапгрейдить те фичи/модули, которые во многом повторяют функциональность новых возможностей C++17?
Например, чтобы умные указатели можно было создавать аналогом std::make_unique или std::make_shared?
Barafu_Albino_Cheetah
Очень хорошо, что начали развивать PySIDE, многолетнее отсутствие LGPL связки с Питоном удручало и негативно сказалось на мелком коммерческом софте под Линукс.
А Safe Renderer мне не видится такой уж сложной штукой, разве что проблема в ограниченности ресурсов. Думаю, очень быстро напишут стороннюю OpenSource реализацию и будет как всегда — две совершенно одинаковых, но не совместимых способа сделать одно и то же.
kalininmr
я пару лет назад пробовал альтернативную сборку этих либ. выроде бы все впорядке(то что мне потребовалось — работало).
а родная не хотела дружить со свежими питонами — тоже сперва огорчился, но всё оказалось не так страшно
abagnale Автор
И это действительно так. Реализация очень простая, можно даже сказать примитивная.
Вся ценность в сертификации. Это очень сложно (и очень дорого) — сертифицировать ПО. Ваш продукт с самописным рендерером просто не пустят на рынок, потому что вы не соответствуете стандартам.
А Qt Safe Renderer прошёл сертификацию, и приобретая его вы на самом деле больше платите за сертификат, чем за техническое решение.