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
June 9, 2009 at 7:21 am |
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.
June 9, 2009 at 8:14 am |
Anshul Jain:
Thanks for mentioning that. I wasn’t aware
June 9, 2009 at 12:53 pm |
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.
June 9, 2009 at 1:00 pm |
truzcic:
Interesting. What applications do you use?
June 9, 2009 at 1:42 pm |
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.
June 9, 2009 at 1:43 pm |
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.
June 9, 2009 at 1:54 pm |
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.
June 10, 2009 at 10:27 am |
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.
July 13, 2009 at 10:25 pm |
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.
September 30, 2009 at 12:35 am |
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!
September 30, 2009 at 1:22 am |
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.
October 13, 2009 at 12:34 pm |
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…