As the year draws to a close, I thought it would be good to take a look back at some of the major events of the Qt world in 2014.
Qt is now on a regular schedule of two major releases per year. We saw Qt 5.3.0 (1) come out in May and Qt 5.4.0 (2) in December. More minor releases occur, as needed, between the major releases.
Qt 4 continues to see maintenance releases with a Qt 4.8.6 (3) coming out this year, and a 4.8.7 release planned in the first quarter of 2015. As announced at Qt Developer Days, Qt 4 will be officially supported for one more year. If the experience of Qt 3 is any indication, some users will continue to use Qt 4 for some years to come, even if it is not officially supported.
The Qt 5.5 (4) release is expected around the end of April 2015 and plans for the release and the features it will include, are well underway.
This year saw support added for Qt on the Windows Runtime platforms Windows 8/RT (Modern UI) and Windows Phone 8. Android and iOS platform support continued to improve.
We also saw some new Qt modules released, most notably Qt WebChannel (5) and Qt WebEngine (6).
Qt 5.4 introduced some new licensing options (7), with the addition of the Lesser General Public License (LGPL) version 3 as the license for most new modules, and an additional option for existing Qt modules. The commercial offerings of Qt now include the new Indie Mobile version, which was a response to the requests from small independent mobile developers for a more affordable way to use the commercial version. We also saw several new features, such as the QML compiler, offered only as part of the commercial Qt versions.
The Qt division of Digia also transitioned to its new branding as The Qt Company, and effort begunto consolidate the community website and Digia's Qt web content under the qt.io web domain.
We also witnessed two successful Qt Developer Days conferences (8), in Europe and North America. A number of Qt ecosystem members, including ICS, also put on smaller events during the year.
The C++ programming language that Qt is implemented in, continues to move forward with most compilers now supporting the features of the C++11 (9) standard. Qt 5 is also making use of it internally for some of its implementation, such as the new connect syntax for signals and slots. The next revision of the standard, C++14 (10), has been approved but not yet published and work on C++17 has started.
The decision for Qt to support Android has proven to be wise, with Android continuing to be the largest platform for mobile and embedded devices. The other notable mobile platform that uses Qt is BlackBerry. They have had some success with their new Qt-based smartphones, and the QNX division a number of successes including a recent major IVI deal with Ford.
The Raspberry Pi (11) continues to be popular, selling its three millionth board in 2014, and is close to or will have reached four million before year end. The lowest cost model, the Raspberry Pi A+, is priced at only US$20 and is influencing other hardware vendors to introduce low-cost embedded platforms. One such example is the BeagleBone Black.
At ICS we have seen a number of trends this year which were reflected in our many consulting projects.
The general trend of embedded devices moving from simple pushbutton and LCD-type user interfaces to touchscreens continues. We are seeing In-Vehicle Infotainment (IVI) and In-Flight Entertainment (IFE) as two of the big growth areas, as well as medical devices and industrial devices in general.
The so-called Internet of Things (IoT) looks like it may be poised to be a big growth area, but still remains to be seen.
We are also noticing a lot of interest in 3D and accelerated video, especially OpenGL and technologies such as OpenCL (Open Computing Language) and CUDA (NVIDIA’s parallel computing architecture) that leverage the power of today's graphics processing units.
Where are we headed in the future? As always, the future remains hard to predict.
One question I have pondered is whether Qt on Android and iOS will become a popular alternative to using the native frameworks on these platforms, or will remain a relatively small niche market. The possibility of being able to develop an application once and run it on multiple platforms including iOS, Android and Windows Phone is very attractive.
This year a number of new Qt features were offered only for the commercial version of Qt. Historically, the majority of Qt users have used the LGPL version. It will be interesting to see if in the future more Qt users decide to go with the commercial release, either for the add-on features or in order to comply with the licensing requirements on mobile and embedded platforms.
With Digia branding their Qt division as The Qt Company, I'm sure many people are wondering if it will remain a wholly owned subsidiary of Digia, or whether it might spin off as a separate company at some point in the future.
Finally, a personal wish of mine is to see more books published on Qt 5. While the Qt reference documentation has always been excellent, some people prefer to learn from a printed or e-book. I am pleased to see one new book on Qt 5 (12) that was recently published and I hope to see more. When Qt 5.0 first came out, Qt was something of a moving target that was hard to document due to the long lead times of a printed book. Now that Qt is on a stable release cycle a printed book is more feasible, especially now that print on demand services from companies like lulu.com allow authors to publish or update a book more quickly than in the past and still offer their book on sites like Amazon.
In summary, 2014 has been a very good year for the Qt community and I am optimistic that 2015 will be even better.
- Qt 5.3 Release Wiki page, accessed December 23 2014, qt-project.org/wiki/Qt-5.3-release
- Qt 5.4 Release Wiki page, accessed December 23 2014, qt-project.org/wiki/Qt-5.4-release
- Qt 4.8.6 Release Blog Post, accessed December 23 2014, blog.qt.digia.com/blog/2014/04/24/qt-4-8-6-released
- Qt 5.5 Release Wiki page, accessed December 23 2014, qt-project.org/wiki/Qt-5.5-release
- QtWebChannel documentation, accessed December 23 2014, doc.qt.io/qt-5/qtwebchannel-index.html
- QtWebEngine documentation, accessed December 23 2014, doc.qt.io/qt-5/qtwebengine-index.html
- Qt Licensing web page, accessed December 23 2014, /www.qt.io/licensing/
- Qt Developer Days website, accessed December 23 2014, www.qtdeveloperdays.com
- C++11 Wikipedia article, accessed December 23 2014, en.wikipedia.org/wiki/C++11
- C++14 Wikipedia article, accessed December 23 2014, en.wikipedia.org/wiki/C++14
- Raspberry Pi website, accessed December 23 2014, www.raspberrypi.org
- Application Development with Qt Creator, accessed December 23 2014, www.packtpub.com/application-development/application-development-qt-creator-2nd-edition