views:

78

answers:

5

I would like to build a graphical application that must work on at least Windows, Linux and MacOS. I would like to know what do you suggest I should use.

I have some experience with Java and C++ but I thought about using Java Swing first. What do you think or further suggest (like maybe tools or frameworks)? I also may be needing to connect to a PostgreSQL database to store data.

+6  A: 

Java is probably the simplest way to get your application working on all 3 platforms as well as to add database support. All of these are equally possible in C++, but it definitely involves more work because you need to learn to use a cross-platform widget toolkit. Also, C++ database drivers usually have wildly varying designs but Java presents a unified interface via JDBC - this also means that you can change your underlying DB at any time without having to change your code.

casablanca
Ditto. This is why Java is used in the enterpise. It provides all you need to connect to databases using JDBC. Why give yourself extra work learning QT,GTK or any other number of cross-platform toolkits unless you cannot accomplish it with your existing tools?
daveangel
+1  A: 

wxWidgets does cross-platform easily enough, using available native toolkits. You could probably use a ORM for the database part, but I don't have enough experience using them under C++ to provide an actual informed opinion there.

Ignacio Vazquez-Abrams
A: 

GTK is cross-platform. Pidgin uses it and manages to get away with being generally considered a fully-cross-platform app. The installer size is a problem, though.

amphetamachine
And the fact that the OS X native version isn't quite complete yet.
Ignacio Vazquez-Abrams
+4  A: 

I would use the Qt platform from Nokia. It supports all the OSes that you've mentioned and has also database connectors for PostgreSQL but also for MySQL, SQLite, etc.

It also has a very nice IDE, the QT Creator that you can use should you pick Qt.

the_void
+2  A: 

I would suggest Qt too. Qt has seen very good development recently, their examples and documentation base is quite large, and the LGPL license is flexible too, for creating proprietary software. It has a good Qt Creator IDE, a Qt GUI Designer. Plus is has quite a number of modules, enabling it to be used in conjunction with other language developed apps/libraries. And, it is used in commercial/public apps like Google Earth, Skype (maybe only the linux version). So, it has a good history of reliability. And yeah, for Database, it has modules, like Qt-Sql. Another advantage you get over java is speed.

Dragunov