Qt vs GTK: Conclusion

After writing four posts about this, it’s time to wrap it up. In theory, I could keep on writing forever: I’ve only covered chat clients, browsers, multimedia players and music managers. What about mail programs, torrent clients, pdf readers, graphics editors, image organisers…I could go on. Well, I won’t write about them for three reasons:

  • For the applications I have experience with, like torrent clients or mail programs, I don’t think there’s a difference in quality between QT and GTK applications. For example, I find Qbittorrent and Ktorrent as capable as Transmission and Deluge. I’ve used all of them and I never missed some all important feature. The same goes for KMail and Evolution or Thunderbird, and various PDF readers. The only exception here would be file managers, where GTK has a bigger (and in my opinion, better) choice.
  • Other software I simply haven’t used much, so it would be unfair to comment on it, or say one application is better than the other.
  • I want to write about other stuff 😉

In any case, over the last few weeks I installed and tested enough software to last a lifetime, many of which I haven’t even covered, and I feel confident to draw a couple of conclusions.

1) There’s more GTK software out there than Qt software. I don’t have any numbers to back this up, and I notice Qt-apps is quite active. Thing is, I don’t recognise any of these apps. Antico looks interesting, as some kind of lightweight Qt window manager/desktop environment. So does QutIM, although it’s choice of protocols is a bit exotic. And I wish I had known about Cuberok before I wrote that article about music manager, because I would have loved to try it out. But for every Antico there’s an LXDE or even XFCE, for every QutIM there’s an Emesene, Empathy, Gajim or Gyachi, and for evert Cuberok there’s an Exaile or a Consonance. There’s more choice on the GTK side.

2) Because of the wealth of applications, GTK applications are better. A rather bold statement, but competition breeds quality, and “better” can also mean that because of all the possibilities there’s a bigger chance that you’ll find something you like. Let’s take the example of the music managers. I know Amarok has many fans, but if you don’t like it, you’re flat out of luck because your only other choices are JuK, a slow and underfeatured dinosaur of an application, or Cuberok, a promising but still beta (and from a look at the comments on qt-apps, a rather unstable) piece of software.

3) GTK is simply more tempting to developers. Why? Because there’s no payback to building a great standalone Qt-app. It won’t get included as default in a major distribution anyway. Here’s the reasoning: lightweight distributions will invariably choose GTK, because it’s possible to do so without pulling in all of GNOME. Just look at all the examples in Distrowatch’s list: Puppy, Vector, Damn Small Linux, Zenwalk, Wolvix…all distributions which aim to be lightweight and speedy, and all of them GTK. There’s not one lightweight Qt distribution, because building one is simply impossible. Install the wrong application and it pulls in the whole of KDE as a dependancy. A fellow Archer has tried to compile a list of applications which should make it possible to build a Qt-only desktop, but I wouldn’t want to run it. Much of the software there is beta or even alpha, obscure or not a complete replacement for it’s GTK counterpart.

But suppose you create a new music manager with gmusicbrowser, well, you might become the default in Zenwalk, because it’s complete, and lighter than Rhythmbox or Banshee. You create a fine torrent client with Deluge, but you can’t budge Transmission in Ubuntu? Just you wait, and in the meantime, you’re the default in Wolvix. OpenOffice is much too heavy for lightweight distributions, but Abiword is the de facto standard there. And of course, projects like XFCE and LXDE push their own lightweight alternatives to GNOME’s heavyweights, like Xfburn, Osmo, or LXappearance, GPicView and PCManFM. I won’t even mention the exposure you get when you actually do get your software in a major distribution like Ubuntu or Fedora.
If you want a coder, and you want your application distributed and in the spotlight, you’re better off with GTK.

As a final note I must say that a part of me hoped to be proven wrong when I started this series of articles. I’ve been actively looking to create a lightweight Qt-environment, and since I failed, I counted on lots of people screaming foul, and pointing me to yet unknown gems of Qt-goodness. Well, people disagreed with me alright, but not the way I hoped for:

  • Some people thought that I thought GTK is a superior toolkit than QT. I don’t. Actually, wouldn’t know what seperates them on a technical level. All I looked at were applications.
  • Some people told they’d prefer KDE applications over GTK ones, because they have more options. I can understand that, but from my viewpoint, if you found a way to have your perfect desktop without installing GTK, you’re in the minority. The other way around is much more common. I won’t argue tastes though, I can understand a preference for Qt-apps. To each his own.
  • A nice one was “Ha! You’re wrong! XXX is not a GTK-app!”. Most of the times XXX was Firefox, but Banshee was mentioned too. However, both applications use the GTK toolkit, and I don’t care how. If it looks and feels like a GTK app, then for all intents and purposes of these posts it’s a GTK app.
  • Some people called me an idiot. I can live with that 😉

So there you have it. Now that I’ve finished these, I’ve uninstalled KDE and went back to Openbox. It’s fast, lightweight, looks good, and I haven’t installed a single Qt application. I don’t need to.

San

45 Responses to Qt vs GTK: Conclusion

  1. Anshul Jain says:

    One main reason for GTK+’s historic uptake- the LGPL licensing which allowed proprietary apps to be linked against GPL libraries. Qt was GPL or Commercial, and thus was off limits for creating apps. Its been in the past few months that Qt has been opened up as LGPL (starting from Qt 4.5.x). This will truly lead to an adoption of Qt by developers.

  2. celettu says:

    Anshul Jain:

    Thanks for mentioning that. I wasn’t aware 🙂

  3. truzicic says:

    I’ve uninstalled gnome and went back to Fluxbox.It’s fast, lightweight, looks good, and I haven’t installed a single gtk application. I don’t need to.

  4. celettu says:

    truzcic:

    Interesting. What applications do you use?

  5. Qt is vastly superior in terms of features and development (I say that as fact and not bother explaining because a) it’s how you made your argumenet b) it’s true c) it’s late and I don’t feel like taking more time to craft a nice argument as a blog comment.

    A lot of developers stayed away before it was LGPL (especially heavy weight Redhat — this pretty much spurred them to contribute heavily to GNOME). Now that the development model has opened up, I think you will start to better, faster, more useful Qt and products.

    Another point:
    Gtk by itself is fairly disappointing from development perspective. Most the apps you see use a wide variety of other g* libraries that are all loosely coupled, and even then lots of custom trickery. In all honesty, it isn’t fair to compare Gtk to Qt. Qt is a complete and unified cross-platform development kit, with a clean API and common build system.

    • Xananax says:

      You have an unclosed left parenthesis, and, to top it off, you enclosed in it a letter-delimited list that does not go on a new line for each item. Furthermore, each letter has a right parenthesis. This is driving me insane. Wish I could it this post. But failing that, here is a parenthesis that closes yours).

      • Xananax says:

        “edit this post”. “EDIT”, not “it”. Bad selection with the pad just before posting removed a few letters and now my witty comment falls flat. Meh.

      • Anonymous says:

        It is just a simple form of formating text to list. Like item 1) xxxx 2)xxxx 3)xxxx common used in many languages

  6. Adrian says:

    Check KMandla’s blog for lightweight non-GTK applications. For the moment, he’s heavily centered on non-X apps but some time ago, he focused more on lightweight GUI-apps.

  7. celettu says:

    Kevin:

    Nice one, but I don’t consider 5 posts of this length “no explanation” 😉
    Besides, your reply states that Qt is better from a developer’s point of view. This may very well be true, in fact, I have heard other people claim the same.
    Unfortunately, it doesn’t matter as, in my opinion, there’s a shortage of good Qt apps.
    Mind you, I’m not gloating about this. I really hope that now Qt is LPGL, we’ll indeed see better, faster and more useful Qt-applications.

    Adrian:

    I read Kmandla’s blog religiously, and I love how he’s able to squeeze the most out of very low-end machines. His tastes are different than mine though, since I like a bit of GUI bling bling. Especially since he’s indeed moved away from X altogether.

  8. RT says:

    Good series of articles.

    I had vaguely suspected something like your first couple of conclusions, and here you have gone and pretty much confirmed it.

    With all due respect to the hard work of the Qt and KDE folk, there has been a sense of development getting more and more difficult over time. So your third conclusion, yeah, it is obvious, now that you have said it.

    Well done again, and hope to see another round in a year or two when maybe things will have turned upside down.

  9. Alxe says:

    I only saw the Conclusion, so I can’t really comment about all the research done.
    Firstly, I’ve never used KDE as a main desktop as I dislike how much eyecandy QT applications usually have. And this is from an end-user taste. I prefer something more simple and plain, no need for shades and other “pleasant” effects to the eye.

    From my point of view, not a developer’s, GTK is better than QT in many aspects, like the ones you pointed before, and some lacks, for example the multi-platform support QT has.

  10. Adam says:

    I just wanted to say that I found this series interesting and worthwhile and the app comparisons were informative even outside of the GTK v. QT scope of the article. I thought this was a good way to look at GTK and QT and I found the article to be informative. I really liked KDE 3 before the switch, and will probably be giving KDE 4 a try once they get everything migrated over to QT4. But, as for now, I’m happily running XFCE on Sidux, and browsing this site using Midori.

    Cheers!

  11. Adam says:

    As a follow-up, I would request you look at E-mail clients and maybe, since classes are starting, or have started for many students, note taking applications, or something along those lines.

  12. Emanem says:

    Hi, for a recent c++ project I had to choose between gtkmm and QT.
    As seen as I’m developing on Ubuntu I gave gtkmm a go.
    After some days spent to understand the basics way of thinking of gtkmm (and GTK+) I discovered that is ‘really’ easy to develop C++ GUIs with gtkmm.
    The approac is swing/AWT like, very straightforward; the fact you can chose to manage or not the components is even greater…
    Support for STL is even very good.
    Plus everything can be written in C. After a week I found myself very productive…
    The only bad bit is the documentation (not tutorials) that is lacking.

    Cheers,

    Ps. I’m a bit experienced with GUI programming on WIN32 (c), MFC (c++), swing/AWT (java), c# so maybe that was a bit easier for me because of this…

  13. Graeme says:

    I always find I use a mixture of KDE and GTK apps.

    On the KDE side I use Akregator (I have tried a lot of feed readers), Dolphin or Konq (as a file manager), Kate, and Digikam regardless of which desktop I use.

    I use Firefox, Sylpheed (I used to use Kmail), Quod Libet (I used to use Amarok) and Scribes even with KDE.

    I started using Sylpheed and Quod Libet while trying to see what KDE apps I could dispense with while using XFCE.

    • Alec Benzer says:

      I wish I could do that with more ease. My skin tends to burn when I use GTK/Gnome apps in KDE (or visa versa). I actually recently started using kubuntu only because I wanted to try out kate. I try to keep chrome as the only gtk app I use in kde, and I still cringe a bit on the inside when I see the gtk file browser open with chrome.

  14. Clucan says:

    Still a debate?

    http://www.wikivs.com/wiki/GTK_vs_Qt

    But if 2008 there was more laptop sold than desktop the supremacy will be taken by storm from ARM like gadget mobile market out there.Now considering this and having a trend in the mind what would you use to develop GTK which is not yet completely ported for mobile so you will end up rewrite your software for mobile platform again, …

    or …

    Qt which already offers some strong pillars in documentation and support from Nokia?

    Think interconnected and watch the trend.
    C.L.

  15. celettu says:

    Clucan: Good point.

  16. Anonymous says:

    QT > GTK

  17. Raed A says:

    Yea it is a topic we could keep talking about it infinitely. My personal experience:
    I wanted to know a programming GUI library, and at that time i chose GTK because it uses C because i am coming from embedded background. later on i had the chance to play with Qt and as a result improved my c++ skills.
    in summary if you know only C use GTK, if you are confident in C++ only use QT if you know both of them then QT.

  18. Lucian says:

    There’s no debate that Qt is vastly superior to GTK from a technical point of view. There’s simply no contest.

    What you’re saying here is that there are no good Qt apps. There are plenty of Qt apps in KDE. I don’t see how depending on common functionality as opposed to reinventing it is a bad idea. kdelibs is one of the best desktop libraries around.

    Most of those gtk-only apps you tout do in fact have gnome dependencies. The only difference is that gnome libraries are a lot more loose and less integrated.

  19. aMoLk says:

    While I agree, there are lot of light weight gtk+ apps available; in my opinion, there are not enough. More and more (GTK+) apps are becoming tightly coupled with Gnome and its becoming a nasty dependency hell.

    I’ve been running a purely fluxbox based desktop environment on my EEE laptop for sometime now, and its a nightmare making apps work without gnome. E.g. GnuCash has no real dependency on gnome except for a few small libs which I installed. But it keeps crashing on me, trying to import data from a qif file.

    This is just one example.
    And without gnome, its hard to debug the cause of crashes. And honestly, Gnome has gotten lot slower in these years. It runs slow, it consumes too much battery and it runs n number of processeu s you don’t need (or at least I don’t).

  20. Jack says:

    I really enjoyed these comparisons, and I’m glad you took the time to write these articles thoughtfully. I only have issue with your findings, though.

    Just because you didn’t recognize the names of a Qt application doesn’t mean a KDE user wouldn’t. To make this a bit more obvious, what if you told someone about Gwibber and they were a Windows user, so they didn’t know what you were talking about?

    Same thing, just on a smaller scale. Just because you don’t know about an application doesn’t mean a lot of people don’t use and love it. But I have to concede on this one, as I do agree with the ‘more, therefore better’ software idea.

    Main reason is that GTK 2 has been around a lot longer than the KDE development platform, so these programs have had plenty of room to mature and create a diverse ecosystem. It’s only two years after the release of the rewrite of KDE, so it would be silly to expect every application to have the same degree of maturity across the board with GTK applications.

    However, considering this, Qt development is simpler, easier to port across platforms, and Qt just looks nice in every environment you find it in. Unlike GTK, whose UI can look too unique on other platforms, and even different desktop environments (try using a Gnome application in KDE and get it to look right; now try opening a KDE application in Gnome, you’ll see what I mean).

    So really, it depends on what you value more in software. Also, the Qt toolkit is capable of a lot of inline modifications and options for users, such as the easily modified track information right inside the playlist of Amarok, or the fact that ever application’s toolbar is configurable. Or, on the simpler side, the fact that you can immediately draw themes and customizations from kde-look in Qt applications, and easily move around Qt-based panels and desktop elements without any hassle or hacking or downloading something specific to a specific folder.

    In essence, KDE ‘just works’, while GTK takes just a tiny, eensy, weensy bit more effort to play with. But if you just want the default stuff, both are pretty much the same, except that Qt is currently more modern and its environments are more modern than their equivalents on GTK. Either way, there’s not so big of a difference that people will feel uncomfortable unless they’re deeply invested in one side or the other.

    Most people will just choose whatever works faster and looks prettier.

  21. Jeremy says:

    You can add to the negatives of Qt that it is owned by a company who has a strategic alliance with Microsoft. Microsoft will pressure them to neglect Qt into oblivion, as it competes against tehir commercial non-cross-platform development framework.

  22. Tux says:

    Slax is lightweight (USB stick) KDE distribution.

  23. Mr. X says:

    This post is really misleading. How does using Qt for an app mean “pulling in an entire desktop environment”? Qt is not KDE just like how GTK+ is not GNOME.

    Stop confusing KDE apps with vanilla Qt (= VLC, VirtualBox and many more apps.)

  24. Lilian says:

    There are less Qt apps only because GTK was LGPL for a lot longer time. Qt at the beginning was under proprietary license and GTK was there at that time + with LGPL license… Sorry but that’s the only reason Qt is not adopted as much as GTK in the Unix world…

  25. raedbenz says:

    There is nothing like Qt…definitely the best.

  26. Lilian says:

    Qt:
    – QML
    – Qt 5 animattion framework A Lot is faster than GTK’s animattion framework(Clutter) even if comparing CPU rendering on Qt and OpenGL rendering on Clutter.
    – Qt looks native on any platform(this makes it a lot more tempting for developers).
    – Qt slots are a lot more better, there are No doubghts about that now
    – More great apps are developed in Qt than in GTK(yes, there are Chrome/Chromium and Firefox but not that many other applications), even if Qt changed it’s license to LGPL just in 2009 compared to GTK which had it since 1997, now, taking in consideration that, who has more software and greater software?
    – And a lot of other things. This article is old and doesn’t contain the truth actually…

  27. celettu says:

    – More great apps are developed in Qt than in GTK(yes, there are Chrome/Chromium and Firefox but not that many other applications), even if Qt changed it’s license to LGPL just in 2009 compared to GTK which had it since 1997, now, taking in consideration that, who has more software and greater software?

    GTK.

  28. […] platform, Gtk is more lightweight than Qt applications.This might explain why, for instance, Meego (when it was still called Meego) for embedded devices used Qt and the netbook version used Gtk.Then there’s the activity […]

  29. Joc SS says:

    I wonder if you’ve used the newer versions of Qt, as of now it’s 4.7.4. The modules are far more seamlessly integrated than cairo, clutter and GTK. The dev tools and IDEs are a joy to use compared to Glade or Eclipse/GTK. Qt 4.7.x is far easier to customize than GTK today.

    GTK’s animation is pretty much an initial attempt, even if you consider third party Glib/GTK based animation libraries like the AF framework. Qt’s animation framework can be used for real commercial apps and seamlessly integrates with the other widgets.

    Best of all, Qt is triple licensed today, GPL/LGPL and commercial. From Nokia’s own sources, the LGPL can be used for commercial software as long as you link dynamically.

    If that doesn’t convince you, just compare KDE with Gnome today. Things are slick and seamless in KDE, while Gnome still feels like a UI from 2006.

  30. Anonymous says:

    what about clementine?

  31. かぜの says:

    CLEMENTINE FTW!

  32. sayed adel says:

    both of them are good after qt support LGBL , anyways i prefer qt more than gtk because qt has a good reference but gtk still fastest

  33. device-applications.com…

    […]Qt vs GTK: Conclusion « Celettu’s Weblog[…]…

  34. games backup|how to backup games|how to copy a game|how to burn game|backup software program|how to backup dvd|burn 360 games|wii copy|how to backup xbox games|copy of wii games|copy ps3 games|copy games…

    […]Qt vs GTK: Conclusion « Celettu’s Weblog[…]…

  35. Tynach says:

    Meh, article is far outdated. VLC, Virtualbox, and many other QT applications are simply must-haves on most desktops, Gnome or otherwise. They are not KDE applications, and they do not bring in the whole stack of KDE dependancies.

    Heck, Ubuntu’s Unity 2D interface is implemented in QT. That’s a major Linux distribution coming pre-installed with QT-based software, in a mostly GTK environment!

    This article may have been accurate when it was written; I don’t know. But it sure isn’t accurate now, and I believe it deserves another look.

    Oh, and a lightweight QT desktop:
    http://razor-qt.org/

  36. jander says:

    I think you should to update this article.. Qt5, with QML, is winning the war, at least in the mobile side.
    See the new Ubuntu phone, based in QML, for example. Compare Qt with GTK is a joke right now…

    • stef says:

      Agree… If you want to write a program for Linux, Windows ans OSX NO better choice than Qt. I must confess I’m not a C++ fan, but Qt is great ! Soon iOS and Android support will be here. Try to do that with GTK… Good luck.

  37. Iharob Al Asimi says:

    I also tried to build a pure Qt environment, in a very custom distro which I built my self reading LFS book, specially because I am working on a large Qt application and I hate to mix toolkits, there is Razor-Qt which by the way seems to have merged with LXDE, but even thought it is lightweight “which is very important for me since I love speed when it comes to work”, it lacks good applications for the most common tasks, for instance a general purpose programming text editor like geany or a good simple and full-featured mail client like claws-mail. But the worst of all is that Qt applications are slow, just try one through ssh and you are going to hate it, I made the choice of using Qt when started with my project because i needed to be cross platform and gtk does not feel right on MS Windows it looks different than other windows applications, So long story short, my next project is going to be gtk for these reasons and because I hope it will be the standard application for the task it will be meant to accomplish. Nice post by the way.

Leave a reply to device-applications.com Cancel reply