Want to start a fight in Linux desktop circles? Say, loudly and obnoxiously that Qt, the programming libraries behind the KDE desktop, are better than GTK+, the libraries backing GNOME. Or, vice-versa. Either will work. Now, though, Mark Shuttleworth, founder of Canonical, Ubuntu's corporate big brother, is bringing Qt software to Ubuntu, long a GNOME stronghold.
So far I haven't heard any shouting from the programmers' corner, but give it a minute.
Shuttleworth made the announcement writing, "As part of our planning for Natty+1 [Ubuntu 11.10], we'll need to find some space on the CD for Qt libraries, and we will evaluate applications developed with Qt for inclusion on the CD and default install of Ubuntu."
Why? Because, Shuttleworth explained, "Ease of use, and effective integration, are key values in our user experience. We care that the applications we choose are harmonious with one another and the system as a whole. Historically, that has meant that we've given very strong preference to applications written using Gtk, because a certain amount of harmony comes by default from the use of the same developer toolkit. That said, with OpenOffice and Firefox having been there from the start, Gtk is clearly not an absolute requirement. What I'm arguing now is that it's the values which are important, and the toolkit is only a means to that end. We should evaluate apps on the basis of how well they meet the requirement, not prejudice them on the basis of technical choices made by the developer."
Perhaps the Linux desktop developers are being quieter than in past Qt vs. GTK+ debate because some of them are still reeling from all the other recent changes in the Ubuntu desktop. First, Ubuntu announced it would be used its tablet-friendly Unity interface in place of GNOME 3.0 for its next release.
A few weeks later, Ubuntu's development team announced that they were dumping the decades-old X Windows System for Wayland, as the foundation for its graphical user interfaces (GUI). With all these changes, Ubuntu desktop developers might be feeling a little punch-drunk.
At least the ancient war about Qt not being open-source enough is dead now. As Shuttleworth pointed out, "Qt itself has been available under the GPL for a long time, and more recently became available under the LGPL."
Working on Qt/GTK+ co-operation
That said, Shuttleworth knows that "System settings and prefs, however, have long been a cause of friction between Qt and Gtk. Integration with system settings and preferences is critical to the sense of an application "belonging" on the system. It affects the ability to manage that application using the same tools one uses to manage all the other applications, and the sorts of settings-and-preference experience that users can have with the app. This has traditionally been a problem with Qt/KDE applications on Ubuntu, because Gtk apps all use a centrally-manageable preferences store, and KDE apps do things differently."
Shuttleworth continued, "To address this, Canonical is driving the development of dconf [a low-level configuration system] bindings for Qt, so that it is possible to write a Qt app that uses the same settings framework as everything else in Ubuntu.
He then added, "The decision to be open to Qt is in no way a criticism of GNOME. It's a celebration of free software's diversity and complexity. Those values of ease of use and integration remain shared values with GNOME, and a great basis for collaboration with GNOME developers and project members. Perhaps GNOME itself will embrace Qt, perhaps not, but if it does then our willingness to blaze this trail would be a contribution in leadership. … Our work on design is centered around GNOME, with settings and preferences the current focus as we move to GNOME 3.0 and gtk3."
There are still many other questions to be answered, and Jono Bacon, the Ubuntu Community Manager, took a first stab at an Ubuntu Qt FAQ. First things first, Bacon said Ubuntu is not moving away from GNOME and GTK+, not is it moving to offering a KDE desktop.
So why are the Ubuntu developers doing this then? Bacon added to what Shuttleworth had already said, "Firstly, the Ubuntu project is working to ensure that Qt application developers can write apps which fit into the Ubuntu desktop smoothly. It is important that Ubuntu, as a platform, address the needs of developers, giving them as much flexibility as possible while retaining a coherent standard experience for users. Secondly, giving developers the extra toolkit option should mean we end up with better apps all round as the range of apps for assessment and inclusion will be wider. The key criteria for evaluation of any app for inclusion are independent of the actual toolkit. We won't ship an app by default that we don't think offers a great experience, not just on a standalone basis but as part of the whole system."
On top of the shift to Unity and Wayland, adding Qt is going to prove a big challenge for the Ubuntu team. While I like the idea a lot, I do worry that the Ubuntu developers may be biting off more than they can chew. Still, they've done well before and they are giving themselves until November 2011 to introduce Qt. I'll be watching closely to see how it all works out and I'm wishing them all the best in their efforts to make the possible Linux desktop.
Oh darn. I think I just heard a programming flame war starting in the distance. Well, hopefully it will go out shortly, and everyone can back to developing. There's not that much time left to November after all.