[prog] Choice of cross-platform language and GUI toolkit / IDE

Akkana akkana at shallowsky.com
Thu Jan 30 19:52:06 EST 2003


Definitely an interesting topic!  I'd also like a good solution.
My requirements are a bit different from yours, since I'm distributing
open-source programs and I care most about Linux users, but it would
be nice if mac and windows people could also use my programs.

Rasjid Wilcox writes:
> 2.  Swing and Java.

It sounds appealing, but for my app, when I hit a brick wall with Qt
(see below) and started considering porting to java, my users begged me
not to.  Everyone I asked said (1) they didn't have java installed,
(2) they didn't want to install it and (3) when they had tried installing
it in the past, it didn't work or it turned out to be the wrong version
for the apps they needed or similar problems.  Some people also
complained about slowness.  I don't know if the performance problem
is real, or if it's just an undeserved reputation.  

But one of my target platforms was the Zaurus, and its Java is a very
old (pre-Swing) version that's not compatible with current desktop
versions, and once I started into that it looked like writing
portable cross-version Java was going to be quite a chore and
probably not a good bet.

> 4.  Qt with Python
> 
> 5.  Qt with C++
> 
> I'm aware that there is GTK, but last I checked (ie, used Gimp on Windows) GTK
> on Windows was not very Windows like.  Perhaps that has changed, or I have 
> simply not looked into this enough.

It took me a long time to find prices on trolltech.com
(they hide them pretty well) but I finally found my way to
http://www.trolltech.com/purchase/qtpricing.html and the cheapest
license is $1500 for a single developer.  You can get unix/X and windows
Qt packages for open source developers, but you don't get that option
for mac, so if your app targets mac, Qt means $1500 minimum.
(If I've missed something and there really is a free Qt for mac,
please point me to it!)

And that's a assuming you can get it to work.  A friend downloaded the
OS X evaluation version and fought with it for a few hours, but couldn't
get the binary demos to run (their demos are precompiled binaries, not
source, which seems rather odd for a developers' bundle) much less use
it to compile my program.

I found this very frustrating, since I had originally written
my app in Qt thinking that that meant it would be portable.
I ended up rewriting my app to factor the UI code from the back end,
so it's easy to plug in new UI code; then I wrote a gtk front end
for it, and used the gtk front end for the mac version.  GTK for mac
currently requires X11, but there's a new Aqua GTK port announced a
few weeks ago, currently in early alpha.

(Of course, once I released the gtk version, my mac users decided they
didn't want to download X11, or they didn't want to upgrade to OS X,
so they're not using the app after begging me to port it.  Sigh!
The exercise was worthwhile anyway -- the code is cleaner and more
maintainable when it's factored this way.  I've learned not to take
the demands of mac users too seriously, though.)

Python/GTK works pretty well, for the very small apps I've tried.

> Swing/Java is also a 
> 'commercially' recognised skill. [Is Java still in demand, or is this 
> waning??]

Server-side Java is definitely still in demand, but I don't see many
job ads for Java or Swing application development.

	...Akkana



More information about the Programming mailing list