[CLOSED] The Future of Qt and QML?
-
[quote author="SteveG" date="1391543539"]Part of Qt's attractiveness and expressiveness should be the ability to use more of the 1,000 C++ classes directly within the QML framework.[/quote]
Tha is unlikely to happen (it has been proposed back in the days of Qt 5.0 alpha, I think). Adding Q_INVOKABLE to all Qt classes would put too much overhead. Plus, a lot of QtCore classes are not QObjects to improve performance, so it's impossible to add it for them.
-
bq. don’t intend to use C++ unless it’s absolutely necessary
It's your choice. If you develop application with fluid Ui maybe it's the right choice. In contrast we develop applications where algorithms and math calculations and so on are heavy used.
bq. it is a more productive and expressive way of developing applications than with C++
We don't need fluid Ui at all. Why do you think we can develop all algorithms in pure QML ?
-
cincirin,
I'm not suggesting that computationally intensive algorithms be written in QML, especially if there is no or minimal UI; that's your choice. I am suggesting that C++ is not always the best or only choice for the "back end" and that there are times when QML may be a better alternative. Algorithms have been written in C++, JavaScript, QML and just about any language you can imagine and are often just part of a complete system.
If QML has a good optimizing compiler, then there may not be a tremendous performance degradation using QML/JavaScript as compared to C++. This obviously partly depends upon the algorithm and chosen implementation. However, I have not seen any performance figures to compare the two approaches, especially as this would be on a case by case basis.
I do wish you well in your development.
Steve
-
Tomasz,
I wasn't trying to imply that all of the C++ classes be useable from QML. However, as there are three times the number of C++ classes as there are QML types, I thought that more of them can probably have QML "counterparts" to enrichen the QML environment and provide more capabilities.
Steve
-
As time progresses, I'm sure you'll see more and more QML components becoming available. Rome wasn't build in a day, and neither was and is QML/QtQuick
-
bq. especially if there is no or minimal UI
Steve, contrary we develop applications where Ui is quite intensive but not necessary fluid. For example we have developed some Photoshop like apps, AutoCad or Matlab like. For the time being I don't see how can we use QML here or at least I don't see any advantage over traditionally widgets and their C++ implementation.
p.s. I would go further and even QtCreator heavily use C++/widgetsbq. I do wish you well in your development.
The same to you :-)
-
I like qml and hope it could have more modules in the future, but I don't think it is possible to develop all types of apps by qml + js, like image processing, computer vision. I can't find any free, open source, high quality libraries like opencv2 or Thrust in the realm of js(Besides, I find out that it is always easier to write fast codes by c++).
Besides, the desktop part of qml is not mature yet even QtQuick control is out
1 : The component is not as rich as QWidget
2 : Describe the UI by qml is pretty easy and elegant, but with the help of QtDesigner, we don't even need to codes. -
stereomatching,
Perhaps I'm just an optimist but I can see the power inherent in QML/JavaScript, especially when I see what's happening with node.js. Emscripten has been used to convert C++ and other code to JavaScript, possibly requiring some "tweaking" of the code produced. As an example, OpenCV.js has been created using Emscripten but more work is needed and ongoing. In addition, there are node.js bindings for OpenCV but an installed OpenCV is required.
C++ is ubiquitous, as is C, and may be required for computationally intensive or other tasks. However, it is my hope that Qt in general and QML in specific will evolve to become one of the premier tools to develop software applications, especially mobile ones.
Steve
-
Andre,
I agree that Rome wasn't built in a day but Rome had architects and planners. Qt has maintainers but I have no idea who performs the other functions. I've inquired about roadmaps in some of my previous posts but still have no visibility into what's being done. If you do, please share this info.
Thanks.
Steve
-
[quote author="SteveG" date="1391661159"]s
there are node.js bindings for OpenCV but an installed OpenCV is required.
[/quote]1 : For math heavy apps , you always need to develop the algorithms which do not implement by the libraries yet(ex : manipulate pixels efficiently), or fine tune the performance(GPGPU, openMP, vectorization etc)
2 : opencv2 work very well with c++, there are no reason for me to use some js binding or Emscripten.
3 : Nothing is perfect, this is why we need different programming languages.One man's meat is another man's poison.
4 : Qt is an open source project, if you need more module go into QML, you could contribute it by yourself.