[Development] QML 3 and JavaScript

Fabian Kosmale fabian.kosmale at qt.io
Tue Nov 12 09:11:49 CET 2019

The point of maintaining the QML 2 engine is

- to still support live preview/editing of QML components,

- giving users the choice to actually have all of the power of 
JavaScript, including closures, generators, the arguments object, etc., 
in their QML components,

- to not break thousands upon thousands of lines of existing QML 2 code 
for people migrating from Qt 5 to QT 6

- and to have a JavaScript engine which at some point can finally send 
QtScript into retirement

The reason for having QML 3 (as a strict subset of QML 2) is that by 
adding some restrictions to QML we can significantly enhance the 
tooling, and also make it possible to compile it to C++ for greater 

The whole discussion about the QML execution engine doesn't however 
preclude changes to core QtQuick and QtQuick.Controls 2 (which is what 
Giuseppe was referring to), though the guiding principle here is still 
to break as few code as possible.

Kind regards,


Am 11.11.19 um 19:36 schrieb Kevin Kofler:
> [...]
> Then what's the point of maintaining the whole old version, if it won't be
> compatible anyway?
Fabian Kosmale
Software Engineer

The Qt Company GmbH
Erich-Thilo-Str. 10
D-12489 Berlin
fabian.kosmale at qt.io

Geschäftsführer: Mika Pälsi,
Juha Varelius, Mika Harjuaho
Sitz der Gesellschaft: Berlin,
Registergericht: Amtsgericht
Charlottenburg, HRB 144331 B

More information about the Development mailing list