As 2017 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.
The Qt Project continued to follow the process of generating two minor releases per year. Qt 5.9.0 was released on May 31, with subsequent patch releases for 5.9.1, 5.9.2, and 5.9.3 during the course of the year.
Note that the 5.9 series is a Long Term Support (LTS) release, with a promise of support for three years. The previous LTS series was 5.6, which is still being supported. The current version is 5.6.3, and we may see more 5.6 patch releases if there are any serious issues to address.
Qt 5.10.0 was the second release of the year, released on December 7 after a series of alpha, beta, and release candidates. This is now the "recommended" release for new development by users who don't require an LTS version. Indications are that the 5.10.0 release is stable, and ICS is now using it in our training classes.
Qt Creator Releases
Also this year were several releases of the Qt Creator IDE. The goal is for three Qt Creator minor releases each year. Qt Creator 4.3.0 was released in May, 4.4.0 in September, and the most recent 4.5.0 release on December 7, 2017. Notable features of the 4.5.0 release include improved cmake support and better Android integration.
Another significant release this year was Qt 3D Studio. Qt 3D Studio is a 3D user interface authoring system for software developers and graphic designers. It includes both the Qt 3D Studio Editor and Qt 3D Studio Viewer applications.
Originally it was the NVIDIA DRIVE Design Studio system, and was contributed to the Qt Project. Almost a year of development went into updating the software to make it cross-platform, add new features, and better integrate it with Qt. This culminated in the 1.0 public release on November 30, 2017. I'll take a closer look at Qt 3D Studio in the new year.
Significant New Qt Features
Qt 5.9 and 5.10 added many new features. I'd like to highlight a few that I feel are the more significant ones.
Qt Gamepad is a module that exposes gamepad controller input to C++ and QML applications on a wide variety of platforms. It's obviously of interest to developers of games and can be useful for applications that want to use this type of input device.
Qt Lite is a set of tools and technology to allow Qt to be scaled down to smaller embedded devices. I've personally seen Qt running on a smart watch using this technology.
Qt Remote Objects is a new module that allows you to easily share QObject interfaces (signals/slots/properties) between processes or devices.
Qt Speech supports cross-platform text-to-speech. In the future is also should support speech recognition. As of Qt 5.10.0 it is no longer in tech preview status.
Qt WebGL Streaming Plugin is a new back end that allows QML-based applications to be displayed in any web browser that supports the WebGL API. It offers a new option for producing web-based apps using QML.
The ICS team L-R: Tim Hok, Andrew deBlois, Justin Noel, Jeff LeBlanc, Mark Hatch, Krzysztof Krzewniak, Vladimir Moolle
This year again saw the annual Qt World Summit held in Berlin, Germany October 10-12. As in past years, it featured an optional training day, followed by two days of the developer conference proper. This year the annual Qt Contributor's Summit was also held just before the summit.
By all accounts it was a success with many excellent technical talks by a wide range of speakers. ICS' Vladimir Moolle and Krzysztof Krzewniak presented an interesting talk entitled Plugin-based IVI Architectures with Qt, while Jeff LeBlanc presented Introduction to User Experience Design for Developers. You can find the session recordings here.
In addition to the Qt World Summit, ICS had a presence at a number of trade shows this year, including CppCon. There, Lars Knoll gave a plenary address on the Qt Framework, giving Qt exposure to the wider C++ community.
Both ICS and The Qt Company offered a number of live webinars on Qt-related topics this year. We have some new ones in the works for 2018, as well as updated versions of some that we've given previously. You can check out our current offerings here.
Industry Trends and the Future
Now it is time to gaze at the crystal ball and make some predictions about where Qt and the industry might be headed in the future. No doubt we will see the Qt 5.11 and 5.12 releases in 2018, with a number of new features, and some tech preview features being finalized for release.
We're seeing increasing use of the new features of the C++17 language standard that was recently approved. Compiler vendors are quickly supporting it and developers are starting to use it in their applications. Like C++11, we can expect Qt to start leverage these features, and eventually require a C++17 compliant compiler to build it.
Vulkan is the next-generation 3D graphics API, essentially a replacement for OpenGL. Qt 5.10.0 has enablers to support the use of Vulkan. We can expect to see a full Vulkan rendering back end for Qt at some point in the future.
While interest in C++ remains high, it is an increasingly complex language. I'm seeing more use of the Python programming language with Qt, for desktop development and even for mobile and embedded. I expect to see more of this in the future.
In the embedded market, we're seeing the major areas of growth to continue to be IoT, automotive, and medical devices.
I think there is a largely untapped market for Qt on low-end devices, which will grow thanks to Qt Lite and as smaller, inexpensive devices gain more processing power to the point that they can run Qt under an operating system like embedded Linux.
Qt is a mature framework, with 2016 marking 20 years since the 1.0 release. I don't see any major changes or challenges in the short term to the health of Qt and its ecosystem, but I am sure there will be some exciting developments in the next year.
ICS also marked an important milestone this year, celebrating the company's 30th anniversary in December. On behalf of everyone here, I wish you a happy and healthy 2018.