tags:

views:

597

answers:

2

The answers to this related question of mine lead me to choose Java for most of my backend services (it's a multi-component system). Now, I'm not sure whether that would be a good choice for cross-platform desktop GUI apps, as well. The Java desktop applications I remember using have that non-native look that I don't like, but I'm not sure if that depends on the choice of GUI toolkit rather than the language.

Most of my GUIs will be web-based, and the desktop ones will have a relatively small audience (administrators, developers and testers), so I can only put aside a small fraction of my time budget to do those. Still, I want native look and avoid a bunch of dependencies.

It's probably most adequate to start with the GUI toolkit I want to use and then pick a language that supports it. The cross-platform ones I know are:

  • GTK
  • qt
  • AIR (when it arrives on Linux)

So, for example, I might use GTK# with .Net/Mono. What kind of dependency issues am I going to face? Would you recommend separating the actual GUI from the rest of the application and use GTK on Linux, and something native on Windows, like Windows Forms, thus avoiding to have to install GTK on Windows?

+2  A: 

Bruce Eckel is a great sponsor of Flex as cross-platform user interface, for both Java and python services. He wrote about it quite a lot, on Artima:

Roberto Liffredo
Note that Bruce Eckel was actually paid by Adobe to write about Flex and promote it, so keep in mind that he might not be quite objective source
Dev er dev
+4  A: 

SWT is your answer. I worked on a project which used SWT and it looks great on whatever you throw at it. If you work with Java, then you probably have used the best example of SWT out there: Eclipse. It works with GTK, WinForms, Cocoa, Qt even Tk. Oh! And it's very easy once you get all the basics going on. Also, most of the components are ready. Another thing, GTK and C# are not that platform independent as you might dream of.

Ubersoldat
SWT hadn't worked across the latest version of Eclipse (under Mac OS X at least) which was a shame. I've worked closely with SWT and I'd highly recommend it. Azureus torrent client is written in SWT, as well as Eclipse itself.
Kezzer