Qt Contributors Summit 2022 - Program/Keynote with Lars Knoll
Session Summary
Session Owners
- Lars Knoll
Notes
(Taken by Samuel Gaist)
Special contributor summit as it is the last one as Chief Maintainer
Quick recapitulation based on the Lars's slides:
Qt 6.4
- WebAssembly is fully supported
QtQuick
QML engine
- qmllint and language server improvements
- QML compiler is improving as well
Qt Quick Controls
- Item views are coming along
- iOS Style
Qt Quick 3D
- Physics engine
- Collision detection
- Effects
- Tooling is importing to bring ease of use to all
Qt Multimedia
FFMPEG based cross-platform backend
- Native backend have all different level of support for most
- Inconsistent experience for users / developers
- Fully supported for 6.5
Spatial Audio -> replaces QAudioEngine (5.15)
- QAudioEngine was QML only
- Dual implementation
- Place sound sources in 3D space
- Headphone spatialisation
- Surround sound support
HDR video rendering (macOS mainly)
- Issue with Linux
- Only for QVideoWidget currently (Quick support WIP)
New items
Qt Speech
- Text to Speech is back
- No WASM yet
Permission API
- Mainly used on mobile and macOS
Qt HTTP server
Qt PDF is back
ICU based codecs in QStringConverter
Tooling
Qt Creator
- Clang 14 based
- Numerous bug fixed
Qt Design Studio
- Support all of
Qt Quick
Qt Controls
Qt Quick 3D
There will be a session on how to contribute to QDS
qmake2cmake
- Python script helper to go from qmake to cmake
- Install with pip
- 90-95% of port work likely supported with some tweaking
Qt 6.5 and beyond
Focus areas
Generic feature
- Compiled
- Map rendering (Qt Location)
- improved
- make it easier to add items on map
- reduce API removing what was rarely used
Desktop and mobile
- Modernize styles (Widgets and Quick Controls)
- Windows 10-11, latest macOS etc.
- RHI based backing store
- Chrome OS support
- Wayland
Accessing data
- Protobuf and gRPC integration
- Simplify using REST APIs
- GraphQL
The idea is to simplify how to access them rather than build everything from scratch each time.
Graphics
- 3D, AR, VR, physics
Integrate with the work done on spatial audio
- Toolability
Make things accessible through GUI rather than coding everything by hand.
Python
- Improve interaction with Python
Package management
- Has been pushed back because has been more complex than anticipated
- Conan
New C++ feature
- C++ 20 -> when can we start requiring C++20 compatible compilers (session later)
- Co-routine (session later)
SPDX license identifiers
- Qt is doing the switch
- 2 lines headers
- More concise
Community
- Welcoming and helpful
- Extremely competent
- Very little flame wars and bikeshedding
- How can we grow the community ?
- New community manager ! Pedro
Web page (contribute.qt-project.org)
- It's for the contributors
- Processes
- Stats
- Need improvements (session for that later)
Community topics
- Ghost maintainers: how do we handle inactive maintainers
- Qt Community
- How to grow it ?
- What do to to make people participate ?
- How to promote different aspects for contributions ?
Chief maintainer
- We need to elect a new one
- Lars has been using Qt for 25 years and 22 year professionally
- Started with Trolltech (11-12 people) 20 years ago
- 200 people with Nokia
- Nokia failed but gave benefits like Open Governance, triple licensing, Qt Creator
- After that, the project started "from scratch" and did quite well given the challenge
AMA
FFMPEG: will the new implement replace the old ones ?
- long term: yes, the first being GStreamer
- Gstreamer is mainly for static pipelines and has been hard to work with.
- Next likely with WMF
- iOS, macOS and Android is not yet clear
- QNX might be forced to use the native backend because of HW support
- 6.5 should be default on all platform
If you could magically change/add/remove something in Qt (a module, a class, etc) without any repercussion or people disagreeing with. What would it be?
- QString is a good one -> UTF8 for QString
- Split audio handling in its own library
- In fact nothing much, the architecture is pretty fine as it is
Will FFMPEG be vendored ?
- Yes against a statically built FFMPEG
- Supervision in the CI system for security issues
Where are you going ?
- Small startup in Oslo
- Distributed 5 perso
- Joining as partner
- Chat solutions in business
- How to make integration easier for tools
- Different chat solutions jumping between them
- Maintainer of Qt Multimedia
What do you think about shortening the major release cycle to be able to exploit the evolving C++ features ?
- Good question
- Not necessarily a need for a new major each time (C++11 as example)
- Source incompatibility changes should not happen too often
Is there any other UI framework out there that Qt should keep a close eye in your opinion ?
- Probably yes, Flutter for mobile, not much on embedded side
- It's important to look outside of our bubble
- Tooling
- Tutorial, IDE ideas, etc...
- Took a look at Go as next language he'll be using
What do you think about about other language bindings like Rust ?
- Thinks could be interesting
- Already have stuff with shiboken to build binding
- Not many commercial product done with Rust
- KDAB building Rust/Qt interop