views:

2191

answers:

11

Hi Guys

I'm about to write a little GUI app that will sit in the system tray, doing a little FTP and ODBC.

I'd like to develop in Linux, if possible.

What would you recommend?

Thanks a bunch!

A: 

Mono by Miguel de Izaca - now owned / sponsored by Novell. It gives you 90% of the .NET framework in Linux.

Thomas Wagner
You mean Mono with a toolkit such as GTk# and an IDE such as MonoDevelop? I agree that's a good choice in general, I'm not sure if it meets the original questioner's requirements though.
Mark Baker
A: 

Since you specifically mention Visual Basic, you should check out Gambas. It's not a VB clone, but it's VB like.

Steve K
+2  A: 

How important is the "sit in the system tray" bit? I don't know of anything that will let you do that in a cross-platform way.

Mark Baker
it is quite important as the app needs to be running full-time and i don't want it in the user's way, tempting them to close it :)
Justin Lawrence
Eclipse RCP will do this.
mmattax
+3  A: 

Gambas is the obvious choice given the way you asked the question. But I don't think that it is probably what you really want. It is the closest thing to VB6 for Linux, though.

If you really have to be compiled, Perl is an option (JIT) and is available ubiquitously on Linux. Most Linux apps in this situation, if they require being compiled, would use C/C++ wth the QT or GTK toolkits. But more often on Linux you would see Python or Perl being used.

Scott Alan Miller
+2  A: 

I believe jdesktop gives you cross-platform "System Tray" functionality for Java. (Edit: actually the functionality is in core Java, as of 6)

And NetBeans is pretty good for developing GUIs, probably not as good as VB but not bad nonetheless. But Java may be overkill for your situation.

Phill Sacre
+4  A: 

I'll probably be down mod but I think that FreePascal is your best bet.

Most, if not all, of the functionalities are cross platform and resolved quite nicely. I'm not sure, but I could investigate, but the TTrayIcon is cross-platform and that's about what you need to get your app in the tray. It also has very good core connectivity with the major players on Databases. It's cross-platform in Windows, Linux, MAC OS and even in ARM and other embed environments.

The only thing is it's Object Pascal and not VB'ish.

Gustavo Carreno
+2  A: 

I still think that wxWidgets is a grat cross-platform UI development toolkit that is under active development and has great community support.

Sijin
+2  A: 

There are several VB alternatives:

http://www.realsoftware.com/products/realbasic/

http://www.libertybasic.com/visual-basic.html

and what about Delphi?

Optimal Solutions
+3  A: 

For a "little GUI app" I would recommend Tk, either with Tcl or as Tkinter with Python. Tk is a very high level cross platform (and cross language) GUI toolkit that is very easy to use. Heck, I recommend Tk for large GUI apps too, but that's beside the point.

If you go with Tcl you also get a really terrific distribution mechanism (tclkit/starkit/starpack) that makes it trivial to create single file executables, or two-file platform specific runtime + platform agnostic virtual filesystem.

Python might give you better ODBC functionality, though that's just a hunch. I've not used ODBC with Tcl or Python.

Bryan Oakley
+1  A: 

I, for my sins, was a VB developer, I shifted to C# and then to C++ with Qt.

I think its going to depend on your skills as a programmer, if you are highly dependent on VB's procedural nature then stick with BASIC as a language.

If you tend to develop in classes and objects with VB you probably will find Python, C# or Java are good alternatives.

Also when looking cross-platform it is not just the language but also the toolkit you will be using. Qt has been great for me, but there is also wxWidgets and GTK to name a couple.

Phil Hannent
+3  A: 

I have used several GUI toolkit for cross platform development, here are my top 4 suggestions in my preferred order:

Eclipse RCP- It may be a heavyweight, but it is cross platform, produces native GUI components for each OS, and has many deployment features.

wxWidgets - Open source GUI library, can use C++ or python (wxpython).

Tkinter - really fast and easy, lighweight GUI toolkit for python, cross platform, may be as feature complete as the above options.

Java Swing - Good library, but can "look like java" (it doesn't use native GUI components)

mmattax