Qt Contributors Summit 2022 - Program/Keynote with Lars Knoll: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
(Created page with "Category:QtCS2022 ==Session Summary== ==Session Owners== *Lars Knoll ==Notes== (Taken by XXX) ===Title=== Lorem ipsum dolor sit amet, consectetur adipiscing elit,...")
 
(Notes from Lars's Keynotes)
 
Line 2: Line 2:


==Session Summary==
==Session Summary==




Line 11: Line 10:
==Notes==
==Notes==


(Taken by XXX)
(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...


===Title===
  - Took a look at Go as next language he'll be using
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.


===Title===
=== What do you think about about other language bindings like Rust ? ===
  - Thinks could be interesting


Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  - Already have stuff with shiboken to build binding


  - Not many commercial product done with Rust


===Title===
  - KDAB building Rust/Qt interop
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
<br />

Latest revision as of 09:16, 7 June 2022


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