From Flash to Qt: different tech, same themes

I’m at the Qt Developer Days in Munich, hearing the latest from Nokia on its cross-platform GUI framework. Qt was originally developed by Trolltech, a company acquired by Nokia, and the Qt folk here still call themselves trolls.

So what are the trolls up to? Coming straight from the Adobe MAX conference last week, I’ve been interested to find that many of the themes are the same: mobile, hybrid web/local applications, and even designer/developer workflow.

The obvious difference is that Qt is a C++ framework and most of the developers I’ve spoken to here use Linux and C++, both rare skills at an Adobe event. Still, it seems that may be changing. “Wouldn’t be good if designers and developers could work on the same project?” said Matthias Ettrich,as he introduced QML, a declarative UI language for Qt. Now where have I heard that before?

An interesting feature of QML is that it supports Javascript as well as layout and state definition; in fact, QML definitions are really Javascript expressions. This means you can program entire applications in QML, though you can also use it purely to define the visual part, and code the rest of your application in C++. A QML layout looks like any other Qt widget to your C++ code.

But let’s get back to the idea of coding purely in Javascript. Ettrich explained how this would enable designers to add logic and state management to applications, without needing C++ skills. QML projects live in Qt Creator, the same IDE commonly used for C++ Qt applications. This echoes how Adobe presents Flash Catalyst, the new “interaction designer” for the Flash platform. Another parallel is that we saw at MAX how Catalyst can be used to create entire applications, provided that they are simple in nature.

It strikes me that QML has the potential to open up Qt to a much wider developer audience, one that never wants to touch C++. It is also amenable to visual design tools, and for those C++ developers who are not 100% averse to such things it is likely to prove popular.

7 thoughts on “From Flash to Qt: different tech, same themes”

  1. Qt isn’t just used by C++ programmers. For example it has Python bindings and is used widely in the Python community, few of whom want to touch C++ either…

  2. @Michael yes, I know there are bindings for other languages but I’m finding all the people I speak to here use C++.


  3. @Felipe Qt isn’t a runtime, it’s an application programming framework that encapsulates native functionality. Qt applications are 100% native applications. In the Flash runtime you have limited native interoperability.

  4. Hi Henrik, thanks! No doubts that you are right but both Flash and Qt programming frameworks provide native functionality, just look to Adobe AIR (going Android instead of Maemo in the short time).

    @js Flex builder (hereafter Flash Builder) is available for linux users. I’ve used that on Ubuntu 7.10.

Comments are closed.