In my humble opinion if you would like to move on to PC programming, give Java a shot. I learned the basics of C#, made a few projects and now I am moving on to Java. The reasons:
- Cross platform (huge advantage). You can create setup projects for MAC, Linux and Windows as well. Visual Studio is only for windows programming.
- Can be used everywhere (even inside your coffee machine :lol
.
- Mobile development. If someday you decide to go with it, Java will be your option.
- All in one. Desktop, Web applications, mobile, has all the package in a few words (and not C# for desktop, ASP.NET for web etc).
- Very close to C#. Watch a few youtube tutorials and you will see what I mean. Either way (Java or C#) you will learn Object Oriented Programming, and thus you must learn to work with the language's classes. The learning time would be the same.
- Just try to install a simple Visual Studio project with a button and a textbox in a PC. If the framework version of this PC is older than yours, this PC must be upgrated. There is always the option to include the framework inside your setup file, but if you try to install to an old PC it may take over a half an hour and a couple of reboots (and remember that we are talking only about .NET framework installation). Clients get really bothered by that one...
- Stay away from annoying Microsoft politics. You will go with open source and a language absolutely tested, solid, and working on billions of devices. And not beeing a guinea pig until Microsoft's VS is perfected in 20 years or something...
I heart that one disadvantage is that when you upgrade your Java version, some changes must be done in your running projects (didn't read it somewhere, some programmers friends told me). That means that if the client updates his Java version there shouldn't be a problem. But if you upgrade your Java version as developer, you must edit some parts of your already running projects. But anyway, I wouldn't trust Microsoft on that either. Another thing is that C# forms are absolutely beautiful, I'll give them that.
I would stay away from VB (I know some of its basics), I agree with Hewitson that it's a step backwards.
C++? Wouldn't go with it either. It is like building Windows98 forms and it's too "low level" for PC programming.
About Delphi (visual Pascal) I don't know much. A friend of mine is using it and tells me that for desktop applications it is very good.
I believe, however, that C# and Java are the reasonable options.
Cheers!