Monday, June 8, 2009

phrase for the day: cross platform

I know that what follows will probably be considered by some as "flame bait" but it's simply the truth. If nobody stands up an speaks the truth, people will continue to make decisions without all the facts at their disposal, and that's just a recipe for disaster. So, donning my birthday suit (because I like facing the flames the way I came into this world: nekid) ...




I just read an article on Ars about Google Chrome for Linux where Ryan Paul writes:

"After extensive discussion, the Chromium developers decided to build the Linux port with GTK+, the toolkit that is used by the popular GNOME desktop environment. This will eventually make it look and feel somewhat native on GNOME-based Linux distributions, such as Ubuntu."


The rest of the article goes on to document the woes of developing on Linux, including Ben Goodger's "situation is a clusterf*ck" comment about developing on Linux. It was the above quote that really struck me, though, as it's the right idea (to "fit in") meeting a less-right idea ("ergo we ought to use Gtk+").

The mistake isn't so much in using Gtk+ itself (I know a number of people who really like working with it and there are some great apps written using it), but rather in expecting the use of Gtk+ to make an app fit in well on the Linux (let alone the broader F/OSS) desktop or feeling that you have to make a choice to target one desktop system and forgo the rest.

There's a much better solution: choose them all by using Qt.

Qt does quite a bit to Work Natively(tm) for you these days, right down to using the platform's widget styles, file dialogs and even dialog button orders (Ok/Cancel vs Cancel/Ok) without any special application code or user settings. That means you'll look and work native on Windows, Mac, KDE and GNOME if you write using Qt. On Linux, one binary gives you the Qt, KDE and GNOME looks all in one go.

So instead of Chrome looking and feeling native at some point on one desktop, it could look and feel native on them all. This is due to the Qt development team caring deeply about the whole platform, not just pieces of it. Gtk+ strives to do well in its own world, but that's where it basically ends. For that reason, if you want your app to look good on F/OSS desktops regardless of what is being used, you probably want to be using Qt.

And Ben G.: people glow on a regular basis about how they can make the coolest looking UIs using Qt.

(You have to read the Ars article to get that last one. :)

No comments:

Post a Comment