Nokia has announced plans to make the open source Qt toolkit available under GNU's Lesser General Public License (LGPL), alongside the existing GPL and commercial licensing options. This change could significantly boost Qt adoption, redefine the economics of cross-platform programming, and dramatically reshape the landscape of commercial application development on the Linux desktop.

Qt is a popular cross-platform software development framework and widget toolkit that supports Windows, Linux, Mac OS X, and several mobile operating systems. It provides the underlying foundation of the open source KDE desktop environment and is also widely used by commercial software vendors. It was originally created in the early 90s by a Norwegian company called Trolltech, which was acquired last year by Nokia for $153 million.

Nokia's acquisition of Trolltech raised questions about the future of Qt and led to widespread speculation about the possibility of licensing changes for the toolkit. Qt has traditionally been distributed under a dual-licensing model, with source code available under a reciprocal license for open source software developers and under a commercial license for proprietary software developers.

Reciprocal open source licenses, which are also called "copyleft" licenses, stipulate that all derivatives must be distributed under the same terms. Making Qt available under a reciprocal license made it possible for the toolkit to be widely adopted by open source application developers, but any developer who wanted to use it for a proprietary application had to pay Trolltech for a commercial license.

The commercial licenses are sold on a per-developer, per-platform basis, which adds up quickly and creates a very costly barrier to entry for independent developers. This is the only factor that has limited Qt adoption. Many companies in the open source ecosystem have chosen to back the competing GTK+ toolkit instead, which is available under the permissive LGPL license. Although GTK+ hasn't improved as swiftly as Qt and still trails behind on advanced features such as input redirection and theming, GTK+ has continued to evolve and remain relevant because many companies that don't want to contend with Qt's commercial licensing have invested in GTK+ development.

Changing the game



Nokia's decision to adopt the LGPL for Qt will eliminate the cost barrier, making it possible for developers to freely use Qt for proprietary application development. This in turn will significantly expand the number of developers who are using the toolkit and will also attract involvement from companies that find the permissiveness of the LGPL appealing. The impact of these changes could be enormous.

Qt is a powerful toolkit with a lot of rich functionality. Applications written in Qt are fully cross-platform and need only be recompiled to run on any supported platform. Qt has a sophisticated theming system that allows it to use native widgets and adhere to native platform conventions without requiring significant platform-specific modifications to code. This means that it can deliver a level of visual and functional platform integration that is superior to most other cross-platform toolkits.

Cross-platform development is becoming increasingly important as desktop alternatives to the Windows juggernaut have become more attractive and popular. The cost of building native cross-platform applications has, however, has traditionally been prohibitively expensive because it has generally meant maintaining multiple, parallel code bases.

The ability to use Qt at no cost for proprietary commercial development completely changes the economics of cross-platform development and will finally make it an easy and affordable option. This could boost the amount of software that is available for Linux and Mac OS X. Qt is already used by several prominent cross-platform proprietary applications, including Google Earth, Skype, Opera, and Adobe Photoshop Album. It's easy to imagine the companies behind that software adopting Qt more pervasively in the future and it will also likely be used by other companies that are looking to get a lucrative chunk of the alternative platform pie.

An inclusive and transparent development model

In addition to adopting the LGPL license for Qt, Nokia will also be completely changing Qt's development model to make it more inclusive and transparent. The source code will be moved to a publicly-accessible Git repository so that the latest changes will always be visible. The use of Git, a distributed version control system, will make it easier for third-party developers to participate directly in the process of improving Qt. To further reduce the barrier to participation, Nokia plans to accept code from contributors without requiring copyright assignment.

Permissive licensing and a more community-oriented development model could give Qt sufficient appeal to reduce the dominance of GTK+ as a toolkit for Linux application development. GTK+ is currently in a bit of a weak position and needs a major boost to achieve technical parity. Many of the historical weaknesses of GTK+ and its most significant deficiencies relative to Qt would probably be addressed in the upcoming GTK+ 3 update, but now that Qt is available under a sufficiently permissive license, some companies are going to ask whether it still makes sense to make investments in using and advancing GTK+.

This could eventually deflate some ISV support for the GNOME ecosystem and lead to a shift towards Qt and KDE on the Linux desktop. That won't happen right away, however, and even Nokia intends to continue using GTK+ in certain contexts. Nokia tells us that GTK+ will continue to be the primary toolkit for the next-generation Maemo platform.

We talked to Sebastian Nyström, Nokia's VP of Qt, who explained that the licensing change was primarily driven by a desire to boost the quality of Qt. The company will be using it internally for a wide range of things and is positioning it as a modern solution for building applications for its own Symbian platform.

Nokia concluded that, in the long term, the benefits of adopting a participatory development model and accelerating development far outweighed the value of the revenue stream that it could generate by selling commercial licenses. The commercial licenses will still be available, however, for developers who don't wish to be constrained by the terms of the LGPL. Nyström says that Nokia intends to take Qt "to the next level" by getting the community involved in improving the toolkit's performance, functionality, and platform support. Nokia will also be hiring additional full-time developers to work on the toolkit. The licensing change is clearly a win for Nokia, application developers, and a large segment of the open source software community.