Settling my UI API dilemma
-
I am a little frustrated with what's going on at Qt right now. I like Qt Quick and found it to be very easy and intuitive, but with the release of Qt Quick 2 looming on the horizon the API that has been stable for less than a year is practically being rendered obsolete. And what is worse, the Qt Quick API doesn't change only on the QML front but in the C++ back-end as well, rising the need to re-implement all custom QML components all over again to make them compatible with Qt Quick 2.
Another thing that worries me is the decline in the priority (judging by the focus of the last Qt DEV talks that was like 70% on Qt Quick 1 which is not even a core component of Qt 5) of the C++ aspect of the framework. Is at least the future of QGraphiscScene / Item / View certain? It is much slower coding UI elements in C++ with the QGS/V/I but if the future of the c++ graphics stack is more certain I am willing to go for it instead.
My point is that I need to invest efforts mastering a UI API in the long term. I am not after developing entertainment, a few dialogues worth of "phone apps" with limited and narrow functionality that get done in a few days, but large scale projects that focus on productivity. In other words I need an API that will be contemporary and will not be deprecated/ rendered obsolete for at least a few years, so I can build on it without having to re-port my apps constantly to conform them to new and potentially troublesome APIs.
So which is the way to go considering my primary concerns are "future proof", "performance" and "cross platform"?
-
Remember, Qt4 is with us for 7 years now, so we can expect stable APIs in Qt5 for few years (probably not that long, though). Quick 1 is still available in Qt5, and will remain there throughout it's whole lifespan (remember about source and binary compatibility promise!).
The focus is on Quick 2, yes, because it:
- is largely source compatible with Quick 1 (just change "import QtQuick 1.0" into 2.0, and 95% of code works, at least in my case. Only thing that stopped working was the particle system, but that is understandable)
- offers much better performance (2-2.5 times better) and drawing quality
- has fantastic new particle system
- has better JS engine, and new features for QML language
QML is still a new kid, it was introduced in Qt 4.7. I don't know how it was with you, but I always thought this to be a kind of experiment. Now, the feedback was gathered, some shortcomings were identified, and Quick 2 is set to fix them all, while providing a lot of new stuff, too.
Hope that helps you make a decision :)
-
I think it is a bit premature to decide on this, since the priorities of for example C++ vs QML largely depend on the contributors (companies or individuals) willing to work on it under Open Governance. Platform support is the same thing in the long term. On the other hand, it does not get more future proof than under Open Governance, IMO. Performance so far has largely gotten better in many regards.