Some Further Notes On Qt In Ubuntu

Mark recently blogged about plans to make Qt a first-class citizen alongside GTK in Ubuntu. He outlined the reason for the plan in the opening few paragraphs:

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!

  • Alexander Larsson

    Any work planned for accessing GVfs mounts in Qt?

  • http://kubuntu.org Jonathan Riddell

    Any work planned for accessing GVfs mounts in Qt?

    This is something the Ubuntu Desktop team need to look at. Hopefully with Qt a first class citizen on Ubuntu Desktop they now will.

  • Geert Jan

    Thanks for the extra info. Just wondering though, you say Ubuntu 11.10 will ship with Qt on the CD, does that mean Ubuntu 11.04 won’t? But doesn’t the new 2D version of Unity require Qt?

  • http://www.happyassassin.net Adam Williamson

    “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.”

    I think you missed ‘thirdly, it’s what Unity 2D is written in’ =)

  • Luke Yelavich

    I can appreciate why this move is considered, however there is the important issue of accessibility to be concerned about. At present, QT is not accessible. There is ongoing work in the community to finish work on the QT at-spi bridge, but this work is not being funded commercially, and is being done when time permits for the people involved.

  • ethana2

    “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.”

    If that does become an actual requirement for included software, things are going to get very interesting very quickly.

    I would actually take it a step further and add RGBA translucency compatibility to that list..

  • manolin

    It is rather called Qt than QT (That’s QuickTime)

  • Chris

    Although i havent been paying much attention, this is Mark’s most pleasant post so far. Hopefully it will help bring the two toolkits closer and one day us users will be able to enjoy a mostly unified desktop experience.

  • Jepong

    Are we looking at Unity for Kubuntu as well in this move?

  • http://lostsonsvault.org/geek/?p=476 Things are really heating up for Natty — lostsonsvault

    [...] and to follow up Some words from Jono Bacon [...]

  • http://www.happyassassin.net Adam Williamson

    they’ve said that Unity 2D won’t be in 11.04 by default (possibly as a PPA), as things currently stand.

  • http://j1m.net Jim Campbell

    Hi Jono – I think Qt is great for developers, and I hope that the fruits of its inclusion in Ubuntu will make Ubuntu more successful. Do you know if contributions to the dconf bindings (and other misc-related work) will require assignment of copyright to Canonical, or will these changes be available in upstream Qt? I hope that they will be made easily available to others, and will not require copyright assignment.

  • http://bcaccinolo.wordpress.com/ Benoit Caccinolo

    Personally, it’s not a good decision. It will had more confusion in the management of common libs for the graphical environment. Consistency if one of the main keys for a good OS and we’ll never reach this point by adding other graphical toolkits like QT or others.

  • Bruno Girin

    This is great news! The Qt/Gtk KDE/GNOME dichotomy is one of the biggest annoyance for would-be Linux developers: whatever choice you make, you can be sure that your application will be a second class citizens in half the distros out there. If Ubuntu can fix that and make both Qt and Gtk apps look good in the same desktop, it’s a massive improvement both for users and developers.

    Of course there will be hurdles on the way, such as accessibility, as pointed out by Luke, but that shouldn’t be a reason to shy away from it. And I’m sure that both toolkits will benefit in the long term.