Что нового появилось/произошло в Qt за полгода почти год с прошлой статьи. Релизы 5.9 и 5.10, а также новые инструменты, аддоны, платформы и переход на подписочную модель лицензирования.


Релизы Qt


Я бы хотел писать о новостях чаще, чем раз в полгода год, но получается как получается. Эту статью я вообще начинал писать в январе, но закончить удалось только сейчас.


Сегодня содержание такое:



Конференции и выставки


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.

На выставке в центре зала показывали новые разработки:



Вокруг стояли стенды партнёров и клиентов, которые показывали что-то из своего. Например, Mercedes-Benz прикатили вот такой концепт-кар.


Начиная с 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


Qt 5.10


7 декабря 2017 вышел Qt 5.10.


И опять прекрасный обзор релиза в статье на OpenNET.


Аддоны


В дополнение к обычным (базовым) лицензиям (Application Development и Device Creation) теперь будут появляться "аддоны". Вообще, хотели сделать что-то вроде магазина аддонов/плагинов (как qpm, только официальный), но дальше идеи пока не пошло, потому они будут просто добавляться в установщике.


Если взять за основу схему из прошлой статьи, то новая выглядит так:


Схема лицензирования Qt


И без того непростая структура лицензирования стала ещё сложнее. Если попытаться объяснить всё вкратце, то аддоны в "стандартные" лицензии не входят и продаются за дополнительные деньги. Учитывая, что не всем интересно читать про коммерческие лицензии, я подробно расписывать не буду (кроме того, надо и отделу продаж дать поработать).


Если же вы используете 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 км/ч или во время хирургической операции чревато негативными последствиями.


Пример использования в цифровом инструментальном кластере (дашборде) автомобиля:


Qt Safe safe-renderer


Если интересно, я могу написать отдельную статью с "живым" примером на железе под управлением 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 человек. Люди приходят из всех (включая русскоязычные) частей планеты, никаких рассовых/религиозных/половых предпочтений/предрассудков нет (кроме того что на позиции эффективных менеджеров берут только чаще финнов (шутка)).


Заключение


Если хотите узнать о чём-то подробнее, пишите комментарии, я постараюсь ответить сам или узнать у тех кто знает.

Комментарии (79)


  1. Barafu_Albino_Cheetah
    09.05.2018 03:53
    +2

    Очень хорошо, что начали развивать PySIDE, многолетнее отсутствие LGPL связки с Питоном удручало и негативно сказалось на мелком коммерческом софте под Линукс.

    А Safe Renderer мне не видится такой уж сложной штукой, разве что проблема в ограниченности ресурсов. Думаю, очень быстро напишут стороннюю OpenSource реализацию и будет как всегда — две совершенно одинаковых, но не совместимых способа сделать одно и то же.


    1. kalininmr
      09.05.2018 12:27

      я пару лет назад пробовал альтернативную сборку этих либ. выроде бы все впорядке(то что мне потребовалось — работало).
      а родная не хотела дружить со свежими питонами — тоже сперва огорчился, но всё оказалось не так страшно


    1. abagnale Автор
      09.05.2018 18:11

      И это действительно так. Реализация очень простая, можно даже сказать примитивная.


      Вся ценность в сертификации. Это очень сложно (и очень дорого) — сертифицировать ПО. Ваш продукт с самописным рендерером просто не пустят на рынок, потому что вы не соответствуете стандартам.


      А Qt Safe Renderer прошёл сертификацию, и приобретая его вы на самом деле больше платите за сертификат, чем за техническое решение.


  1. Harrix
    09.05.2018 07:26
    +1

    > Qt for WebAssembly — запуск Qt приложений в браузере (не знаю, зачем могу попытаться объяснить, зачем)

    Ждем! А запуск любых приложений? QML часть или с С++ тоже?

    И да. В QtQuick Controls 2 появится когда-нибудь TreeView?


    1. RPG18
      09.05.2018 14:18

      Как понимаю wiki C++ и QML.


    1. DaylightIsBurning
      09.05.2018 20:38

      Присоединяюсь про TreeView


    1. abagnale Автор
      10.05.2018 18:24
      +1

      В QtQuick Controls 2 появится когда-нибудь TreeView?

      TreeView всё ещё в процессе, как и SplitView с TableView. Кстати, для TableView есть примерные сроки — 5.12, то есть в конце осени. Для TreeView сроков нет (как и нет реквеста в трекере, кстати).


    1. abagnale Автор
      10.05.2018 18:33

      Qt for WebAssembly
      QML часть или с С++ тоже?

      C++ тоже. Вот тут, кстати, можно найти примеры.


  1. NewStahl
    09.05.2018 12:59
    +1

    >Если хотите узнать о чём-то подробнее, пишите комментарии
    А расскажите про поддержку Андроида и перспективы этой поддержки. Дело в том, что поддержка есть (я довёл пару программ до Google Play без особых приключений), но Google начал ставить палки в колёса и на данный момент собрать нормально работающее окружение для разработки на Qt под Android — задача мутная и есть основания считать, что дальше будет только хуже.
    Если кто в курсе, то было бы интересно почитать…


    1. Elsedar
      09.05.2018 17:53

      А какие конкретно палки ставит google? У меня тоже есть 1 приложение в google play, никаких проблем не замечал. Правда само приложение иногда падает, особенно, если его часто запускать и тут же закрывать, но это уже претензия к Qt.


  1. vzhicharra
    09.05.2018 13:14
    +1

    Например, BMW прикатили вот такой концепт-кар

    Это немного не BMW


    1. abagnale Автор
      09.05.2018 13:21

      Да, не совсем.


  1. Cryvage
    09.05.2018 13:26

    Есть какие-то планы по переводу QJSEngine и QML на ES6?


  1. RPG18
    09.05.2018 14:24

    могу попытаться объяснить, зачем

    время от времени на формумах рунета кто-нибудь да и спросит, как написать "сайт" на QML. Не хотят люди изучать еще JS+React/Angular+HTML+CSS.


    Лично мне WASM нравится больше чем WebGL стриминг.


  1. isnofreedom
    09.05.2018 16:03

    Вопрос дилетанта, что проще использовать для представления кроссплатформенного GUI (Android/Win/Linux) новичку, Kivy или PyQT?


    1. saw_tooth
      10.05.2018 16:00

      qt конечно.


  1. xztau
    09.05.2018 19:42

    Лицензия 460$ в месяц с рожи…
    Стоимость подбирается под возможности покупателя или одна для всех?


    1. abagnale Автор
      10.05.2018 00:10

      Там есть ещё опция для стартапов (но только для Application Development) — такая же лицензия, но без тех.поддержки, зато дешевле.


      Но вообще да, это стандартная цена для всех. Вот если у вас команда от 5 разработчиков, то начинается прогрессирующая скидка. Или если у вас есть чем заинтересовать (готовы к сотрудничеству на маркетинговой почве, например), то тоже можно получить более интересные условия. Можно также купить подписку на несколько лет вперёд — стоимость будет значительно ниже.


      1. DaylightIsBurning
        10.05.2018 11:13

        А цена какая? Что-то я её найти не могу.


        1. abagnale Автор
          10.05.2018 19:13

          Там раньше были указаны цены, но сейчас зачем-то убрали. 100 долларов в месяц, если платить ежемесячно, и 80 долларов — если купить сразу на год.


    1. RPG18
      10.05.2018 11:02

      Это дешевле, чем Visual Studio Professional.


  1. Nick_Shl
    09.05.2018 20:00
    +1

    теперь условия лицензионного соглашения это запрещают — у вас должна быть хотя бы одна активная подписка, иначе нельзя ни вести разработку, ни продавать уже готовый продукт.
    Но вообще, для фреймворка подписочная лицензия выглядит более-менее оправданной (по сравнению с подпиской на текстовый редактор).
    В корне не согласен с последним выражением. Подписка на редактор ещё понятна: пока плачу — пользуюсь. А вот с фреймворком… им пользуются пока разрабатывают. После сдачи бинарных файлов в продакшн фреймворк могут вообще не запускать и в код не лезть(актуально для медикал, где сертификация стоит дурных денег). Не должно распространение готового продукта зависеть от наличия лицензии.
    Это получается примерно так же, как если бы можно было бы открывать документ(на любом компьютере) только если продляется лицензия на текстовый редактор тем человеком который его создал.


    1. abagnale Автор
      10.05.2018 00:01
      +1

      На всякий случай уточню: те продукты/устройства/приложения, которые вы уже продали/распространили, пока была действующая лицензия, после её истечения конечно же в тыкву не превратятся, и ваши пользователи/клиенты вполне могут продолжать ими пользоваться. Ограничение касается только будущих поставок/продаж.


      А так — да, я тоже с этим решением не согласен, но эффективный менеджмент его принял без меня.


      1. xztau
        10.05.2018 08:19

        Драконовские условия лицензии, ничего не скажешь.
        Вспомнилось тут:
        Ребята, что делают словарик yarxi (Смоленский Вадим и Всеволод Алексеев) объявляли краудфандинг на 1500$ чтобы embracedero RAD Studio купить и делать софтинку.
        Их многие корили, почему Delphi, а не Qt. Во бы они сейчас попали на бабло…
        Смоленский предвидел это!


        1. DaylightIsBurning
          10.05.2018 11:18

          Справедливости ради, (L)GPL версия Qt никуда не девается и для GUI там всё есть. Один только KDE чего стоит как пример, а он под свободной лицензией. Интересно, подпадает ли Plasma Mobile под необходимость покупать commercial лицензию, это же вроде как девайс. Или на девайсах тоже может быть lGPL версия Qt?


          1. NewStahl
            10.05.2018 11:25

            Почему нет? Пока не вносятся изменения непосредственно в код Qt и не производится статическая линковка, то допустимо использовать LGPL версию хоть в девайсах, хоть в Чубайсах.


            1. xztau
              10.05.2018 12:25

              То есть можно подключить свою закрытую библиотеку к проекту на Qt opensource и продать?
              Что то я никак не разберусь в разнице между GPL и LGPL.


              1. DaylightIsBurning
                10.05.2018 12:31

                да, можно. Разница между lGPL и GPL в copyleft. GPL «инфицирует» любой проект, который использует хоть что-то под GPL, нельзя использовать GPL код в закрытом проекте. LGPL разрешает закрывать код проектов, использующих LGPL код, при условии что LGPL-часть остается обособленной и не изменяется. Изменения LGPL части должны быть открыты.

                изменённые и расширенные версии [copyleft] программы обязаны быть свободными [тоже быть copyleft].


        1. abagnale Автор
          10.05.2018 19:07

          Как уже ответили, есть же Open Source версия, за которую денег платить не надо. И насколько я вижу, конкретно это приложение вполне может использовать Qt под LGPL.


          1. xztau
            10.05.2018 19:12

            Так то оно так, но у них коммерческий продукт. Закрытые исходники.


            1. DaylightIsBurning
              10.05.2018 20:03

              LGPL не требует раскрывать исходники.


  1. 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, но терзают смутные сомненья. Не поделится ли кто подобным опытом?


    1. Zifix
      10.05.2018 00:44

      В общем случае оно не тормозит и не особо жрет батарею на iOS, но тут зависит от сложности приложения.


  1. max_dark
    09.05.2018 21:36

    Очень не хватает Qt Lite (легковесной версии с минимум виджетов и прочего).
    Тащить в небольшой проект 50+ МБ бинарников из за пары кнопок/менюшек как то не хочется.


  1. trantor1
    09.05.2018 23:48

    у вас должна быть хотя бы одна активная подписка, иначе нельзя ни вести разработку, ни продавать уже готовый продукт.

    Жесть, теперь еще больше контор задумается, стоит ли переходить или начинать на Qt разработку.


    1. max_dark
      10.05.2018 00:27

      Ну остается же Open Source версия под LGPL, которая покрывает большую часть задач…
      Или все хуже и придется искать альтернативу?


      1. abagnale Автор
        10.05.2018 00:47
        +1

        Конечно остаётся. И я надеюсь, Qt никогда не откажется от своего лицензионного дуализма (будет доступен и под Open Source). Другое дело что большинство новых компонентов доступно только под GPL.


        1. DaylightIsBurning
          10.05.2018 11:36

          Проблема в том, что невозможно перейти от lGPL проекта к commercial лицензии. Честно говоря, то движение по изменению правил лицензирования, которое мы наблюдаем последние годы со стороны Qt Company, вызывает недоумение. А еще выглядит так, будто направлением развития «библиотека для кросс-платформенного GUI» пренебрегли в пользу embedded/automotive, к сожалению. Имхо, для commercial Qt гораздо лучше подошла бы лицензия по типу Unreal Engine: плати роялти, если доход превышает определенную суму. Мне кажется, у Qt есть огромный потенциал быть «главной» кросс-платформенной библиотекой для GUI по умолчанию для мейнстримных мобильных и десктопных платформ, но стратегия лицензирования и развития, видимо, не способствует этому. Такое впечатление, что Qt отказались от активной конкуренции с Xamarin/React Native и прочими подобным технологиями, а жаль.


          1. RPG18
            10.05.2018 11:49

            пренебрегли в пользу embedded/automotive

            Зачем платить, когда можно пользоваться бесплатной версией? Вот и пришлось переориентировать бизнес.


            1. DaylightIsBurning
              10.05.2018 12:27

              Ради поддержки, дополнительных компонентов распространяемых в виде shared source с оплатой по типу Unreal Engine.


              1. RPG18
                10.05.2018 12:37

                Дополнительные компоненты были(те же Qt Charts, Data Visualization), но были open source аналоги. Поэтому покупать особого смысла не было.

                На Unreal Engine делают игры класса AAA, где большие бюджеты большие, поэтому там работает.


                1. DaylightIsBurning
                  10.05.2018 12:45

                  Были, но они были недостаточно интересные и слишком дорогие. Если бы они лицензировались по принципу «бесплатно при доходе <100$/год с приложения, далее 5%», то ими бы гораздо охотней пользовались, а так даже разбираться в них не хотелось, если не во всех проектах ими потом пользоваться можно. Зачем мне изучать новый компонент, который я смогу использовать только в больших коммерческих проектах (из-за цены), когда есть более универсальные аналоги?

                  где большие бюджеты большие

                  Зато GUI приложений делают на несколько порядков больше по количеству. Порог можно и в 100$/приложение/год установить.


                  1. RPG18
                    10.05.2018 13:00

                    Зато GUI приложений делают на несколько порядков больше по количеству.

                    А вы уверены в этом? Такие технологии как .NET, Electron вытесняют C++ как язык, для разработки GUI. При этом зачем платить, года я 7 лет обходился OpenSource решением?


                    1. 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 уже знаком, зачем переучиваться.


                      1. RPG18
                        10.05.2018 15:15

                        Ничего бы не вышло. За примером далеко ходить не надо. Все просили от PVS-Studio дешевый продукт, уверяли что будут покупать, но не покупали. Точно так же, было бы здесь.


                        1. DaylightIsBurning
                          10.05.2018 15:20

                          Я не знаю, как распределяются доходы Qt Company, но подозреваю, что если бы они сделали лицензию основанную на роялти — ситуация никак не ухудшилась бы. Те, кто сейчас платят за дорогую лицензию и так платили бы за неё, для них это дешевле чем роялти, а те, кто сейчас пользуются LGPL версией или предпочли вообще не использовать Qt из-за цены хоть что-то бы, но заплатили. + Расширение абонентской базы и комьюнити. Я же не предлагаю им сделать дешевый или бесплатный продукт, я предлагаю ввести прогрессивную шкалу цен, что бы те, кто сейчас вообще не платят (и не пользуются) могли пользоваться, заплатив немного. В перспективе некоторые из них вырастут и будут с радостью платить больше или перейдут на работу в большие компании, которые платят за дорогие лицензии Qt. Станет больше Qt разработчиков на рынке, больше причин для компаний разрабатывать новые продукты на Qt. Ну как Unreal Engine.


          1. abagnale Автор
            10.05.2018 19:25

            невозможно перейти от lGPL проекта к commercial лицензии

            Если вы про пункт в лицензионном соглашении, то случаи такого перехода были, но конечно больше в порядке исключения. Во всяком случае, это не невозможно.


            выглядит так, будто направлением развития «библиотека для кросс-платформенного GUI» пренебрегли в пользу embedded/automotive

            Тот же embedded может быть на Linux, на какой-нибудь RTOS, на Windows и так далее. Не говоря о том, что доля "простых" десктопных приложений по-прежнему составляет значительную часть прибыли от продажи лицензий, а там тоже Windows/Mac/Linux. По-моему, вполне кроссплатформенно.


            мобильных

            Ну вот тут да. Для мобильной разработки (если нужны только мобильные платформы, особенно если только одна), я лично взял бы что-то другое.


            1. DaylightIsBurning
              10.05.2018 20:07

              доля «простых» десктопных приложений по-прежнему составляет значительную часть прибыли от продажи лицензий
              Но для развития этого направления делается сравнительно мало. Всё по инерции. Кроме того сегодня мало Windows/Mac/Linux что бы считаться «кросс-платформенным». То, что web вариант развивают — это хорошо, но гладкого перехода на Android/iOS и даже просто между ними не хватает. Хотелось бы, что бы можно было значительную часть приложения портировать с десктопа на мобильные платформы, а поскольку поддержка мобильных платформ хромает, то это не очень выходит.


        1. DaylightIsBurning
          10.05.2018 11:42

          надеюсь, Qt никогда не откажется от своего лицензионного дуализма (будет доступен и под Open Source
          Не уверен, что они могут убрать (L)GPL лицензии для «старых» компонентов, даже если бы захотели. Там есть код, авторские права на который не принадлежат исключительно Qt Company, его пришлось бы переписать, но тогда появится несовместимый форк (силами комманды KDE, полагаю), который оставит QtCompany за бортом.


          1. abagnale Автор
            10.05.2018 19:58

            Всё так, но я уже не раз слышал от продаванов "а зачем нам Open Source, без него же легче продавать". Если вот таких кадров постепенно окажется большинство, а тем более в менеджменте, то можно всякого ожидать.


            1. DaylightIsBurning
              10.05.2018 20:14

              без него же легче продавать
              Почему? Они какие-то доказательства этому утверждению приводят? Потому что аргументы против привести легко, я уже приводил тут. Почему они считают, что без открытой версии они вообще смогут что-то кроме automotive продать? Мне кажется, за пределами automotive главным ассетом Qt Company является широкое комьюнити, которому можно продать дополнительные услуги. Потому что конкурентных преимуществ, за которые стоит платить, у Qt самого по себе уже почти не осталось — конкуренты настигают. Раньше из конкурентов был только wxWidgets, но теперь ситуация другая. Да и весь этот устаревший хлам из собственных контейнеров, потоков, moc, qmake и прочего больше не нужен, только мешает. Раньше это было преимуществом, но теперь — наоборот. Выходит что главная ценность — что люди знают, как пользоваться Qt. Но для людей с технологией уже практически не осталось стимулов в неё вникать. Перспективы не видно.


              1. abagnale Автор
                10.05.2018 20:58

                Ну тут надо понимать, что зачастую они до этого занимались продажей "обычного" софта, где всё просто: нет денег — нет стульев. А тут вдруг двойная лицензия, в которой можно использовать продукт "забесплатно". Через пару месяцев они конечно "въезжают" в специфику, и меньше задают таких вопросов, но поначалу бывает вот так.


                1. DaylightIsBurning
                  10.05.2018 21:02

                  Всё таки многовато, два месяца, ведь идея простая: «Qt-платформа нам не принадлежит, мы не её продаём, а дополнительные компоненты и услуги для неё.» Вопрос в том, так ли ситуацию видит менеджмент. Судя по направлениям развития — не так.


            1. DaylightIsBurning
              10.05.2018 20:27

              а зачем нам Open Source, без него же легче продавать
              Мне кажется, ответ тут: «мы не продаём Qt-платформу, она нам не принадлежит, мы продаём дополнительные компоненты к ней и число проданных компонентов зависит от числа пользователей основной части. Если основная часть была бы платной (если бы это было возможно вообще) — она бы никому не нужна была и, следовательно, компоненты тоже». Как Android.


  1. 8ex7er
    09.05.2018 23:48

    Очень хочется увидеть статьи на тему поддержки мобильной разработки iOS/Android. У нас у самих очень много опыта мобильной разработки на Qt, но нет возможности описывать этот опыт в статьях, к сожалению.


  1. michaeldz
    09.05.2018 23:48

    Продлять


  1. 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 работает вполне шустро.


    1. xztau
      10.05.2018 07:48

      Не. Оффлайн тоже есть www1.qt.io/offline-installers/
      Там при скачивании, чуть ниже download под стрелочкой ссылка


      1. Woodroof
        10.05.2018 19:37

        О, оффлайн нашёл, спасибо! Неочевидная ссылка, ожидал увидеть в other options :)


    1. abagnale Автор
      10.05.2018 19:01

      Почему на сайте доступен только онлайн-инсталлятор

      Верно уже ответили, оффлайн тоже есть. Но вот кстати говоря Device Creation пакеты доступны только в онлайн установщике (оффлайновый бы весил ~50 ГБ, если не больше).


      загрузка компонентов идёт со скоростью 300-400 КиБ/сек

      Если вы про первый этап, где идёт загрузка мета-информации, то это известная проблема, в обозримом будущем должны оптимизировать. Если вы про загрузку уже самих компонентов, то это зависит от зеркала, к которому подключился установщик.


      Зачем при установке Qt насильно ставить Qt Creator? А если он не нужен?

      Тогда можно взять исходники из репозитория, и собрать только Qt :)
      Но вообще "насильно" он ставится только в первый раз, а потом новая версия к вам попадёт только если вы пойдёте в Update components, а не в Add or remove components, насколько я помню.


      на большом QBS-проекте стал работать безумно медленно (на маке у меня вообще слайд-шоу)

      Я бы рекомендовал такое поведение зарепортить.


      1. Woodroof
        10.05.2018 19:40

        2. Про второй. А как выбрать правильное зеркало?
        3. Можно, но это нужно собирать. А цель-то — скачать и программировать. На вопрос «зачем насильно» всё же не ответили :)
        4. Ок, подумаю, как лучше сделать. Не присылать же весь qbs-проект :) Но всё-таки странно, т.к. не только у меня, но и у коллег, и не только на маке, но и на linux'е.


        1. abagnale Автор
          10.05.2018 20:50

          А как выбрать правильное зеркало?

          Немного костыльно, но можно. Почему это не интегрировали в сам установщик — возможно, чтобы все не навалились на одно зеркало, а работало автоматическое распределение.


          А цель-то — скачать и программировать

          Ну так вот он и ставится из коробки :)


          На вопрос «зачем насильно» всё же не ответили

          Я спрошу у команды релизеров.


          подумаю, как лучше сделать. Не присылать же весь qbs-проект

          Будет уже хорошо если вы напишете что после обновления c 4.4 до 4.6 сборка с Qbs стала тормозить, причём независимо от платформы.


  1. zim32
    10.05.2018 11:04
    +1

    Странное решение. В мире становится все больше кроссплатформенных фреймвлрков а они гайки прикручивают. Пилчт сук на котором сидят.


    1. aknew
      10.05.2018 12:16

      Так это на мобильных все больше кроссплатформенных, а у qt охват гораздо шире и, я бы сказал, что основное все-таки не мобильное направление (хотя они и активно пытаются пролезть и сюда)


      1. DaylightIsBurning
        10.05.2018 12:40

        активно пытаются пролезть и сюда
        Не очень, имхо. Реально необходимые вещи не делаются: нет активности в направлении улучшения native-like look, не переходят на Quick Compiler как основной инструмент работы с QML, а вместо этого пилят какие-то непонятно зачем нужные JIT и AOT, не переходят на контейнеры и механизмы стандартной библиотеки, а вместо этого поддерживают свои клоны, которые уже устарели. В направлении QtCore и всего что связано именно с кросс-платформенным GUI (в первую очередь X11/Win/Mac/Android/iOS, а не embedded) инновации забуксовали.


        1. RPG18
          10.05.2018 12:47

          JIT штука нужная. Мы когда делали доклад на cppconf.ru, то получали поразительные бенчмарки. JIT очень важен, если хочется в будущем логику писать на чем то отличным от C++.


          1. DaylightIsBurning
            10.05.2018 12:52

            Какие у JIT преимущества по сравнению с Qt Quick Compiler? Мне кажется, Qt Quick Compiler — это более универсальный подход, который также даёт более качественный результат. Зачем тогда JIT? Что бы отдельно лицензировать Quick Compiler?


            1. RPG18
              10.05.2018 12:58

              When 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.


              1. 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.


                1. RPG18
                  10.05.2018 15:24

                  Не путайте разметку QML и логику на JS. Иначе бы Node.js не интерпретировала бы JS, а все бы компилировали сразу в нативный код.


                  1. 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 не быстрее.


                    1. RPG18
                      10.05.2018 15:43

                      Они не говорят, что компилируют весь JavaScript. Они говорят про QML, который является языком разметки. Т.к. разметка достаточно формальна, то можно из


                      Button {
                          text: "Button"
                      }

                      с генерировать создание объекта на стороне C++, а не через интерпретацию. Раньше Digia не рекомендовала писать бизнес логику на JS, т.к. это медленно, но с JIT это станет возможно.


                      1. DaylightIsBurning
                        10.05.2018 15:48

                        А есть ссылка на источник? Потому что

                        .qml files as well as accompanying .js files can be translated into intermediate C++ source code.
                        Говорит о том, что js тоже компилируется.


  1. DaylightIsBurning
    10.05.2018 12:49

    У меня создается впечатление, что для Qt Company Qt как «слой абстракции над платформо-специфическими графическими, input, connectivity, location и прочими API» более не является первостепенным направлением. Я правильно понимаю?


    1. abagnale Автор
      11.05.2018 12:30

      Можно конечно пойти и спросить у CTO, но у меня такого впечатления нет. Насколько я вижу, qtbase — один из наиболее активных репозиториев.


  1. saw_tooth
    10.05.2018 16:02

    Очень хотелось бы увидеть в свободной доступе инструмент для компиляции qt исходников из embedded edition, ибо простыня флагов не спасает, когда нужны определенные опции (не спасает из за отсутствия информации, что и когда можно отключить, особенно для linux, с его x11)


    1. abagnale Автор
      10.05.2018 20:28

      в свободном доступе

      Если вы про Qt Configuration Tool, то в Open Source он вряд ли появится. Пока все ждут чтобы он хотя бы перестал быть "эксклюзивом" Device Creation.


      отсутствия информации, что и когда можно отключить, особенно для linux, с его x11

      Ну вот это как раз почему он коммерческий компонент.
      "Не разбираешься в системе конфигурации? Плати денег и можешь просто щёлкать мышью по переключателям".
      Звериный оскал капитализма.


      1. saw_tooth
        10.05.2018 20:31

        Да да, о нем самом.
        Если так как Вы говорите, то да, печально.


  1. SinsI
    11.05.2018 13:02

    А нет ли планов сапгрейдить те фичи/модули, которые во многом повторяют функциональность новых возможностей C++17?
    Например, чтобы умные указатели можно было создавать аналогом std::make_unique или std::make_shared?