Новости Qt, июнь 2017 — май 2018
Что нового появилось/произошло в 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 Magalhães Santos, Imaginando;
- Investing into Software Technologies, Petteri Holländer, 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 Węglarczyk, 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 Röjfors, 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 Meerkötter, 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 König, 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 Jørgensen, 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, Müge 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 Marjamäki, The Qt Company.
На выставке в центре зала показывали новые разработки:
Вокруг стояли стенды партнёров и клиентов, которые показывали что-то из своего. Например, BMW прикатили вот такой концепт-кар.
Начиная с 2018 года, саммитов теперь несколько и проходить они будут в разное время и разных местах. В этом году будет 2: американский (Бостон) и европейский (Берлин) — оба ближе к концу года. Далее планируется добавить третий для стран Азии (возможно, в Токио).
Qt на Embedded World 2018
Как и в прошлом году, мы были на выставке Embedded World в Нюрнберге.
Из интересных демо можно выделить:
Что вообще нового
Изменения в коммерческой лицензии
Начиная с января 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 ожидается очень примерно года через два;
- Всё ещё в силе план перейти с qmake на Qbs.
Qt на микроконтроллерах (MCU)
Очень часто спрашивают, можно ли использовать Qt для разработки ПО, и частности GUI, на микроконтроллерах.
И вот мы провели исследование, завершившееся портированием Qt под операционную систему реального времени RTEMS и оптимизацией сборки Qt для запуска на микроконтроллерах STM32F469, STM32F746 и STM32F769.
О результатах исследования недавно вышел пост) в официальном блоге, и кстати говоря, оригинал этого поста вообще-то был написан на русском, так что с минимальными усилиями его можно опубликовать и на Хабре (об этом тоже будет опрос в конце статьи).
Пока идёт сбор отзывов от клиентов, кто куда и что хотел бы портировать, и потом на основе пожеланий будет планироваться дальнейшее развитие.
Вакансии
В этом году вакансий не так много, как в прошлом, но поиск новых сотрудников продолжается. Так что если что-то заинтересовало, можете написать мне, и я расскажу подробнее.
Вот например уже больше полутора лет (серьёзно) в берлинский офис разыскивается sales engineer — это такой человек, который разбирается в Qt и при этом может разговаривать с людьми (клиентами) и отвечать на их технические вопросы. Уже настолько отчаялись найти, что возьмём кого угодно будем рады любым кандидатам. Кстати, не самый плохой способ завести трактор, хотя наверное мне не стоит такое говорить. Осложняется вакансия тем, что так как позиция в Берлине, то очень желательно знание ещё и немецкого.
Всего в 2017 наняли около 130 человек. Люди приходят из всех (включая русскоязычные) частей планеты, никаких рассовых/религиозных/половых предпочтений/предрассудков нет (кроме того что на позиции эффективных менеджеров берут только чаще финнов (шутка)).
Заключение
Если хотите узнать о чём-то подробнее, пишите комментарии, я постараюсь ответить сам или узнать у тех кто знает.