views:

217

answers:

4

My student group and I are trying to continue working on a project we worked on this semester over the summer to become a professional, deployable app. We originally did it in Adobe AIR but it seems now that the computers this program will be running on will be very slow, maybe 600mhz and 128-256mb ram so flash just isn't going to cut it. It is basically a health diagnosis application that we will be shipping out to impoverished countries.

Now comes the real question. We are wondering what language to rebuild our application in. It has to have a good gui builder associated with it, like adobe flex/air gui builder or visual studio's gui builder but the application should run on linux primarily, and if it can run on windows thats just a plus. We are all students too without really any outside help so whatever we decide to do this in there must be ample documentation available when we hit problems.

Some things we have considered so far are using python and glade or c# and monodevelop, but again we really are not experts on any of this which is why I am asking for help as I would rather spend the time now choosing the right tools instead of wasting time down the line when we hit a roadblock.

Thanks in advance!

+3  A: 

The closest thing is probably going to be gtk# with monodevelop. It has a slick, Visual Studio-like ide, and the resulting programs will run on Linux and Windows. The language would be C#. I think this would be the best balance of performance and ease of use.

Alternatively, PyGtk is nice, and you can use Glade for the GUI designer, but it isn't quite as integrated as Monodevelop.

Matthew Talbert
+1  A: 

For such low-end hardware I suggest wxWidgets or wxPython, using wxFormBuilder to create dialogs. You can use MS Visual Studio, Eclipse or CodeBlocks as development IDE. The latter two work on Linux well. Alternatively, you can use some simpler programmer's editor like Geany or Kate.

Milan Babuškov
+4  A: 

I see answers pushing wx and gtk, so I can't avoid pushing Qt, my favorite!-) With a major corporation standing behind it (Nokia), two excellent sets of Python bindings (PyQt and PySide), support for Python 3, the superb Qt Designer, great Mac and mobile support too... it's seriously hard to beat...!-)

Alex Martelli
This requires you to program in C++ doesn't it? Or do I have that wrong? Also Qt/wx/Gtk are all graphics libraries? And you would use other tools to make guis with them?
Javed Ahamed
@Javed, Qt sports superb bindings for Python (**two** of them!) as well as Java (sorry, no experience with the latter), and Qt Designer is what you'd probably use to paint your GUIs. Qt has a few other portability aids besides GUI (I believe wx and gtk are GUI-only); if your code in Python or Java you're less likely to need those aids, but C++'s standard library is much smaller than Java's and Python's so the extras come in handy for that. BTW, Qt's superb performance on smart phones (why do you think Nokia bought it out?-) shows it's superb to "access really low end computers" _too_...!-)
Alex Martelli
Qt is also a good option since it has been LGPL'ed recently. However, I is not much more advanced than wxWidgets. You still need non-standard MOC, and it does not have native controls like wxWidgets, but only native rendering. Whether this is a good or bad thing, depends on kind of applications you are building. Also, wxQt is on the way, so you'll be able to simply link your wxWidgets application with Qt library and have a native Qt application out of the box for Linux/KDE/mobile, while keeping the WinAPI, Gtk, Carbon controls on other platforms.
Milan Babuškov
Thanks again, still haven't completely decided between mono or qt have to talk it over with my group but this post went into more detail.
Javed Ahamed
+1  A: 

To access really low end computers, and if you have no real graphics requirements, you could consider a text mode interface - curses/ncurses for one.

Digikata
Ah it would make things simpler but yeah we are going for a really user friendly graphical interface. Actually this project started out in a Human Computer Interaction/Usability course so that is the main emphasis. :)
Javed Ahamed