What's new / appeared in Qt for half a year almost a year from the last article . Releases 5.9 and 5.10, as well as new tools, add-ons, platforms and the transition to a subscription licensing model.
I would like to write about the news more often than once every six months a year, but it turns out how it turns out. I generally started writing this article in January, but I managed to finish it just now.
Today the content is:
This is a Qt developer conference. Not only those who work in The Qt Company (there were even less than half of the participants), but in general everyone who participates in the project.
In 2017, the Qt Contributors Summit was combined with the Qt World Summit 2017 , and was held in Berlin. Program and session summaries are posted on the wiki .
This year it was decided to hold a conference in Oslo, that is, the World Summit this time will be held separately.
The event (conference), which organizes The Qt Company. In 2017, the summit was held in Berlin. The number of visitors was a record - about 1000 people (in the past there were 800?).
The year is not specified in the address of the event page ( https://www.qtworldsummit.com ), so, I suppose, this link will soon start pointing to the 2018 summit ( already indicating ), and 2017 will go somewhere to the archive ( no, just Delhi somewhere ). But not yet left ( already left ) - you can see the program of the conference and the participants of the exhibition. It was also possible to download the summit's mobile application written in Qt (more precisely, on V-Play ), and marvel at how it slows down and crashes on everyone, thanks to the development partners. Why we ourselves that year can not write an application for our own summit - is unclear.
All speeches from the conference are published on YouTube.
At the exhibition in the center of the hall showed new developments:
Around there were stands of partners and customers who showed something of their own. For example, Mercedes-Benz rolled up such a concept car .
Starting from 2018, there are now several summits and they will be held at different times and in different places. This year there will be 2: American (Boston) and European (Berlin) - both towards the end of the year. Further, it is planned to add a third one for Asian countries (possibly in Tokyo).
Like last year , we were at the Embedded World in Nuremberg.
Of the interesting demos can be identified:
Since January 2018, Qt licenses for all products have switched to a subscription model (term-based), that is, you can no longer purchase a "lifetime" license. In general, for those who previously “extended” the license every year (for updates and support), nothing really changed, because in fact it was already a subscription model. But there is a difference: previously it was possible not to renew the license and calmly continue to develop / distribute your product (the license itself is for life), but now the terms of the license agreement prohibit it - you must have at least one active subscription, otherwise you can’t either develop nor sell a finished product. What a twist!
I imagine that you want to tell me about the license-subscriptions, I myself said all this more than once to the developers of certain applications ( Ulysses , for example), but it was not I who invented it, I only deliver the news. But in general, for the framework, the subscription license looks more or less justified (compared to a subscription to a text editor).
On the positive side, if you acquire Device Creation, then the Application Development license is now included. In addition, earlier for RTOS (real-time operating systems) there was a separate price for each, and now everything is included.
All this is reflected in the new license agreement ( License Agreement version 4.0 , which by the way is no longer divided into separate agreements for Application Development and Device Creation.
Work on the "improvement" of the website does not stop for a minute, and the length of the list of connected third-party scripts is already more than a kilometer. The animation of the whole row allowed us to achieve the utilization of the user's processor at the level of 80-90% and the corresponding power consumption, which, however, did not go unnoticed by the visitors, because now there is a heroic struggle to optimize all these beauties.
If you wondered why some sections of the site are on the www
subdomain, and some on www1
, then this is because the site uses two different CMS. Well, because that's it.
Somewhere in May 2017, another effective manager decided to hide the Open Source downloads far away and put more Buy Qt buttons ("buy a license"). They hid so well that we even began to send letters asking " Why did you remove Open Source ?! ". Fortunately, having met criticism from both the Open Source community and within the company, after some half a year, this change was reviewed and returned almost as it was.
A new section has appeared - Qt Resource Center , such an aggregator of various resources (articles, videos, "success stories", etc.), divided into categories and search. Now you can, for example, once get all the tweets of the official account (but why) .
May 31, 2017 Qt 5.9 is released . It is the next LTS release after Qt 5.6 - with long-term support (3 years).
The article on OpenNET already has a great overview.
By the way, this seems to be the first release since Qt 4.7, for which more than three corrective (minor) releases were issued (current version 5.9.5).
And starting from this version, the corrective (minor) releases now again do not update the current one, but are set separately:
December 7, 2017 was released Qt 5.10 .
And again, an excellent review of the release in an article on OpenNET .
In addition to the usual (basic) licenses (Application Development and Device Creation), add-ons will now appear. In general, they wanted to do something like a store of add-ons / plug-ins (like qpm , only official), but the idea has not gone further, therefore they will simply be added to the installer.
If we take the scheme from the previous article as a basis, the new one looks like this:
The already complicated licensing structure has become even more complicated. If you try to explain everything briefly, then add-ons are not included in the "standard" licenses and are sold for extra money. Considering that not everyone is interested in reading about commercial licenses, I will not describe in detail (besides, I need to give the sales department work as well).
If you use Qt under Open Source, then nothing has changed for you - just add new libraries and tools.
Qt for Automation is the first addon announced in August 2017 . It is a package of libraries for building solutions for the so-called Industry 4.0 and M2M .
Currently (Qt 5.10) add-on includes:
With Qt 5.11, OPC UA should appear, then CoAP and others. In addition to the libraries themselves, a package of installation / configuration / training services is also provided.
While more promo than the real product / addon. Well, of course, it is planned to add functionality specific to the medical industry, for example, working with the DICOM format (although there are already third-party implementations specifically for this format).
In fact, for medicine-related projects, certification is more important than features, and therefore we are now part of such associations and alliances as AdvaMed , Qmed and MassMEDIC . I am far from this industry, because of the real benefits of joining these alliances I can not say anything.
In October 2017, the source code for Qt 3D Studio was finally published ( an article on OpenNET ). Why they did not publish immediately after receiving them from Nvidia - because everything was written there on MFC, and we decided to port it to Qt first.
A month after the publication of the source released version 1.0. It still uses Nvidia's own 3D engine for authorship, but the work on transferring it to an already existing Qt 3D is almost finished (because it’s enough to produce engines).
Qt 3D Studio and its runtime are available under both a commercial license and GPLv3 (no LGPLv3). The studio itself is free, but using its runtime in your commercial application increases the cost of distribution licenses (if any).
In general, this is still a half-secret project, but since this video was published on the official channel, it turns out to be not very secret.
But just in case, without special details. Sometime soon there will be an official announcement (in a couple of weeks?) And the first public beta (in June?).
The Qt Safe Renderer is a certified (IEC 61508 and derived standards of functional safety ) graphics renderer. In fact, a separate application that renders critical GUI elements regardless of the main application. And if the main application "will die", then these elements will continue to be displayed on the screen.
Obvious areas of application: automotive and medical industries, where the main application hangs at a speed of 200 km / h or during a surgical operation is fraught with negative consequences.
An example of use in a digital instrumental cluster (dashboard) of a car:
If interested, I can write a separate article with a "live" example on hardware running QNX (at the end of the article there will be a survey). But just want to say that Safe Renderer in Open Source will not fall and will be available only for money (and very rather big).
It is often asked if Qt can be used for software development, and particularly GUI, on microcontrollers.
So we conducted a study that ended with porting Qt to the RTEMS real-time operating system and optimizing Qt build to run on STM32F469, STM32F746 and STM32F769 microcontrollers.
On the results of the study recently published a post in the official blog, and by the way, the original of this post was actually written in Russian, so that with minimal effort it can be published on Habré (this will also be a poll at the end of the article).
While there is a collection of feedback from customers, who would like to port where and what, and then further development will be planned based on wishes.
This year there are not so many vacancies as in the past, but the search for new employees continues . So if you are interested in something, you can write to me, and I will tell you more.
For example, a sales engineer is wanted for a Berlin office for more than a year and a half (seriously) - this is a person who understands Qt and can talk to people (customers) and answer their technical questions. Already so desperate to find that we take anyone we welcome any candidates. By the way, not the worst way to start a tractor, although I guess I shouldn’t say such a thing. Complicated by the fact that since the position in Berlin, it is very desirable knowledge of more and German.
In total, about 130 people were hired in 2017. People come from all (including Russian-speaking) parts of the planet, there are no racial / religious / sexual preferences / prejudices (except that the position of effective managers is taken only more often by the Finns ( just kidding) ).
If you want to know more about something, write comments, I will try to answer myself or find out from those who know.
At first, Qt Quick Compiler promised to give to Open Source with the release of Qt 5.8. True, it said " ... integrate the Qt Quick Compiler functionality ", that is, as if not Qt Quick Compiler itself, but only its functionality. Looking ahead, this is not the case at the same time.
Qt 5.8 introduced a QML caching mechanism, which was announced as a "replacement" for Qt Quick Compiler. Qt Quick Compiler itself did not go anywhere and was available for holders of commercial licenses in both release 5.8, and 5.9, and 5.10. At 5.11 the situation will change, more on that below.
Why is QML caching called a replacement for the Qt Quick Compiler? Because it generates bytecode and adds it to cache files ( .qmlc
for QML and .jsc
for JavaScript), and this bytecode turned out to be more "productive" than intermediate (untyped) C ++ code that was generated by Qt Quick Compiler. So QML caching is really a replacement (and good) for the "old" Qt Quick Compiler.
Now about Open Source. The source code of Qt Quick Compiler will not be open, because the management has decided that in this case people will be able to port it to the old versions of Qt, where this component was available only to commercial users who might be upset about it.
Why did I call the Qt Quick Compiler "old" and generally use the past tense? Because it ceases to exist as a generator of C ++ code from QML / JS, and in Qt 5.11 it will be available, firstly, to all users, not just commercial license holders, and secondly, its implementation will differ significantly from the current one, and it will no longer generate C ++ code, but will generate the same bytecode as QML caching.
What then is the difference between the "new" Qt Quick Compiler and QML caching, since they give the same byte code? Retelling briefly the release documentation 5.11 , the "new" Qt Quick Compiler provides the following features that QML does not have caching:
Simply put, this "new" Qt Quick Compiler repeats the functionality of the "old".
Well, respectively, it would not make sense to use both QML caching and Qt Quick Compiler at the same time. More precisely, you and this will not work, because they are mutually exclusive. QML caching works out of the box in an implicit way, and Qt Quick Compiler needs to be explicitly activated, with the result that the caching mechanism simply “shuts down” (which is logical). And by the way, of course, now between them there is no difference in performance, since in essence, both mechanisms do the same thing.
Why then just not always use Qt Quick Compiler, what's the point then in QML caching? As stated in the documentation, Qt Quick Compilers will have a number of restrictions that are not suitable for all projects, because some projects will rely on one mechanism, and some will be able to use another.
Another difference is that if using the "old" Qt Quick Compiler you could not use JIT (because the result of its work was C ++ code (although there is also a second bottom)), the "new" Qt Quick Compiler and QML caching can be used also JIT for highly demanded code fragments. In short, before Qt 5.11, JIT did not give anything over the already "compiled" QML, but starting from 5.11 it will be.
By the way, it turned out that we are just preparing an article on this topic, so that soon you can read in the official blog (by the way, there is RSS there) a more competent / correct explanation of what is happening.
As such, the style was more or less ready back in February 2016:
But he did not get into the release for a number of reasons, including legal ones.
Apple is absolutely not against applications that do not look "native", that is, you can create any madness and everything will be fine (except for the number of stars from your users). But as soon as it comes to the "native" style of iOS, then everything should look perfect and strictly correspond to the guidelines.
Designs / guidelines for the Material (Android) and Universal (Windows) styles are not only shared (they told me so), but also not limited to any single platform, and Google, like Microsoft, on the contrary, strongly encourages the distribution of their designs to all platforms , not only mobile, but also desktops with the web, including competitor platforms. All this can not be said about iOS.
Well, therefore, any attempt to "recreate" the style of iOS will only be an imitation and imitation of the original style. Speaking of "look and feel", the part that "look" is already difficult enough to recreate, but the part "feel" is generally unrealistic. That is, the GUI may and will look like "native", but the first swipe / scroll / pinch will give out a "fake".
Also, as a result of the study, it turned out that this is fraught with exactly the same legal problems - if we give our style to the “native” style of iOS, then Apple can say something unpleasant. Plus, applications from our customers may be rejected on the App Store due to non-compliance of UX guidelines.
In addition, another interesting point surfaced. Since our implementation of the iOS style is, of course, filed on Qt, which is actually a cross-platform framework, all of a sudden the Chinese “producers” of iPhone / iPad clones will be able to use our style in their bucket packs. Honestly, I do not understand why we should care, but nevertheless, I was told that this is a problem.
This project can be a great solution. I already mentioned it in previous articles. In short, this is the use of a truly native GUI platform (and not a "recreated" style) via QML (or C ++, if you like). But from what I see in the internal tracker, the last activity on this task was in October 2017 and since then silence.
Now about what offers V-Play . I honestly do not know, and the team also did not answer. But given the above, there are two options:
You can try to contact V-Play and ask them. But they may not want to share such information.
Source: https://habr.com/ru/post/354972/
All Articles