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

Rasjid Wilcox rasjidw at openminddev.net
Fri Jan 31 01:18:38 EST 2003


I'm wanting to start creating some cross-platform programs, mostly database 
systems with GUI (non-HTML) frontends.

As much as I dislike Microsoft, VB makes it very easy to throw together a GUI 
frontend for various database applications, with reports generated by Crystal 
for example.  However, neither of these are cross platform or particularly 
open-source friendly.  I'm basically after a cross-platform equivalent.

The GUI toolkit qualities I am after are as follows:

1.  Cross platform - at least Linux, Mac OS X and Linux, and preferably other 
Unix too.

2.  Mature IDE with tools to help with the creation of GUI's.  Must run on 
Linux and be free or low cost. (US$150 or less).  A good shareware product 
would be considered, if sufficiently superior to the current open source 
options.  A good screen layout desinger (rather than a full IDE) would also 
be okay, and my possibly even be better?

3.  It must look respectable and feel responsive.  (I never found Tk/Tcl to 
look 'professional' enough, for example, and it was generally a little 
'sluggish' too).

The desirable qualities for the underlying language are things for making 
database frontends easier:

1.  Database independent API.

2.  Existing 'report writing' toolkit or software (perferably open-source). 
[By report writing, I mean something like Crystal Reports, or a toolkit that 
makes such reports easy to produce.  I'd be happy with and kind of 
cross-platform output - docbook, TeX, ps, pdf etc.]

I'm sure there are other things I want, but I can't think of them.

My GUI toolkit and language contenders are:

1.  wxWindows (wxPython) with Python.

2.  Swing and Java.

3.  wxWindows with C++

4.  Qt with Python

5.  Qt with C++

I might look at Ruby.  

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.

There are of course lots of others, particularly for C++.  I found what seems 
like a fairly comprehensive list at http://www.atai.org/guitool/


Possible or likely IDE's include:

A.  Boa, wxGlade or wxDesigner (shareware) for wxPython / Python

B.  Netbeans for Swing / Java.

C.  wxGlade or wxDesinger, and I'm sure there are others for wxWindows and C++

D.  Blackadder (commercial).  Not sure about open source ones.

E.  I'm sure there are a number of Qt / C++ designers about.



wxPython and Python -
Pros: Fully open-sourced.  Python rocks.
Cons: None of the IDE's are really mature.  Not as many resources as Java or 
C++, but then you can always use Swig etc.  Python is not a 'commercially' 
recognised language (or at least, not yet!?).
Other: Intepreted, dynamic typing.  These might be good or bad - not sure.

Swing, Java and Netbeans -
Pros: Seems quite mature, there are a lot of Java resources, and many of the 
tools I might want to use are already available.  Swing/Java is also a 
'commercially' recognised skill. [Is Java still in demand, or is this 
waning??]
Cons: Overhead of running a JVM, particularly on lower spec'd hardware.  Not 
really open-sourced, as AFAIK all the genuinelly usable JVM's are closed 
source.
Other: Complied to bytecode, strong typing.

wxWindows and C++ -
Pros: Native executables on each platform.  Fast (I assume).  Lots of existing 
open-source C++ code.
Cons: I don't know C or C++.  Need to manage memory, linking etc etc.

Qt with Python or C++ have similar pros and cons, except that Qt is probably a 
somewhat more mature toolkit, but not open-source on Windows and Mac.

Anyway, that is my current research.  I'd like to hear other people views on 
the options, and also if I've missed any essential ones.  I'm wary of using a 
commercial toolkit or IDE, since there is no guarantee that the vendor will 
keep supporting Linux in the future, although I think Qt is fairly safe.

I'd like to hear your thoughts,

thanks,

Rasjid.


-- 
Rasjid Wilcox
Canberra, Australia (UTC +10 hrs)
http://www.openminddev.net




More information about the Programming mailing list