It was my first time attending a Qt conference live, and it also marked the first time the event was held purely online (and we all know why). Here are my personal thoughts on the event and the Qt product itself.
Note: I am not affiliated with The Qt Company. I am just a long-time user of Qt, having used it for approximately 10 years. This post was written shortly after the conference concluded, so please verify any details with official Qt sources.
Event Organization Link to heading
The event was fully remote, with all talks streamed via Zoom. While the content of the talks was excellent, speakers often struggled to fit their presentations into the 30-minute slots. This tight schedule also meant that the subsequent talks started immediately after the previous one, making it challenging to catch the Q&A sessions without missing parts of the next presentation. I hope future virtual conferences will allow for more flexible timing. Additionally, the registration process on the website was cumbersome, requiring multiple clicks and repeated entry of personal details for each talk. However, I appreciated that creating a qt.io
account was not mandatory for registration.
Keynote Speech Link to heading
Lars Knoll, the CTO of The Qt Company, delivered the keynote speech, which primarily focused on the upcoming Qt 6 release scheduled for the end of the year. He discussed API and ABI changes, emphasizing that most changes are source-compatible with Qt 5 (just requiring a recompilation of the old code). For instance, QVector
will become a typedef for QList
, and while QList
will change internally, its API will remain the same. However, there will be changes in runtime behavior in some cases. A significant change is the new build system, which will use CMake
instead of qmake
to build Qt itself—a welcome decision that should simplify building Qt from source using a widely adopted build system.
qmake Link to heading
Although qmake
will no longer be the build system for Qt itself from Qt 6 onwards, it will still be shipped with Qt 6 for its entire lifecycle. However, no new features will be added, and the recommended build system will be CMake
.
conan Link to heading
Several talks mentioned the desire for Conan support. It would be fantastic if Qt adopted Conan for managing its dependencies, particularly as support for more platforms grows. Using Conan as a consumer would also be beneficial, although this might not be a priority for The Qt Company in the near term.
Conan: A versatile package manager for C/C++ (and more) that handles source builds and prebuilt binaries using Python-based recipes.
Open Source, Qt 6, and LTS Releases Link to heading
There were questions about the open-source model for Qt 6, especially concerning recent announcements from KDE about LTS versions being available only to paying customers. This decision was reiterated in multiple talks, and the speakers seemed reluctant to delve deeply into the topic. From what I gathered, open-source users will receive the latest updates with each new minor release. However, please verify this information with the official recordings once available.
I understand the business rationale behind The Qt Company’s decision, but it may pose challenges for the adoption of Qt 6 within the open-source community initially. I hope this concern proves to be unfounded.
C++ 17 as Minimum Compiler Standard Link to heading
I am somewhat disappointed that C++ 17 is the minimum standard, as I maintain projects where a C++ 17 compiler is unavailable. I would have preferred C++ 14 as the minimum, with C++ 17 as an additional option. Nonetheless, I understand the technical reasons for this decision, given that the Qt 6 branch will be around for many years.
Qt for WebAssembly Link to heading
The talk on Qt for WebAssembly
was my favorite. It demonstrated how Qt applications can be ported to the web, showing that small to medium projects can already be ported, depending on the project. While multithreaded applications are currently only supported by Chrome, this issue should resolve as browser support expands. Although Qt for WebAssembly
is not a top priority, I believe its importance and potential revenue for The Qt Company will grow over time.
Qt for Python Link to heading
PySide2 Link to heading
Shiboken2 Link to heading
There were two talks on Qt for Python
, one about PySide2
and another about Shiboken2
. Shiboken2
generates Python C++ extension code from existing C++ code using typesystem definition XML files, which are then compiled into Python modules by a standard C++ compiler. PySide2
consists of these Python modules, which can be installed via pip.
I wish the Shiboken2
talk had been longer, as I have used similar tools for embedding Python into a large Qt application. There was also a lack of information on embedding Python into existing Qt applications, which I hope will be addressed in future documentation or blog posts.
Open Source vs. Commercial License Link to heading
This talk was excellent. The speaker clearly explained the issues with open-source licenses and when a commercial license might be a better option. I highly recommend this talk to any software developer or product manager.
Conclusion Link to heading
I could not attend every talk, so I focused on those of most interest to me. The conference included many beginner-level sessions, which are great for attracting new customers. However, I would love to see a virtual Qt conference with more advanced, technical deep-dive sessions, perhaps as a one-day event with longer sessions. Given the ease of organizing virtual conferences, I hope to see such events more frequently, but not necessarily over two days. While there are already Qt webinars, they often lack the technical depth I seek.
I want to thank all the speakers for their excellent presentations and The Qt Company for providing such a great product. Thanks also to every open-source contributor who helps make Qt what it is today.
Overall, it was a fantastic virtual conference with its pros and cons, and I look forward to attending the next one in 2021.