Programming languages, which one is the right?
Well this is a somewhat difficult question to answer. You have a lot of different possibilities depending on what you want to do and where / how you want to code.
All rounded languages:
- C++ / C
Compiled and running in virtual machines (make the code compiled run on more platforms):
Compiled and running natively (which makes the code compiled run only on the compiled platform):
- C / C++
- Objective C (Mac OSx / IOS)
- C# & VB.NET (are more toward windows environment but runs nicely on multiple others via Mono)
Easier to learn:
- C# / VB.NET
Harder to learn:
- C / C++
Now Java & C# / VB.NET offers nearly the same kind of capabilities meaning:
- You can develop GUI
- You can develop Console (read command prompt) applications
- You can develop Web applications
- You can develop Phone applications
As you see the choices / options are virtually without limit. Now, if you ask me what I code with I will answer you C#, and I can even tell you why, but that doesn't mean it is the best solution for all problems nor the only right choice. As always you must a bit think what are your goals. Also if you work in a team, the team normally already have a language and you must normally comply to the standards of the group. If you are alone then you need to choose on which platform you want to develop Linux, Mac or Windows depending on that the tools available will not be the same. If you choose windows then I would personally tend to go to Visual Studio so either VB.NET (I don't like it), C++ (not easy), F# (I would not pick that), or C#.
If you say Mac or Windows I would then tend to go for Java, knowing that you will have an harder time but on the other side your application will be more easily ported on any platform (yet the honestly the framework is not as nice as .NET).
Now if you say you want to develop 3D games, then I would go for C# or C++ everything else is not really an option.