Nokia announces start of Qt 5 development
labs.qt.nokia.com
labs.qt.nokia.com
In Qt 5 the entry point for applications can be QML instead of C++.
We expect that all UI will be written in QML. JavaScript will become
a first class citizen and we expect that a lot of application logic
will be written in JS instead of C++.
This is very worrying. They are basically moving from being a tool to
being a platform or a beast of that sort. They are going to adopt V8
too. It all shounds like they are trying very hard to be the next cool
thing. In other words, they are building a totally different beast and
risking they fanatic user base.In the end, I'm under the impression that there's a brillant guy who has been recently hired and who is backed by the execs. That guy came to the office one morning with his 7 pages "technical" proposition (because the guy has a bit of technical background, y'a know) and said Qt was cool stuff but he had a vision for the app^Wproduct.
Or.. they are trying to kill Qt.
Oh, and I'm disappointed.
I lead the frontend development for a very large (and successful regardless of what the press says) command and control system. We completely decoupled our UI from our logic years ago into config files, and use QtScript for GUI events. This allows us to deploy on a large number of form factors with a single code base. Performance has not been effected as the logic is still C++. QML will be a huge improvement over that because it makes it so we don't have to manually build effects using QPainter, QGLWidget, or QGraphicsView.
I understand being resistant to change, but I am 100% behind them looking forward, building for the future, and not just assuming we will to continue doing things the way we do now.
Note though, that you don't have to use the scripting framework. You can define your GUI simply in C++ if you want.
Now, it isn't just that JS is easier to learn for 'artistic types', but it really is a quicker development process than traditional C++. My worry would be performance, just like everyone else. If you have already decided that a web application isn't good enough, why are you going to be okay with the JS penalty?
Most people in the real world care about development turnover time. And as you say, developing in Javascript is a lot quicker than in C++, so why not write the non-performance-critical parts in JS?
That said, the piece that is in most need of performance in a desktop application is often the GUI itself. Imagine Microsoft Word taking a split second more when it updates the ribbon, for example.
Perhaps there is an exception for desktop apps that need direct connections to hardware.
As long as the drawing is fast (which is the case, as it is handled by the GPU), it really doesn't matter in human time whether it takes 0.01ms or 0.001ms to react.
"Qt will require OpenGL (ES) 2.0 to work."
Sigh... Guess we're all using 4.7/4.8 forever.
Series 40 is their dumb-/featurephone OS. It powers most of the billion phones that Nokia sells yearly, and it's not set to be replaced by Windows Phone. There's no way OpenGL ES will make an appearance on those devices for a long while.
The Qt 5 announcement made a point of emphasizing maximum source compatibility between Qt 4 and 5. It seems likely to me that Qt 4 will still see some development from Nokia.
To be clear, I think Nokia is going to maintain an active branch of Qt 4.x for Series 40, and that work will benefit Embedded Linux as well.
QT5 is planned for the future, it's not like it is released now. By the time it is ready, I don't think speed and OpenGL ES 2 support is still an issue on devices by then.
Qt's processor demands are happily keeping up with Moore's Law and the ability of new processors, leaving very little for the developers.
That's a choice they made. They expect that by the time when Qt5 is ready, all customer-facing devices will have a decent GPU.
Not by a long shot. There are stacks and stacks of legacy designs that use Qt/Embedded and will never have a GPU on them.
That's not an argument to keep Qt5 in the past forever. They rightly should look ahead instead of back.
All the more reason to fork, as jsherer has noted right below this.
I feel the QML language is in a embrionary state yet, they are writing the use cases and writing the language at the same time, which will in time show some redundancies in the concepts they use now. Example: 1)there should be more (multiple) inheritance so that we could derive from QML elements like we do in OOP; 2) there was no ability to access the items ids like in a DOM tree.
But what sets a project IMHO is the ambition and the goals. And this team has both, and their work will deliver.