My visit to Qt DevDays 2014 in Berlin

published at 12.10.2014 20:07 by Jens Weller

I've been to the Qt Dev Days now for the 4th time, this year it seemed special. Things are quite different in Qt land, and for two days the dev days had again a full program of cute things. I skipped the training day, simply because I could do other things in Berlin on Monday and I did not want to take a spot for some one new to Qt. After all I'm working a lot and for a long time with Qt now and have already given trainings on it too. I've uploaded my images to G+ and facebook already.

The conference started with a short keynote from Lars Knoll, he gave a good outlook about Qt 5.4 and what to expect from 5.5, new APIs in Qt and the trend in the whole industry where Qt exists. Qt is one of the major multi platform solutions, and with QML has a very modern UI Technology for any screensize. This is also visible in the program for the 2 day conference: QML, mobile and embedded are hot topics in Qt currently. This also showed the 2nd keynote by freescale, which gave an overview on the Internet of Things and how Qt has become a core technology here.

What I found interesting, that not all talks had a technical focus on programming, there was a very good talk on security on embedded devices (IoT was a buzz word) and a session on why Qt matters, giving an overview on the ecosystem which makes Qt unique. This session was also about the risks and challenges for the future. There was also some content on C++, but the focus of the Qt DevDays was never on C++, always on Qt and its ecosystem. C++11/14 was available as a full day training on Monday, but no talk really focused on it.

New APIs for Qt

There is some really cool stuff in the pipeline coming to Qt. With Qt 5.4 there is QWebChannel, which gives you an easy way to expose QObjects to web clients. Those can be also written in QML, HTML5 or use websockets. Some examples in the booth area were already using this. Also there has been an update for Qt3D, which I had seen a very interesting presentation on at QtDevDays a few years ago. It turns out that KDAB did a full rewrite of a 3D solution for Qt, as the original version was not flexible enough. Also there was only one version of Qt3D 1.0 published, and it seemed cleaner to do a rewrite. Qt3D 2.0 allows different render methods to be choosen, and has full QML and C++ integration.

Also with support for WinRT and Windows Phone there is another platform now supported by Qt, support for Windows 10 is planned and on its way.

Qt & C++

Qt is build on C++, and this will not change for the next years. Yet Qt uses C++ differently then for example boost, which always embraced the cutting edge of C++. Qt is very conservative in its C++ use, but with Qt5 made the move to support C++11 and C++14 Support is coming. This has to be always optional, as existing users need to be able to use Qt in C++03 and C++98. Also, with Qts Meta Object Model, the MOC enables Qt to do things, which otherwise would need support from yet not existing C++ features like reflection.

I had the chance to talk with Lars Knoll about verious things in Qt, mainly its role in the C++ world. I think it would be good if there were more connections between the Qt community and the C++ committee. Lars pointed out, that the resources to contribute to the standardization of C++ are very limited in Qt. Qt has two different sites: the actual implementation, which uses very modern ways of C++ if its fitting, and an public API Interface mostly kept in Object Oriented style. Lars pointed out that the APIs of Qt are usually crafted by a team in an iterative process, till the public API interface seems to fit. It is difficult to change a public API after its publication, thats why Qt has private, internal APIs and public, more stable access points. Also it has been always been the point for Qt to enable the user to express its task easily and solve its actual problems. Also Lars said, that the style which Qt uses, has been chosen over using more advanced features of C++ to make it easier to begin coding with Qt. Also interesting, Qt has now a 20 year old history, as trolltech started in 1994, some of the core ideas behind Qt are even older.

I also noticed how different the Qt and boost/Standard C++ communities are. I did not see many faces I knew from other events or Meeting C++. At CppCon Qt was missing completely, mostly because Akademy, the yearly KDE conference was at the same time. But also I know that its rarely happening that people submit Qt related talks to other conferences then the QtDevDays, at least not for C++Now, CppCon or Meeting C++.

One key difference is also, that there is an commercial ecosystem around Qt, not only the Qt company but also many of the sponsors are integrated into this ecosystem, which is driving the development of Qt. This is a very interesting thing to see, after Nokia is not anymore the owner of Qt. The open government model seems to make contribution more easy, QWebChannel and Qt3D are both open sourced from KDAB. Also, with the performance of C++ and the ability to render modern UIs on touchscreens, Qt has become a leading standard in the embedded world.