dpurgin at gmail.com
Mon Nov 11 09:10:48 CET 2019
as we learned at the recent Qt World Summit in Berlin, we're getting QML 3
with Qt 6. There are some cool features and changes to improve the clarity
and the performance of the QML part but there is one thing that bothers me:
already and will be disabled in QML 3, or will it be optional in QML 3
only, and QML 2 remains as it is now?
Just look at Sailfish OS (actively developed) or Ubuntu Phone, there are
separated from the logic but in the real world, you can't completely
enforce this that unless it is technically impossible. And I'm afraid if it
becomes impossible with QML 3, this will be considered a step back by many
used to implement parts of the view logic. One of the projects is a
domain-specific framework where we do the framework part in C++, and the
customer implements almost all of the logic themselves solely in QML.
I'm sure some parts of the codebase can be rewritten to be declarative-only
and work exclusively through bindings but there is another thing: there are
QML components that *require* imperative code to work with them: the QML
WebSocket type , sometimes even Animation  or Timer . And there
and even a simple console.log() is so practical for debugging.
(btw how do you guys debug complex bindings and state changes? I know the
QML debugger exists but in most cases it's quicker to add a console.log()
to the property change and see what's wrong).
I understand that QML 2 is not going anywhere in Qt 6 but maintaining both
QML 2 and QML 3 will be a burden for the developers of the Qt Framework,
and I'm afraid QML 2 won't get much love after QML 3 is released. Just as
it happened to Widgets, it will be in the "done" state.
be a compile switch to disable or enable it (like QtQuick Compiler) or will
it be a runtime option to the QML engine? If it's a runtime option, there
in fact, don't need, right?
Thanks & cheers
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Development