Qt Virtual Tech Con 2020 - personal impressions

It was the first time that I watch a Qt conference directly and it was also the first time that the conference was purely virtual (and we all know why). Here are my personal impressions about the event and the Qt product itself.

NOTE: I’m not related to The Qt company, I’m just a user of Qt since roughly 10 years. I’ve write this post shortly after the last talk of the conference, so be patient with me when not every single line is 100% correct, so doublecheck always with official Qt sources.

Update 1: All recordings can be found on https://resources.qt.io/qt-virtual-tech-con-2020. Just click on the session and click WATCH ON-DEMAND

Event organization

The event was fully remote and all talks were streamed via zoom. The talks were great, but the speakers have troubles to fit the 30 minutes time frame and also the next talk starts exactly after the 30 minutes from the previous talk which was way to close (mostly missed the Q&A at the end because I have to skip to the next talk). Hopefully the change the pace in upcoming “virtual only” conferences. Register for a talk on the website was also not really easy because you have to do many clicks and always enter your name, email, etc. which was really painful when you want to watch many talks but on the other side I found it really good that people were not forced to create a qt.io account to register for the talks.

Keynote speech

Video

The keynote speech was, as always, done by Lars Knoll, the CTO of The Qt company. He talked about many things, but the focus was clearly the upcoming Qt 6 release at the end of the year. He talked about the API and ABI changes and that most changes are source compatible (just recompile the old code and it should work) with Qt 5 code (f.e. QVector will be a typedef for QList and QList will change internally but it’s API will be the same, but you have to be aware that the runtime behavior will change in some cases!) and changes which are not source compatible needs only small workarounds to get support for Qt 6. The new build system will be cmake instead of qmake to build Qt itself which is a really good decision in my opinion and it will make it easier to build Qt from source with a widely used build system!

qmake

qmake is not the build system for Qt itself anymore with Qt 6, but qmake itself will get shipped with Qt 6 for its whole lifecycle but they won’t add any new extra features and I think that they will recommend using cmake instead of qmake over the Qt 6 lifecycle.

conan

One thing I have heard in some talks was the wish for conan support. For me it would be awesome when Qt would add their dependencies via conan which will get really important when they add more and more supported platforms. If they will add support for Qt as a conan consumer would also be really nice, but I think that want be their main topic for the next year or so ๐Ÿ˜€.

If you don’t know conan: It’s an awesome package manager for C/C++ code (and more) which handles from source builds and also prebuild binaries with one recipe which is written in python.

Open Source, Qt 6 and LTS releases

Of course there were questions about the Open Source model from Qt 6. Some weeks ago news where publish from KDE that there will be LTS versions of Qt 6 only for paying customers. This decision was repeated in multiple talks at the beginning and speakers clearly don’t “like” the questions about that topic. Open Source users will get the latest updates always with the newest minor release when I remember the talk correctly but please checkout the recordings when they are available to be 100% correct about that topic!

I understand why The Qt company is doing that from a business perspective but I also think that could be problematic in the adoptions rate of Qt 6 especially in the open source community in the beginning. But I hope that I’m totally wrong in that point.

What’s absolutely not clear to me is how open source contributions will be handled in Qt 6, but I think they will be always available in the next minor release.

C++ 17 as minimum compiler standard

I’m personally not that happy that C++ 17 is the minimum C++ standard because I have to maintain projects where a C++ 17 compiler is not available. I would love to have C++ 14 as minimum and C++ 17 support as bonus when Qt detect C++ 17 compatible compiler. But I understand the decision from a technical point of view (Qt 6 branch will be available for many years) and not everyone has to maintain a codebase with C++ 14 as the highest available C++ standard (in that cases I will stick with Qt 5.15).

Qt for WebAssembly

Video

The Qt for WebAssembly was a really great talk and personally my favorite one. It demonstrate really well how Qt applications can be ported to the web and that small to medium projects can be ported already (highly depends on the project itself). Multithreaded application are possible, but don’t have wide range of browser support (only Chrome at the moment) but over time this problem will disappear and Qt for WebAssembly is a viable option for web development in the next few years. As the speaker said, Qt for WebAssembly is not their highest priority (of course it is Qt 6) but I think Qt for WebAssembly will get more importance over time and I think that there is much more revenue to get for the The Qt company with that product.

The only thing which I personally don’t like is that it is only available under GPL v3 and commercial license and not LGPL v3 but of course something has to pay their bills

Qt for Python

Video pyside2

Video shiboken2

There were 2 talks about Qt for Python. One was about pyside2 and one about shiboken2. shiboken2 is the tool which is mainly used to generate python C++ extension code from existing C++ code via a typesystem definition xml files (typesystem files just tell shiboken which classes should be included and sometimes how the convert between C++ and python should happen) which then get compiled by a normal C++ compiler so that they are available in python itself. pyside2 are the python module which are created by shiboken2 and can be used from a normal python programmer via pip.

I personally would like that the talk about shiboken would be an hour long instead of just 30 minutes, because I’ve already using PythonQt for 2 years now and I used the typesystem a lot for embedding python into an existing big Qt application. PythonQt and pyside2 has the same origins, the Qt jambi project, and they work very similar. I also missed a section for “how to embedded python” into existing Qt application but hopefully they will provide documentation/blog-post for that stuff (including using a custom compiled python interpreter).

Open Source vs commercial license

Video

This talk was great. The speaker really good explain the issues with open source licenses and when commercial licenses could be a better option.

I highly recommend any software developer, product manager etc. to watch the recording of the talk!!!!

Conclusion

I can’t watch every talk and so I focused on my main interests. There was many beginner stuff which is really good for getting new customers and so on but I would love to have a virtual Qt conference with more advanced sessions for a more technical deep dive, maybe just for one day with one and two hours sessions. In times where virtual conferences are easy to do I would love to have such thing more frequently a year but not 2 days long. I know that there are already webinars from Qt, but again, sometimes I want more technical detail ๐Ÿ˜‰.

I want to thank every single speaker, you were great and I appreciate your work. Thanks also to The Qt company for providing such a great product and of course to every single open source contributor. You all make Qt to such a great product as it is today ๐Ÿ™.

Overall it was a great virtual conference with its pros and cons but I will watch the next conference in 2021 again ๐Ÿ™‚.