views:

104

answers:

4

I've been doing web programming for a few years and not really done much desktop GUI programming except for a couple very small command line things. I would like to learn more about it just for the sake of learning but I'm not really sure where to start. The two main "camps" seem to be Java and .Net but I imagine there are others as well. What's a good language and/or framework to get started with desktop GUI programming? Any good resources you'd recommend?

+1  A: 

An obvious choice would be GTK+ .

GTK+ is a highly usable, feature rich toolkit for creating graphical user interfaces which boasts cross platform compatibility and an easy to use API. GTK+ it is written in C, but has bindings to many other popular programming languages such as C++, Python and C# among others. GTK+ is licensed under the GNU LGPL 2.1 allowing development of both free and proprietary software with GTK+ without any license fees or royalties.any license fees or royalties.

Henrik P. Hessel
+2  A: 

Creating GUI applications in Visual Studio using C# isn't very hard to learn. Of course, these applications would only run on Windows machines. If you want something that works cross-platform, try GTK+ as Henrik suggested or Java Swing.

Bernard
A: 

If you are using .NET, you can look at using Windows Presentation Foundation (WPF): http://msdn.microsoft.com/en-us/library/ms754130.aspx

For cross-platform, I like Nokia Qt, it is what I use at work, and it has good documentation. http://doc.qt.nokia.com/

http://qt.nokia.com/

Qt also has bindings for various other languages, including Python, Java, Perl, Ruby, and C#.

birryree
Qt is especially good if you want to use Python, which could be for any number of reasons, such as it's an easy and clear programming language for a beginner to learn. Qt has excellent Python bindings called PyQt. Not free for proprietary development though, but still kick ass.
blwy10
A: 

While Visual Studio using C# was mentioned I would like to be more explicit and state doing the above as a WPF application. While WinForms applications still exists, WPF really moved UI development into a much more maintainable and elegant work stream. It also coincides with Silverlight. So while Silverlight can be used OOB, it can also be used in the Web...and in WP7 development. Learning WPF really gives you a foundation to build upon, while WinForms doesn't.

Aaron