The Joel on Software Discussion Group (CLOSED)

A place to discuss Joel on Software. Now closed.

This community works best when people use their real names. Please register for a free account.

Other Groups:
Joel on Software
Business of Software
Design of Software (CLOSED)
.NET Questions (CLOSED)
Fog Creek Copilot

The Old Forum

Your hosts:
Albert D. Kallal
Li-Fan Chen
Stephen Jones

cross platform gui toolkit

What are the options?





Anything else?

I'd like something with great, fast, simple charting. And a scripting interface.

Would those of you who can deal with the incredible slowness of the new forums like to comment on this?
Ralph Meter Send private email
Saturday, May 19, 2007
Don't go there unless you have a real business case for it.

That said, I think tcl/tk is the bee's knees if you don't need a native-look-and-feel user experience.
Brent Send private email
Saturday, May 19, 2007
Java desktop apps look awful. How about Apollo?
DEBEDb Send private email
Saturday, May 19, 2007
Apollo could be good.  Or Silverlight. 

What's the programming language behind Apollo?  Is it free?
Ralph Meter
Saturday, May 19, 2007
>>> Is Apollo free (as in beer)?

Yes. The Apollo runtime will be free (similar to the Flash Player and Adobe Reader).

>>> Is the Apollo SDK free (as in beer)?

Yes. The Apollo SDK will be free for developers to download and use.
Ralph Meter
Saturday, May 19, 2007
What is Apollo and What is Flex?
Ralph Meter Send private email
Saturday, May 19, 2007
Can I do Apollo with Flex?
Ralph Meter
Saturday, May 19, 2007
Saturday, May 19, 2007
wxPython is good, but the L&F is not that consistent.
On Apollo:
DEBEDb Send private email
Sunday, May 20, 2007
A lot has been done on Mono. They have GTK binding to C# (GTK#) as well as their own implementation of Windows.Forms.  I do not know if it is production-ready, but I think it is worth of keeping eyes on it.
Sunday, May 20, 2007
PS: I have been working with QT a lot and it is a breeze! There is C++ under the hood with its whole complexity (and power), but Trolltech has spent a lot of effort making usable utility classes such as QString, QDate, QSQL... which makes the live much much comfortable and with less memory management issues. The documentation is perfect and the pretty readable source is available.

Trolltech probbably knows why they can cash so much for QT. :)
Sunday, May 20, 2007
I had the opposite experience with Qt - it was annoying that it went out of its way to force me to use their own Yet Another String Class with Yet Another Different API, and trying to use the rambling documentation to find out who was supposed to be responsible for destroying any given object seemed practically impossible.

To each his own!
Sunday, May 20, 2007
FreePascal/Lazarus may be an option.  It's essentially an open source clone of Delphi that is also crossplatform.

Lazarus includes a clone of Borland's VCL that operates as an  api-agnostic wrapper around a graphics library.  GTK+ is library that has received main focus so far.

More and more Delphi components are being ported to FP/Lazarus.  E.g., TeeChart, a pretty good charting component, apparently compiles in FP.  This means you'd could program charts at very high level (i.e., without much work).  FP, however, is not officially supported.

Not sure about scripting solutions for FP/Lazarus.  This one is a possibility, and it actually compiles the script to native code.

Before anyone smirks at idea of using FreePascal, don't.  It's a nice modern object-oriented language that's plenty fast:

I do have question similar to someone else regarding what business use OP has that demands fastest possible cross-platform solution.
Herbert Sitz Send private email
Sunday, May 20, 2007
When I was researching the options, GTKmm ended up being the best option by far. (Or other languages' GTK+ bindings, if not using C++.)
James Jefferson
Sunday, May 20, 2007
I was just looking at gtk...inside one of the tutorials I saw:

gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Paned Windows");

What I'm seeing is the kind of super crude object orientation that Unix has always had with things like file systems (passing back file handles, etc.) the whole toolkit oriented this way?
Sunday, May 20, 2007

Sunday, May 20, 2007
> What is Apollo and What is Flex?

Flex is an RIA framework. It basically takes in a structured XML-based source language (mxml) and writes out flash (swf) content. It's heavily component-based. That is, your MXML source defines data services, screen states, UI widgets, and custom logic in the form of embedded (or external class) actionscript. The Flex compiler compiles all that into SWFs that you can deploy.

The Flex SDK/compiler is free, and I think it's gone open-source as well. There is a non-free Builder application that puts a somewhat-WYSIWYG face on generating MXML, but you don't need it if you write the MXML by hand.


Apollo is basically a framework allowing you to create desktop applications with largely the same workflow used for web applications. It wraps up flash, flex, html, PDF content (maybe other kinds too, I'm not sure) into an installable desktop application. It has some other overlayed features like hooks to the OS and delayed networking for occasionally-connected devices. It's in open alpha right now, but pretty snazzy. It's also going to have a free (beer) SDK/compiler, but I don't know if there will be non-free related apps or not.

Hope that helps... they're both from Adobe, so all the full info is at Adobe's site.
Sunday, May 20, 2007
Oh yeah, to the OP: Flex may or may not do what you want re: charting. It has some pretty powerful charting components, but they are not free. There may be some free components that are non-adobe. (That is, I'm sure there are but I know nothing about them.) Of course the whole scripting API is there so one can make any component one likes.

The scripting is in ActionScript 3, a flavor of ECMA script that looks a lot like Java.
same as previous
Sunday, May 20, 2007
Monday, May 21, 2007
"I was just looking at gtk...inside one of the tutorials I saw:

gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Paned Windows");

What I'm seeing is the kind of super crude object orientation that Unix has always had with things like file systems (passing back file handles, etc.) the whole toolkit oriented this way?"

No, it's much, much worse. Many of the features that get inherited won't have ANY effect on derivitive classes. English doesn't seem to have been the primary language of the developers (I think Miguel is brazilian) so you get lots of fun things like modifyBg() instead of setBackgroundColor().

From what I remember (from GTK#) modifyBG is actually declared above where it is needed and a whole branch of objects that don't do anything with it still have the function.

The whole thing attempts to make C an object orientated language.
flukus Send private email
Monday, May 21, 2007
GTK+ works great even though it's not a toolkit dedicated to C++ which means it's not very welcome by C++ developers. On the plus side, GTK+ has support for plenty of programming languages, as lots of languages can access the C APIs on which GTK+ has been built upon.

I use GTK+ from Ruby and I created a very good wrapper for it that makes it trivial to program it in an OO way, but a great deal of credit goes for the Ruby-GNOME2 team who have tried to make it fit in Ruby nicely, sometimes with great difficulty. :-)

The problem is that very few people worry about desktop applications nowadays, and with all the alternatives that exist, different people pick different tools which spreads the few resources (users/developers) even thiner.

When somebody really dislikes GTK+, it's likely that he could prefer QT instead, which is commercial and has good support for commercial developments, besides being used in open source projects as well, like KDE. The difference between QT and GTK+ basically has to do with QT having a strong commercial approach and being highly dependent on C++ which is better adapted to OO/structured programming than GTK+'s C. There you have it.
Joao Pedrosa
Monday, May 21, 2007
For cross-platform development, you should make sure you look at REALbasic ( ), if you haven't already.
Paul Lefebvre Send private email
Monday, May 21, 2007

Ultimate++ is a C++ cross-platform rapid application development suite focused on programmers productivity. It includes a set of libraries (GUI, SQL, etc..), and an integrated development environment.

Rapid development is achieved by the smart and aggressive use of C++ rather than through fancy code generators. In this respect, U++ competes with popular scripting languages while preserving C/C++ runtime characteristics.

The U++ integrated development environment, TheIDE, introduces modular concepts to C++ programming. It features BLITZ-build technology to speedup C++ rebuilds up to 4 times, Visual designers for U++ libraries, Topic++ system for documenting code and creating rich text resources for applications (like help and code documentation) and Assist++ - a powerful C++ code analyzer that provides features like code completion, navigation and transformation.

TheIDE can work with GCC, MinGW and Visual C++ 7.1 or 8.0 compilers (including free Visual C++ Toolkit 2003 and Visual C++ 2005 Express Edition) and contains a full featured debugger. TheIDE can also be used to develop non-U++ applications.

U++ distributions combine U++ with 3rd party tools like MinGW compiler or SDL library to provide an instant development platform.
Monday, May 28, 2007

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz