Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

What language should I seek to learn if I would like to develop for Windows? Not command-line stuff (obviously, I guess) but with Windows Forms and such? I've used C before (when working with Rockbox), but that's it. Up until now, I've used Autoit (for basic, simple stuff), but I'm looking for something that has more flexibility and is popular inside of the PC software industry. Plus, I didn't like how easy it was to crack Autoit programs. I'm also a web developer/designer, just to throw that out there.

Thanks in advance!

share|improve this question

closed as off-topic by gnat, GlenH7, MichaelT, Snowman, durron597 Jun 27 '15 at 21:52

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions about what language, technology, or project one should take up next are off topic on Programmers, as they can only attract subjective opinions for answers. There are too many individual factors behind the question to create answers that will have lasting value. You may be able to get help in The Whiteboard, our chat room." – gnat, GlenH7, Community, Snowman, durron597
If this question can be reworded to fit the rules in the help center, please edit the question.

up vote 20 down vote accepted


I recommend C# as the language to learn.

  • The syntax is C-like, which will help you get started.
  • The language is object-oriented, and it's good to learn that way of thinking.
  • Visual Studio Express is a free download, so it doesn't cost much to start.
  • There are lots of open source projects in C# to look at and learn from.
  • It's applicable to web-sites or standalone applications.
  • If you want to get funky, there are lots of nice features to the language, like lambdas to bend your mind.
share|improve this answer
Lamdas aren't really complicated, although they are ugly in my opinion in C# just because its not functional. That is, you have an expression-based lambda and then one with a return statement that looks really ugly because you have to place braces. – alternative Apr 9 '11 at 21:42
@alternative finally! There is too much factual information on this website and I came here looking for opinion. +1... – Gusdor Sep 22 '14 at 14:57

Both C# and Java are great. Syntax is similar to C and they are widely used by large community.

C# has advantage is that it has more modern features like lambdas also you will enjoy LINQ in the .Net framework and you will feel productive.

If you use Java you have the advantage to choose between many free IDEs, many free and open source frameworks. You can carefully choose what you need to develop an application for free.

share|improve this answer

Python with PySide (Qt4), great language, great API and the best of all it's cross-platform. So when you (hopefully) give up on windows, your program will run on any other platform supported by python/qt4 without changing any code (unless you used windows-specific lowlevel APIs).

share|improve this answer
I'm curious as to why you're recommending PySide and not PyQt. Does PySide have better Windows support? – user16764 Jan 12 '12 at 7:23

Not the answer you're looking for? Browse other questions tagged or ask your own question.