It's Been a Busy Year in the Qt Ecosystem
As 2016 draws to a close, I'd like to take a look back at some of the significant events of the past year that are relevant to the Qt framework and the ecosystem around it.
Qt Releases
Starting in 2016, Qt 4 was officially at end-of-life status and no longer supported. The last release was Qt 4.8.7 in May 2015 and no new releases are planned.
This past year introduced the first long-term support (LTS) release of Qt, following the model of some other open source projects like Ubuntu to make a commitment to support a release for five years. Currently, this is the 5.6 series with the release of 5.6.0 in March, 5.6.1 in June and 5.6.2 in October. More releases for 5.6 will continue through the support period.
The recommended release of Qt is the 5.7 series with 5.7.0 being released in June and a 5.7.1 expected shortly before the end of 2016. The next recommended release of Qt will be 5.8.0, currently in Beta with a Release Candidate expected this month and the final in early January 2017.
Significant New Qt Features
As well as introducing the first LTS, 2016 saw the introduction of a number of significant new Qt features. For instance:
- Improvements were made to Qt's cross-platform high-DPI support, and by dropping support for some older compiler versions, Qt.5.7 is able to leverage more C++11 language features in the implementation of Qt.
- The Qt Quick Controls 2 offer a new set of QML UI components optimized for embedded platforms. Qt3D has had numerous enhancements, and the new QtSerialBus module provides support for the popular CAN Bus and ModBus interfaces.
- New modules Qt Wayland Compositor, QtGamepad, and the Qt SCXML state machine framework were introduced as technology previews.
- Several modules that were previously available only under the commercial version of Qt were also offered under a GPLv3 licenses for Open Source users: Qt Charts, Qt Data Visualization, Qt Purchasing, the Qt Virtual Keyboard, and the Qt Quick 2D Renderer. In addition, most existing Qt modules had their license conditions changed to support the LGPLv3 rather than LGLv2 license.
- The QtScript module was deprecated, as it duplicates JavaScript functionality already present in other Qt modules, and the previously deprecated Qt Enginio module was removed from Qt releases.
- The Qt Creator IDE was also updated to a new 4.0 series, which offers additional features that had previously only been available in the commercial version of Qt.
Qt Events
In May 2016, The Qt Company announced its de-merger from Digia Plc and began trading on the NASDAQ Helsinki stock exchange as QTCOM. And, the Qt World Summit was held in North America for the first time. The popular event is expected to alternate between Europe and North America each year.
Industry Trends
At ICS some of the hot topics we are seeing in industry include Internet of Things (IoT), In-Vehicle Infotainment (IVI) and increasing use of Qt on medical devices. The continuing cost reductions in hardware, especially Systems On a Chip (SOCs) that can run embedded Linux on a sub-$5 ARM-based processor are driving much of this.
A good example is the Raspberry Pi, which in 2016 introduced the Raspberry Pi 3 Model B, an updated Raspberry Pi Zero and an updated camera module. To date, more than 10 million Raspberry Pi units have been sold. In line with this trend, the Qt Lite project launching in 2017 will allow Qt to run on more lower-end devices like SOCs.
Qt continues to run on desktop platforms, although this doesn't get as much attention as embedded systems these days. Qt also supports the major mobile (smart phone) and tablet platforms, where Qt use appears to be stable — neither significantly growing nor shrinking.
Looking Ahead
I anticipate the next year in Qt will continue follow the same trends as in 2016 rather than show radical change. Upcoming Qt releases in 2017 will include the previously mentioned Qt 5.8.0 early in the year, with Qt 5.9.0 expected mid-year and 5.10.0 around the end of the year.
- Plans for Qt 5.9 are still in the early stages, but we can expect to see further work on the Qt Lite project and support for the Qt Quick Compiler at build time. (Qt 5.8.0 supports some run-time QML performance improvements through caching of compiled JIT code.)
- Support will dropped for some older versions of platforms and compilers and added for new ones. We will likely see releases include 64-bit MinGW builds on Windows and the initial phase-out of support for 32-bit platforms.
- The C++ programming language continues to be a popular choice, generally appearing on Top Five lists surveying language use. The standard for C++17 is expected to be finalized in 2017, which will lead to wider adoption of its features. Second in popularity to C++ in my experience is Python, which is increasingly being used with Qt.
Looking to the future, some industry trends that appear to be poised to move from research into production systems are virtual reality, augmented reality, and machine learning. I expect to see some projects in this area over the next 12 months — 2017 looks to be another busy year.
References
- Qt Roadmap for 2016, Qt Blog, blog.qt.io/blog/2016/02/22/qt-roadmap-for-2016/
- New Features in Qt 5.7, Qt Project Wiki, wiki.qt.io/New_Features_in_Qt_5.7