I have recently found out that the future of Qt has become uncertain as Nokia, It\'s current owner, has announced they officially have no interest in desktop Qt.
I know
Qt licensing is unfair. They ask a single seat developer to pay 1/10 the licensing cost that a 10 seat developer pays, even though the market share of the single seat developer is 100x smaller, and 10 seat developers ALWAYS hide the number of seats.
The other "free" licenses are just there to lure you into investing time in their system. Later on, when you want to make some money, you have to pay their insanely high licensing cost to make something out of your investment in time.
The future of Qt is never uncertain. The one who said, "there is not interest in desktop" is not the owner. The future of Qt is well mentioned after the Feb'11 (announcement of WP7 collaboration). In fact, QML is Good way to go for future UIs.
For your proof, the new Unity Interface for Ubuntu is going to have a 2D QML interface and the future editions are going to have QML 3D interface for some applications. The new Ubuntu is highly integrated with Qt.
The way Qt is going is too good so far. As a regular reader of Qt blogs and labs, I can say it for sure. The new Qt 5 is going to have lot of features and performance improvements. Also, they have committed its development to the successful Open Governance model. So, everyone can contribute.
Since the future of development is going to be for Mobiles and Tablets, most of the tutorials you will find may seem to create an illusion that Qt has no support for Desktop, but its not the case.
Download the latest Qt SDK 1.3 and you will find the Qt 4.7.4 for Desktop.
To ease the use of Qt, for developing both mobile and desktop applications, Nokia has combined both development environment into one SDK called Qt SDK, unlike the previous Nokia Qt SDK.
Moreover, I think no other C++ development framework can support a wide range of platforms like Qt supports now.
I supports: - Desktop OSs: Windows, Linux, Mac OSx. - Mobiles OSs: Symbian, Android (Community cupported), IOS (Comunity supported), Windows CE, - Embedded Linux devices, Meego, Maemo. Tablet OSs: Android, Meego, Tablet Linux ports.
A new opportunity for porting it to is available in the name of Qt Necessitas- The Android port and IOS port of Qt are based on this only. If you have doubts check the YouTube for videos.
And regarding Java, I have read it is not that cross platform as Qt is. I also doubt whether any IDE, other than Qt can give you the comfort of cross compiling.
The Documentation is too good that, for rare cases where cross platform is not supported (for some Window functions) is mentioned explicitly along with alternative methods to implement it in that particular OS.
QML is awesome, since its behind the scene actions are performed using C++ to give you similar performance (85% as fast as Qt C++). And you don't have the head ache of Memory Management (if you are not used to with C++). If you really want a beautiful GUI and fast performance go for QML and C++.. Else the easy option is to use QML and Javascript.
I'm developing an application for Symbian, using heavy animations in my Nokia E63 with a CPU clock speed of (386 MHz) and QML performance is smoother and doesn't hang at all.
You can even find the OS and version with an if else statement, that easy. Give it a try before deciding it by reading some reviews.
The future of Qt is very much not uncertain. Qt's license has a clause that specifically says that if at any point it is no longer offered, then it becomes public domain. At which point I would imagine that the KDE folks would take over development (since they've considered merging kdelibs with Qt at least a little bit before).
Also, There is a company (Digia?) which is currently offering Qt commerical licenses still.
Finally, Qt5 is actively in development by Nokia, I don't see how it is even close to "dying", simply put, you're misinformed.
There's the Fox toolkit, a cross-platform GUI C++ toolkit. I discovered it recently, and will be evaluating it for our software very soon. From the documentation, it seems pretty straight-forward, but I've not actually developed anything in it (yet.)
From the website:
FOX stands for Free Objects for X. It is a C++ based class library for building Graphical User Interfaces...Applications using FOX are not dependent directly on X-Windows. As all platform-dependencies are completely hidden from view by the FOX System (applications don't even include X-Windows header files!!), such applications will be easily ported to other platforms, simply by recompiling.
In addition to Evan Teran's post.
http://www.kde.org/community/whatiskde/kdefreeqtfoundation.php
I'm not sure if it's really a huge concern wondering if Qt will fall out of use. It is one the most (if not the most) popular cross platform libraries of its kind, and still has strong support.
Regardless, your question about other systems is still relevant. Here's my two favorites:
Switch to a cross platform language with standard support for what you need such as Java.
Script your app with a cross platform language with such standard libraries in order to build those parts of you app, while you still use C++ code for rest of the work.
They're pretty similar options, with the second being much less dramatic. Especially considering that the question was asked out of concerns for a library's survival, I would much rather bank on highly popular and mature languages to maintain support. Of course, there are probably many choices in language, but the one I'm most familiar with is Java, which is why I mentioned it earlier. It's not too bad writing Java code to interoperate with your C++ code, and is also provides a nice example of how using multiple languages in an app can be advantageous.