views:

2191

answers:

15

What is the best multi-platform RAD language for writing a desktop application? Nice GUI capability would be a bonus.

Question Update: Now after 2 years from asking this question, can Adobe AIR a be a a contender or is it too limited?

Answers so far:

  • Python with PyQT
  • Java
  • Mono with Glade
  • Ruby with Shoes
  • Lua
  • REALBasic
  • Rebol
  • Lazarus

Update: nothing so far about (with my own question marks): - Perl - Is perl with perltk not easy or portable enough? - Adobe Air - not known out there enough or too limited? - Titanium Appcelerator for Desktop - too new?

+2  A: 

.NET with monodevelop and glade (and mono of course).

Works like a charm.

Jorge Córdoba
what is monodevelop and what is glade? Does it work well on OSx and is it compatible with .net 3.5?
Notitze
p.s. I am looking them up already ... :)
Notitze
Mono is the cross-platform, open source version of .NET. MonoDevelop is an IDE for Mono; it's been very, very unstable whenever I've used it but it's fairly decent when it works. I don't think that .NET 3.5 support is mainstream yet, but it's coming. Glade is based on GTK+ which may look bad on OSX.
Calum
Thanks Calumn! Too bad I cannot vote the comment!
Notitze
There's some support for Windows Forms in mono, almost everything is supported in a better or a worst way. I prefer glade but Windows Forms is quite usable for MacOsX
Jorge Córdoba
+1  A: 

It really depends what sort of interfaces you're comfortable with, and what you'd like to do. Even Java is alright with the NetBeans interface constructor.

From what I've seen recently, Shoes for Ruby looks pretty great for just knocking up nice interfaces, but it really depends if you like Ruby. This is disgracefully subjective though.

Calum
+1  A: 

link textRemObjects Oxygene runs in Visual Studio (included) and has the ability to target the Mono compiler directly and then use templates for different GUI Widget libraries. So you can have all your business logic code in common, and then use it to create front ends targeting Mac OS X, Windows and Linux so you will have native looking GUI on each platform.

Naturally you can just create a WinForms or command-line application that runs on all three as well, but having the native looking GUI is a much better approach.

Jim McKeeth
+4  A: 

For RAD, I would suggest dynamic languages, like Python or Lua. An IDE can save you some time, but a flexible language would give you more advantages.

Taking Python by example: Your code will be multiplatform, since it will run on top of a interpreter. You prbabily will need to do some GUI stuff. For that, I suggest using PyGTK (portable) with Glade, an interface designer.

I can't figure better RAD tools for generic applications!

Kknd
+6  A: 

Python with either wxPython or pyQT. Python is the nicest dynamic/scripting langauge and wxWigets and QT are the best cross platform GUI toolkits (IMHO of course!)

tk is ok if runs anywhere is more important the native look of th egui.

Martin Beckett
+3  A: 

REALbasic is worth a look. I know -- basic makes everyone cringe -- but it's actually a pretty nice variation when you dig in. Not as classically OO as, say, the current iterations of .NET, but also not nearly as immense and complicated and has most of the OO necessities. Like everything in software, in certain situations it's a great fit, and in other it's not.

Like I said -- worth a look. It definitely is one of the easier development environments to get productive in quickly.

IncaRoads
There are a lot of awesome scripting languages, but RealBASIC just allows you to get a GUI app out quickly and so much more easily than other options. And the language itself is not bad.
Paul
+1  A: 

plt-scheme is multiplatform, have gui, functional paradigm and extense comunity link text

A: 

Tbe best consistent feedback if seen is for Rebol, for breadth of capability and depth of support (including an active community). I'm not a user, but I try to keep an eye on this space.

le dorfier
A: 

There are many options.

But I would like to suggest only three:

1) VB6 (classic) - Though not true OOP it is well worth its while. Software compiled in this run (even those using ActiveX) without any problem under Linux through WINE.

2) KBasic - A VB Clone so to say but is based on QT and is cross platform so you can code once and run anywhere

3) RealBASIC - This is really a great tool but the IDE seems to be a memory hog and quite unstable at times. It supports compilation for a target operating system. It supports Windows, OSX, Linux (almost all variants)

HTH

Yogi Yang 007
+3  A: 

Python is my preferred cross platform prototyping language because of its syntax and cross platform libraries.

PyQt is the best GUI library for Python because of the designer, good docs and stability. There also SIP for generating bindings around C/C++ code for Python.

wxPython is trying to support too many widgets. More effort should go into docs and bug fixing.

Nick
+1  A: 
  • people have done work on mono on other platforms, but does your legal department know about the dubious license status of mono and the fact that one beautiful day you may wake up to code running on a platform that's all of a sudden outlawed?

  • I support the people who have mentioned python. Great language, good support for ui bindings.

  • as a javaphile, i'd strongly recommend a mix of java and java-based scripting languages like jython or groovy. Write in dynamic languages, but with the security of a decent vm, and forget about poor concurrency support of python or godawful performance of ruby! Heck, use jruby!

Paul Milovanov
+1  A: 

Lazarus - It is awesome! Find out more here.

Tony Stone
+1  A: 

I've just looked into Python and I have to say that it is very difficult to get packages working together, I gave up after 9 hours of pulling my hair out. I'm in need of OpenGL with GUI. I've been using Java, and it works very well cross-platform, just add windows or mac shared libraries and your fine. Only problem is you need to run with java -Xmx1g and need the runtime. I wanted to switch to python to see if py2exe, py2app etc was a viable alternative since I like python as a language. I've got to say that whatever potential time you might save programming in python, you'll throw away trying to set modules/packages up and get them all working together. For real programs, packages like PyInstaller and py2exe etc just don't work!

I'm now considering just going C++ with Qt, it seems the only possibly sane alternative to Java.

Lukasz