As noted last week, two other open source smartphone platforms are Symbian and Meego, the latter a merger of Intel's Moblin and Nokia's Maemo. What is interesting about that merger is that Meego will be using Nokia's Qt UI toolkit, which also is the direction that Symbian is going. Hence, two of the bigger open competitors to Android will share, in theory, a common way of developing UIs.
Qt (pronounced “cute”) has been around in one form or fashion for a very long time. It is the foundation of Linux's KDE window manager and is used in products from Skype to Opera to Google Earth. As UI toolkits go, it is fairly traditional, with widgets and containers and whatnot, not that dissimilar from Android's model. Of course, Qt is designed with C++ developers in mind and runs in native code, whereas Android's Java-based UI toolkit runs on Dalvik VM bytecode.
However, what makes Qt interesting is not so much the features and functions of the toolkit but the fact that two open alternatives to Android will be using it. Can Qt be a calling card to help woo developers who might otherwise have considered Android?
Some things weigh in Qt's favor, but only if the Symbian and Meego environments adopt them. For example, Qt offers many more programming language bindings than does Android...but that only matters if you can, say, install Ruby on a Symbian phone, or if a Meego device bundles the Python interpreter. There are many more developers familiar with Qt development outside of mobile than there familiar with Android's UI toolkit, and sticking with Qt for mobile would be a natural progression for such developers. And, Qt has the potential to offer faster UI operations, if the Dalvik VM proves to be a bottleneck.
However, bear in mind that mobile development is not purely a matter of UI code. Android has smooth integration with all sorts of capabilities beyond the UI, from the Internet to local databases to the camera. Over time, we will see how Symbian and Meego fare, and in particular whether developers are effectively stuck with C++ because, while other languages are available for the UI, they do not cover everything else. Qt also has a myriad of different flavors, accrued over the years, complicating documentation and potentially confusing developers. And, of course, there is an underlying assumption that if Symbian uses Qt and Meego uses Qt that developing for one would be similar for developing for the other, and that has yet to be determined.
Qt, backed by Symbian and Meego, aims to be another pillar of mobile application development. It certainly has the bloodlines for it. Time will tell how solid a foundation it will be in practice, and what Qt's impacts will be on other mobile platforms, Android included.