Nokia
will introduce Qt to the maemo platform in addition to GTK+. The first actual step will be the distribution of the Qt libraries for application development in maemo.org during 4Q2008. Nokia wants to explore cross-platform possibilities between S60 and maemo. It is interesting also to check the interest in the developer community for Qt in the tablets. This is also a way to attract more attention from the KDE community, a sensible move especially if the Trolltech acquisition gets completed.

I got a N800 recently. While I think Hildon UI is neat, I can't see any thing innovative in it. It is still a desktop in its essence(but tailed for a small screen) and not that intuitive and easy to use as I would expect a device targeted for consumers(I mean, people who haven't used computer before) should have.

However, I really like canola's UI, an application written by people in nokia INGT. Actually I wonder why the whole UI framework is not designed around that UI style and use the underlying technology(evas and edje, which I knew litte before).

So, Why does it matter to bring another toolkit? Will this make the device easier to use? I don't think so. The news said that it could attact more developers. But I think sometime the UI is at least the same important than what an application can actually do(iPhone has approved that, I think).

I use keepass on all my systems. porting qt means keepass can be run on my n800 too. opening maemo too apps like that is a big gain.

i'd like too see more toolkits. Canola2 is great but adding it's own toolkit means some missing button support. i'd like to see more toolkits though. the hardware is capable of much more than current software. i'd even like too see distros like the eeepc.

Nokia has no plans to offer a "hildonized" Qt-based UI. Qt applications will look different in the tablets just like some successful 3rd party applications look different. Cross-platform development has its own challenges: the earlier we start the better.

Cross platform certainly does have its challenges, which is why I can see Hildon being dropped in all honesty. It's not as if it's a major platform anyway, and Nokia uses it nowhere else than on a few experimental tablets, and they don't sell many of those.

If Nokia uses Qt in the way that I expect them to, and the way that they have to really, then I'd expect to see Qt used as the cross platform environment across all of its devices, from tablets to mobile phones (S60s etc) to the desktop. It will be more than a month of Sundays before you can do that with Hildon and GTK. The technology just isn't there.

People go on and on complaining about "bloat" in their desktop machines, and I come away wondering how significant that problem really is on anything approaching modern machines. But this is a case which I would consider to be "true bloat". Take a light weight platform which includes an efficient collection of well considered shared libs, and intended for light weight mobile hardware with limited memory, and then add a bunch redundant core libs with duplicate functionality, thereby nullifying the advantages of using the efficient set of shared libs in the first place. It's inane, and excruciatingly ugly to anyone who cares about efficiency in mobile platforms, and understands the benefits that shared memory, well used, can bring.

As a developer, what in my incentive to learn GTK+ now? I've used Qt a few times, and it is gloriously complete. GTK+ on the other hand, is extremely inaccessible to me at the moment. I was beginning to learn the API, but why would I if Qt will be officially supported? Qt is a far nicer platform, and has potential to be far more cross platform. This announcement is very confusing.

As a developer, what in my incentive to learn GTK+ now? I've used Qt a few times, and it is gloriously complete.

I apologize, in advance, for my blunt answer. But in my opinion QT apps are generally crap. They look bad. Their UI is generally not well designed. QT itself does not lend itself to creating apps with good UI design. Of course, many will disagree with my opinions on this, and that is perfectly fine with me. I'm sincerely happy that people who do like QT apps have a good selection of them.

Why learn GTK+? Because (and I am intentionally avoiding words like "most" or "majority" here) a substantial portion of your potential users are like me and prefer GTK+ apps to QT apps.

And I respect your opinion. The point is that some end users agree with my opinion and some end users agree with your opinion. And that is a very good reason not to develop tunnel-vision regarding gui libraries. The OP was asking why he should not focus exclusively upon QT development.

The point is that some end users agree with my opinion and some end users agree with your opinion........The OP was asking why he should not focus exclusively upon QT development.

Yer, and your meaningless and subjective bit of tosh had absolutely nothing to do with development. When it comes to user interfaces, do GTK development tools have something anywhere near Qt's layout manager? I'd say not. He's going to have to follow the Gnome HIG or something - by hand.

So, in a roundabout way you have answered his question:

As a developer, what is my incentive to learn GTK+ now? I was beginning to learn the API, but why would I if Qt will be officially supported?

Oh come now, arguing that one should *develop a new app* in GTK+ just because *existing apps* that use GTK+ are easier to use than Qt-based ones is no argument whatsoever.

That's like advising a musician to produce new music using just electric guitars and not keyboards or computers, because a larger percent of mainstream music involves electric guitars whereas a lot of music made with keyboards and computers is challenging to listen to.

But why should someone *comfortable and efficient when using keyboards and computers*, who is nonetheless going for a mainstream aesthetic, force himself to use just guitars?

Actually, the analogy is even more extreme than is the case with GTK+ vs Qt, because the difference in "user taste" when it comes to GTK+ vs Qt *purely in terms of widget aesthetics* is arguably less than the difference between a note produced on an electric guitar versus a keyboard.

The fact is, there is nothing stopping people from creating simple, easy to use GUIs with Qt. I think the main problem with Qt apps is that people are always trying to show off all they can do thanks to the fact that the architecture makes a lot of hard things trivial. Whereas GTK+ apps are limited by virtue of the fact that they actually can't do all that much without some serious effort put into them. Is it a design philosophy, or simply a side effect?

Anyway, with KDE 4 we're starting to see the marriage of good, simple UI design with the power of Qt. Thus proving how possible it really is.

Why learn GTK+? Because (and I am intentionally avoiding words like "most" or "majority" here) a substantial portion of your potential users are like me and prefer GTK+ apps to QT apps.

I'm a little surprised, despite your qualifier, that's a pretty subjective and totally unquantifiable answer, when you're usually more objective.

In that light, I would argue that the majority of users don't give a crap about what the GUI looks like. That's a typical GTK-type response whenever someone points out the superiority of Qt's framework over GTK (but we have *HIG* !!!!), but at the end of the day developers will choose the framework that works best for what they want to accomplish, not for what the users prefer. And users, for that matter, will generally choose their apps on merit. If you look at OSX or Windows, you very rarely see applications with anything regarding GUI consistency. Microsoft and Apple break their own guidelines all the time, let alone the third-party vendors. It's only linux where this argument is ever brought up, as if it has merit.

I'm a little surprised, despite your qualifier, that's a pretty subjective and totally unquantifiable answer, when you're usually more objective.

Unquantifiable? I should think that the endless flamewars regarding gui libs and DEs should be sufficient to demonstrate that quite a few people in Linux's current target market care enough to endlessly fight over them. You mean Tilly? She's doesn't make up much market share. Melvin makes all those decisions for her anyway. And he tends to have a preference.

I think what is getting lost in the rush to defend QT's honor and prove that it is the best gui toolkit in the world, bar none, is that the original poster was asking why he should not just program in QT and ignore everything else. That's a pretty loaded question.

But anyway, let's add something that is more quantifiable. From Fedora 8:

===
[steve@hagar ~]$ repoquery --whatrequires gtk2 | wc -l
167

[steve@hagar ~]$ repoquery --whatrequires qt | wc -l
27
===

(The above includes all packages available in the repo, and not just the one's installed. And thank you to Rahul for introducing me to the very useful "repoquery" utility.)

QT's World Domination plan has a ways to go. If QT is so wonderful that there is really no need to consider any other toolkit, and if it's OSS, then why hasn't QT taken over the Free Software world? Are all those devs just stupid? Are they supporting a non-QT toolkit for no reason at all?

To be clear, while others seem to be arguing the point that QT is the one true GUI toolkit, and that no others are needed, I am taking the position that GUI toolkits are *not* a one size fits all proposition from either a developer's or user's perspective. This is, as per usual, mistakenly perceived by some QT fans as an attack.

Unquantifiable? I should think that the endless flamewars regarding gui libs and DEs should be sufficient to demonstrate that quite a few people in Linux's current target market care enough to endlessly fight over them. You mean Tilly? She's doesn't make up much market share. Melvin makes all those decisions for her anyway. And he tends to have a preference.

Emphasis above added by me.

You're making the same mistake that oh-so-many people in the desktop-linux debate make. That their perceived impressions apply to a larger userbase. The people bickering over Qt vs Gtk are not part of the target market for linux, they are the *existing* market for linux. They're irrelevant. They're a slice of a very small portion of the overall computing userbase. The target market for linux extends far beyond the blogosphere of linux-using pundits.

You arrogantly dismiss Tilly in favor of Melvin. But Tilly is the future, if linux is going to grow beyond it's niche, because we have enough Melvins already and they haven't managed to accomplish it yet, mostly because they allow their introverted perspectives to cloud their judgment and waste time arguing on about the technical merits of x versus y. What they prefer *must* be right for everyone else, no?

I think what is getting lost in the rush to defend QT's honor and prove that it is the best gui toolkit in the world, bar none, is that the original poster was asking why he should not just program in QT and ignore everything else. That's a pretty loaded question.

Who's calling Qt the best gui toolkit in the world? That would, frankly, diminish it's value, since it is considerably more than a simple gui toolkit, which is probably the point most people try to make when they object to GTK proponents dismissing it on vapid "appearance" claims.

As for the OP, he asked a valid question, and you respond with a subjective answer. He should use GTK because you and others prefer the appearance of GTK apps. No doubt that's the very reason that Firefox and OpenOffice have achieved such little penetration in the existing linux userbase, being that they are not GTK-based? To my point, the developers don't care. They will, and should, use what is most effective for them to deliver the application that they want to deliver. Qt has much to offer in that perspective, from a developer's POV. And the users will, generally, choose their apps based on merit as they did with Firefox and OOo, which "belong" to neither toolkit.

But anyway, let's add something that is more quantifiable. From Fedora 8:

===
[steve@hagar ~]$ repoquery --whatrequires gtk2 | wc -l
167

[steve@hagar ~]$ repoquery --whatrequires qt | wc -l
27
===

(The above includes all packages available in the repo, and not just the one's installed. And thank you to Rahul for introducing me to the very useful "repoquery" utility.)

Stop the presses. Fedora has more Gtk dependencies than Qt? Wow. I supose if I scanned my Windows system and found zero packages dependent on Cocoa then it mitigates OSX as being a viable platform for development.

Sarcasm aside, the issue isn't how many packages Fedora has that are "dependent" upon Qt or GTK, it's more relevant that it will support packages dependent upon either. As will virtually every other distribution on the planet. So, again, developers do not risk losing a potential "market" simply by choosing one over the other. The distro manufacturers, even the one that helped instigate the creation of Gnome with their refusal to adopt KDE under Qt's original licensing guidelines, will support choices.

QT's World Domination plan has a ways to go. If QT is so wonderful that there is really no need to consider any other toolkit, and if it's OSS, then why hasn't QT taken over the Free Software world?

It anchors the dominant desktop, and it provides sufficient value that developers pay to use it even on non-linux platforms, so it must have something going for it. Plus Nokia is ponying up $100M or so to buy it, and there is that little aspect of Qtopia, which can bridge cross-platform capability between desktop and mobile devices, and goes far beyond anything GTK can do right now, HIG aside. I'm not sure what your idea of dominance is, but I'd say that it's holding it's own right now.

Are all those devs just stupid? Are they supporting a non-QT toolkit for no reason at all?

See, you're really making the argument personal now? It started with you claiming that people should develop with GTK in consideration of your personal preference for it's appearance, and now it's degraded to anyone not using GTK or alternatives as being perceived as stupid? Don't use the word stupid. Your arguments are usually above that.

To be clear, while others seem to be arguing the point that QT is the one true GUI toolkit, and that no others are needed, I am taking the position that GUI toolkits are *not* a one size fits all proposition from either a developer's or user's perspective. This is, as per usual, mistakenly perceived by some QT fans as an attack.

Again, who argued it's the one true toolkit? Aside from the fact that it's not a toolkit, it's a framework, I objected to the fact that you dismissed it because you think it looks yucky, and I questioned that as being a relevant argument for a developer's POV.

But anyway, let's add something that is more quantifiable. From Fedora 8:

===
[steve@hagar ~]$ repoquery --whatrequires gtk2 | wc -l
167

[steve@hagar ~]$ repoquery --whatrequires qt | wc -l
27
===

(The above includes all packages available in the repo, and not just the one's installed. And thank you to Rahul for introducing me to the very useful "repoquery" utility.)

haha. Whatever you're doing here, you're doing it wrong. I don't know the correct query either, but if you think that only 27 packages depend on Qt, and only 167 depend on GTK you're delusional. When you use commands like this, you have to apply some logic to the results and always ask yourself, "Does this make sense?". Just listing output without critical thinking is not helping your argument.

"Why learn GTK+? Because (and I am intentionally avoiding words like "most" or "majority" here) a substantial portion of your potential users are like me and prefer GTK+ apps to QT apps.

I'm a little surprised, despite your qualifier, that's a pretty subjective and totally unquantifiable answer, when you're usually more objective. In that light, I would argue that the majority of users don't give a crap about what the GUI looks like. That's a typical GTK-type response whenever someone points out the superiority of Qt's framework over GTK (but we have *HIG* !!!!), but at the end of the day developers will choose the framework that works best for what they want to accomplish, not for what the users prefer. And users, for that matter, will generally choose their apps on merit. If you look at OSX or Windows, you very rarely see applications with anything regarding GUI consistency. Microsoft and Apple break their own guidelines all the time, let alone the third-party vendors. It's only linux where this argument is ever brought up, as if it has merit. "

I agree with you. I know of few people that "prefer gtk". They prefer desktops, they prefer distros, they prefer apps; only the devs I know give a d@mn what toolkit was used. Now fonts, on the other hand... :-)

If that is the typical response from GTK+ advocates then its wrong. The Gnome HIG has very little or at least should have very little to do with the toolkit itself. The same thing goes for Qt applications and how they are designed. Crappy UI's has very little to do with either GTK or Qt, or any toolkit for that matter (well that is not always true, you are not going to use Motif and get something pretty). If Qt application has bad design, then its because that particular app has a bad designer. The same for gtk apps, yes gtk has a very set look about it but that doesn't all of a sudden make it look better than Qt ( I'm a gnome user, BTW). Besides that Qt supports the ability to look like the platform its running on, this includes Gnome, including swtiching the button positions the way Gnome likes them.

There are plenty of Qt apps on the market that you wouldn't know are Qt (I think google earth uses Qt), because they are designed to look like whatever platform/design the author intended. I like Qt, I like its progress, its KDE I don't like but I certainly don;t blame Qt for that. I do however blame Gnomes deficiencies on GTK, because the toolkit itself needs a serious overhaul.

How could I possibly contradict such an enlightened point of view as this? Come on, Leos, that kind of response is really beneath you. Name-calling? Shame on you. I went out of my way to make it *quite* clear that I was voicing my own opinion, and I have to wonder what is the reason for such oversensitivity regarding criticism of QT. One does not resort to the kinds of emotional statements I have quoted above in relaxed, casual conversation. It is no secret that I prefer GTK and Gnome to QT and KDE, and I have good reasons for feeling that way. I'm sure you have good reasons for preferring QT and KDE, but I don't call you names over it, even when you don't make it clear that you understand that what you are voicing is only your own opinion.

This may come as a shock to you, Leos, but while I prefer GTK and Gnome, I am not anti-QT or anti-KDE. As I have indicated on a number of occasions, I'm glad that QT and KDE exist to please those users whom I really would not care to have plaguing the Gnome platform, requesting that it be turned into something resembling KDE. And I would guess that you feel the same way about those of us who prefer the Gnome's UI policies.

I also feel that having a couple of major GUI toolkits/DEs that are distinct in character from each other is good for the adoption of FOSS desktops, in general, since users have different tastes, and developers have different tastes.

How could I possibly contradict such an enlightened point of view as this?

Indeed, especially as you have only rhetoric instead of real arguments.

Come on, Leos, that kind of response is really beneath you. Name-calling? Shame on you. I went out of my way to make it *quite* clear that I was voicing my own opinion, and I have to wonder what is the reason for such oversensitivity regarding criticism of QT.

Criticism is fine by me, I have criticism of Qt myself. It is not ideal in lots of ways that ccan be intelligently debated.. What bothers me is you making random statements about the internal capabilities of Qt, which you apparently do not know anything about. I am somewhat familiar with GTK, but I dont make completely unfounded statements about it.

You say this is just your opinion, and thus excuses any statemnts you make, but that is not true. You intentionally make your opinion sound like fact, which makes it deceptive, and no longer opinion. When you say qt is not capable of well designed UIs, you're lying, not stating an opinion. Just like when I say the sky is green, that is not an opinion, but a lie. When you are stating opinion, you have to be careful about how you express yourself. Opinion is not a free ticket to say whatever nonsense you want.

I also feel that having a couple of major GUI toolkits/DEs that are distinct in character from each other is good for the adoption of FOSS desktops, in general, since users have different tastes, and developers have different tastes.

I think my point is this. I prefer to use C++ style languages over straight C. So, Java, C#, C++ etc. Vala is extremely interesting, but I'm not sure the skill is transferable. Seems to be tied to GTK+ far too much. With Qt, I know I could write apps for Windows, Mac, Linux and also with work target Qtopia. This is why the message is confusing.

With GTK+, it feels like I then need to go out and find the right framework and hope it supports Hildon. With Qt, it doesn't matter as much because my App *should* work under most platforms with a little work. That appeals to me a lot.

As said, this confuses me and I'm sure it'll confuse other developers in my position too.

I personally welcome this development. I have been writing text based Ruby (NOT RAILS!) apps for over a year now and recently decided to take on learning the Qt-Ruby combination to create some nice looking GUIs for my apps.

As a background:

I origianlly chose to learn Ruby because it was platform neutral and easy as heck to learn. When I read about the port of Ruby to maemo I was ecstatic because I was able to take the apps I wrote for the desktop and run them on my N800!

Once I had written a dozen or so apps in Ruby, I decided to choose a GUI toolkit. GTK was one of my original choices for a GUI toolkit, but I just don't think it looks nice or is as robust as Qt. Also, the tutorials for using it were much more confusing that the Qt ones I have been reading. I only have limited amount of time to learn this stuff and was quickly up and running with Qt. I just had to accept that I would have no GUI on my N800 and have to stick with the CLI for those apps.

Now, however, I will be able to leverage my new skills onto the platform. I can have my cake and eat it too! WooHoo!