Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I recently did some hacking with Qt, and found it quite pleasant. Then I switched distributions on my laptop a couple of time, and noted that only KDE is using Qt, all the others are using the Gnu Image Manipulation Program Tool Kit.

GTK is primarily a widget toolkit, although Windows and Mac ports do seem to exist. Not sure why one would build a DE on top of a toolkit for an image editor.

Qt more of a cross-platform framework including threading, networking, and other non-GUI features. I heard licensing is considered a problem.

Did I just answer my own question, or are there other things besides getting all zealotty about freedom?

update

I'd like to clarify that I'm not after opinions, but observations. "Qt is not real C++" is an observation, as is "GTK has been general purpose for a very long time". Besides,

But software and programming isn’t always a hard science, either. Once you get past the does this code compile or not questions, you’re dealing with issues of best practices, experiences, and behaviors. Perhaps because our communities have become so accustomed to getting quick, accurate, and timely answers, they feel that even a subjective Stack Overflow is better than the alternatives. So much so, that our fellow programmers created a sister site specifically for their pent up subjective questions. Take one heaping pile of subjective questions, bottle it up for over two years and… kablooey!

share|improve this question

closed as not constructive by ChrisF Oct 21 '11 at 19:51

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

    
The only answers that people can post are their opinions. –  ChrisF Oct 21 '11 at 19:53
    
See my update. I'm of the opinion there is a difference between observations and opinions. –  Pepijn Oct 26 '11 at 10:12
    
Maybe, because C++ is a horrible language? –  SK-logic Oct 26 '11 at 10:53

2 Answers 2

up vote 11 down vote accepted

First, let me just mention that this is one of those "religious" issues where people strongly disagree and everyone seems to think that everyone else is an idiot. In fact I'm not entirely sure that I should respond because I know how things can get when it comes to this sort of topics.

Also, I can only tell you what I've heard throughout the years and what I recall back when both Gnome and KDE were relatively new. I may be completely wrong on everything I'm saying here.

With that out of the way, here's how I understand it.

  1. Originally, in the early versions of Qt/KDE/Gnome, the greatest point of contention that I remember was licensing. KDE was GPL but it was based on Qt, which was not compatible with GPL at all, and as a result, there was a licensing conundrum. Later on, Trolltech released Qt under a dual license, although I recall that there was still a bit of a controversy after that. I haven't paid any attention to the matter since.

  2. The fact that Qt contains all those crazy features is perceived by some to be a faulty design. One might ask the question; why does a GUI library handle networking? Wouldn't it make more sense to use different libraries for different things so that the focus of each is properly applied? - I don't have a strong opinion on this myself, but many do. Arguably, Gtk should just do GUI.

  3. Qt requires the "moc" tool which is to allow for certain C++ extensions in Qt. In other words, Qt isn't strictly speaking C++ proper. It's C++ with some extensions. Many have a problem with this fact and rather prefer a "clean C++" implementation like Gtkmm.

  4. Qt requires C++. A lot of people still like C better, and Gtk is primarily C.

  5. There is of course a dispute about the 100% subjective issue of look'n'feel. I for one like the Gtk look and feel far better than Qt, but I couldn't explain to you why. :) (Nor would I really care to because it's entirely a matter of taste.)

Hope that sheds some light. Anyone, please correct me if I'm wrong on any of these.

share|improve this answer

GTK may have been originally built for gimp, but it has been in general purpose use for a very long time now.

Unix has a long tradition of combining small pieces to do something more complex. To old school unix hackers, a monolithic library that handles every aspect an application could want is not usually a plus.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.