Qt Contributors Summit 2022 - Program/Keynote with Lars Knoll

From Qt Wiki
Jump to navigation Jump to search


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