Wednesday, March 11, 2009

Qt 4.5 released: Kudos to Nokia for showing a smart way to steward a project

Qt Software, formerly known as Trlltech, released the 4.5 version of their popular C++ user interface framework.
Up to today Qt has always been know especially for two things: to be a powerful and modern cross-platform tool and to be far to expensive for being used by independent and small software workshops.
On the summer of 2008 Nokia bought Trolltech and renamed it Qt Software. Qt 4.5 is the first release of the Nokia era and it’s already showing Nokia’s view for this award winning application.



License
The first and most visible changement is about licensing. Up to now Qt was traditionally available with two license versions: a commercial version (very expensive) and a GPL version (completely free). This basically meant that it addressed either to high-budget companies to produce commercial software or to anybody willing to produce and distribute completely open source software. This two-tail licensing cut completely off independent developers and small software houses which clearly hadn’t the budget to buy a commercial license. Competing frameworks filled this gap and what is worse user support for this application was only bound to the official forum as the popularity among the developers was low.
Nokia changed that by introducing a third license option: the Lesser General Public License (LGPL) version 2.1. By paraphrasing Qt Software's own statement “This version of Qt is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions contained in the GNU LGPL version 2.1.” Thus, provided that you can comply with the LGPL license, you can have a free copy of Qt and produce and sell commercial software.
This is the first big improvement Nokia’s done to increase the software development market penetration of Qt. This is also a very good news for developers because Qt is an extremely powerful tool which will be a asset to companies. Often, open source software comes from developers who put their skills and time at the community’s service. Given that those skills are often derived from an educational or job environment, this new license means that more people are likely able to choose, learn and develop with Qt, which a payback to the community in terms of better software available to users.
Qt is ported to different languages such as Java, Python, C, Perl etc.. From this it comes to my mind one possible drawback of this new license option. PyQt, the Python binding, is currently made by a software house, named Riverbank Computing Limited, which lets you acquire either your free GPL version or the commercial one. The rationale is obviously that the comply with Qt policy by giving away the GPL version and make a living of the commercial PyQt version. Right now, however, I can imagine Riverbank guys being a bit concerned about the LGPL Qt license as they will surely suffer a purchases loss from those which are now satisfied with producing commercial products which comply with LGPL license. Right now there’s no 4.5 PyQt available and all we can do is basically see how the Riverbank’s guys decide to move.

New features
Qt 4.5 accomplish two major design goals: increasing performance, enabling hybrid web/native development.
The performance improvement involves the whole framework and can be seen in a faster runtime, enhanced performances of key functionalities as data handling and graphics syste. You can find more information here. Qt 4.5 fullfills now the goal of providing richer user experiences by enabling a better integration with WebKit rendering engine to blend local and web based content. To this aspect Qt applications can now include flash content (like the YouTube player) as well as high end web technologies like HTML5CSS3 and SquirrelFish, WebKit's JavaScript engine.
To Mac development Qt now supports the new Cocoa framework instead of the deprecated Carbon.
From this summary of improvements it is clear to me that the will of Qt, therefore Nokia, is to become a fundamental player in the new generation applications. The web integration is the aspect which I think it’s the more interesting. Right now there’s a lot of chatting about cloud computing and how the desktop based application are doomed to migrate to the web. I am one of those which are not completely comfortable with this scenario. Web applications are not the Saint Grail of modernity. Just like everything in the world,web infrastructure has its technical and usage pros and cons and to exasperate the web migration of just everything running on top of desktop machines it’s probably not the right approach. I tend to prefer an approach more focused in exploiting the best of the two worlds, desktop and web, by integrating, when it’s the case, web resources in desktop applications. This seems to be also the way Nokia’s seeing it and Qt 4.5 provides the tools to create applications which make use of the best web technologies available on the scene.


Qt Creator
This Qt version comes, as usual, with a bundle of tools among which is the new Qt Creator.
Qt Creator is a cross-platform IDE (integrated development environment) specifically design to work with Qt in a cross-platform scope. This is the first version of this tool so rough edges must be expected but, up to Ars Tecnica, the application is perfectly usable. It provides the usual functions and tools like auto completion, text highlights, fast search etc.. but specifically focused on the Qt framework. If I can see a defect on this, which is also referred to the framework in general, is the absence of support for languages other than C++. To provides branches for different languages is surely an asset to a framework focused on setting the benchmark of graphical user interfaces. I know that my opinion is probably biased but the fast coding and high productivity provided by Python for example could be a reason for a developer to use this language to produce an application which maybe doesn’t need the power and velocity of the C++. As already mentioned Qt has its own unofficial branches to several other languages, however it would be great a stronger support from Qt Software to the developers in order to give those developers working with other very popular languages to exploit the best of Qt.[youtube=http://www.youtube.com/watch?eurl=http%3A%2F%2Fwww.qtsoftware.com%2Fproducts&feature=player_embedded&v=U7yje3D1UM4&gl=US]

My general opinion of Qt is very good and now with the introduction of the LGPL license, I can finally strongly advise to choose Qt as your framework. If you have some doubts regarding the power of Qt just know that software such as Google Earth, Adobe Photoshop Elements, KDE desktop environment, Skype and the popular VLC player are made with Qt. Qt library is used for projects in world wide leading companies like Lucasfilm LTD, Walt Disney Animation Studios, Next Limit Technologies etc.

Qt is currently available for Embedded Linux, Mac OS X, Windows, Linux/X11, Windows CE, S60*

*Qt on S60 is not released as a stable product yet, it's still under development and currently Nokia only provides pre-releases

No comments:

Post a Comment