As part of our planning for Natty+1, 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.
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.
Mark then goes on to outline some of the challenges (e.g. system settings), some of the solutions (e.g. Canonical are funding development from Ryan Lortie to build dconf support into Qt), and he also discusses how Qt apps should be welcome in the Ubuntu installation if they represent best-of-breed for the Free Software desktop. I couldn’t agree more.
Before Mark wrote the blog entry, he talked to the Ubuntu Community Council and the GNOME Board, and the Community Council asked for a short FAQ that outlined some of the likely common questions. I prepared it and thought it would be useful to share it here:
Why is Ubuntu shipping Qt on the CD in 11.10? – there are two drivers behind this decision. 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.
Does this mean you are moving away from GNOME and GTK? – we will still continue to ship Unity and GNOME applications. The decision to support Qt in the default install is an additive decision. It is not intended to replace GTK+ or GNOME. Qt has proven itself as a high quality toolkit, popular with developers, and we want to be able to support this effectively in Ubuntu as well as Kubuntu.
Does this mean you are supporting GNOME less? – not at all. Ubuntu will continue to be built on GNOME technologies and ship GNOME applications. This decision is not reducing our commitment to GTK or GNOME, it is merely expanding it to include Qt.
Are you now therefore moving to KDE? – we have no plans to ship KDE as the default desktop in Ubuntu. We will of course continue to provide the KDE experience in Kubuntu.
How will you manage some of the outstanding technical integration issues? There are some areas in which Qt does not neatly fit into the Ubuntu desktop experience and Canonical is investing in resolving some of these issues with Qt. Our desktop team engineers will be performing work to first ensure Qt is a well supported component in Ubuntu, but also so it integrates as best as possible in the Ubuntu desktop experience. We are also going to fund the work needed to make Qt / QML apps talk dconf, which means they can share settings and setting-update behaviors with GTK apps very easily. This work is being performed by Ryan Lortie from the GNOME project under contract to Canonical.
Does this mean Qt apps could be included on the CD? – we’ll be open to Qt apps being included in Ubuntu if they are appropriately integrated. If an application integrates well into the Ubuntu experience, we would be open to its inclusion in a release to offer the best experience for Ubuntu users. By “integrates well” we mean things like: uses the dconf configuration system with live adoption of settings changes, follows Ubuntu font and theme settings automatically, uses our menu and indicator and notification system appropriately etc.
Personally, I think this is a great step forward. I used to hack with Qt many moons ago, and while I changed to use GTK as my preferred toolkit, recent innovations in Qt (such as the incredible QML) and it’s popularity with developers, makes this not only a wise choice for app authors who want to build Qt apps on Ubuntu, but also for Ubuntu users who will have a rich set of Qt apps open to them. This doesn’t change our relationship with GNOME or GTK, it is purely an additive decision, and I think it will serve our users well.
Rock and roll!