views:

56

answers:

4

I want to start making a little window-based program that runs on both Linux and Windows flawlessly.

It must have a GUI. What are the things I should be reading about? I'm completely in the dark regarding this.

Thank you.

A: 

If you want to utilize your C# knowledge, you might want to have a look at Mono. But there are many, many other alternatives too.

Mark Byers
I'd rather program in another language other than C# so I can learn something new. Any new info please?
Sergio Tapia
+1  A: 

You could try Java and run the same compiled bytecode in both places. Or try C++ with Qt or wxWidgets. With C++ though you will have to compile for each platform. Another possibility is Tcl/Tk

Brian Ensink
+1  A: 

As a C# developer, I'd suggest Java with the Swing toolkit. NetBeans helps you get started easily, like Visual Studio.

Download, install, create a new prject, and there you have it; a form in front of you to drop controls and hook up to the code just like in VS + C#, except it's cross-platform (write once, run anywhere). And the language is very similar to C# (which was actually inspired by it). There are also countless books to help you get started with Java and GUI development in it too.

If you don't like Java for some reason, and you're willing to learn/use C++ (with extensions), have a go at Qt, and the Qt SDK, which includes a form designer as well, with a really nice IDE GUI. If you know C++, Qt should be a breeze. It's also cross-platform (write once, compile anywhere).

Good luck.

Zach
+1  A: 

If you want to leverage your C#/.NET knowledge (IronPython,...), you should go with Mono. Its IDE is called MonoDevelop and works in Linux, Mac and Windows. You can keep using WinForms or switch to Gtk#, which is a nice wrapper around gtk+.

Also, make sure you read the application portability guidelines which covers different strategies and common pitfalls.

Enjoy!

Gonzalo