The "best" computer programming language to learn and use depends upon your mentality—and what you want to do with the language.
For instance, the C language requires a lot of detailed and complex programming. Whereas, a higher-level language like Visual Basic hides a lot of the complexities. If you want to have as much access to the OS as possible, develop games, extremely fast and responsive programs then, perhaps C or C++ may be appropriate for you.
If you are want to learn web-based programming then, you may lean towards Java or ASP.NET. If you need to do rapid prototyping then, maybe Visual Basic may be appropriate for you. VB is great for database applications as well.Visual Basic happens to be the most widely used visual programming language in the world.
Available jobs are a pretty good indicator of the number of development projects for a given language. Java pretty much dominates in this area, with C# coming in a distant second, and ASP.NET and PHP not too far behind.
_______________________________________________
Below, I compare and contrast several of the more popular languages:
Java was designed to be safer and cleaner than C++. Java was designed to be portable and to replace C++. Java is a multi-platform language that is especially useful in networking. The two most attractive aspects of Java are that it can be a safe language (all errors are caught by the compiler or bytecode checker or cause runtime exceptions), and its portability (especially its wide range of standard libraries). Java is a multi-platform language that is especially useful in networking.
Of course, the most famous usage of Java is on the web, with Java applets, but Java is also used to build cross-platform programs that stand alone. Since it resembles C++ in syntax and structure, learning Java is usually quite easy for most C++ programmers. Java offers the advantages provided by object-oriented programming, such as reusability; on the other hand, it can be difficult to write highly efficient code in Java, and Swing, its primary user interface, is notoriously slow. Nevertheless, Java has increased in speed in recent years, and recent versions offers some new features for making programming easier.
-----------------------------------------
C is a popular language, especially in game programming, because it doesn't have the extra packaging of the object-oriented C++. Programmers use C because it makes programs slightly faster and smaller than programs written in C++. You might wonder, however, whether it's worth giving up the reuseability of C++ to get the small increase in performance with C, especially when C++ can, where necessary, be written in a C programming style.
C++ is the most widely used object-oriented language. C++ is C plus objects, an extended library, templates. I quite like the standard template library (STL) of C++. The C language is great for systems programming—as C—but allows larger project, or applications. It allows higher-order programming to a certain extent and comes with about 10 generic data structures and 70 simple algorithms over them. Other STL-like libraries include: the Graph Template Library (GTL).
C++ is well-suited for large projects because it has an object-oriented structure. People can collaborate on one program by breaking it up into parts and having a small group or even one individual work on each part. The object-oriented structure also allows code to be reused a lot, which can cut down development time. C++ is also a fairly efficient language—although, many C programmers will disagree.
-----------------------------------------
ASP.NET, C#, and VB.NET are all the same platform! You can do practically the same things with VB.NET and C#-every program that can be written in one language can be written in the other, producing exactly the same binary. ASP.NET is just the web toolkit, like JSP in Java.
The C# language is an object-oriented language that is aimed at enabling programmers to quickly build a wide range of applications for the Microsoft .NET platform. The goal of C# and the .NET platform is to shorten development time by freeing the developer from worrying about several low level plumbing issues such as memory management, type safety issues, building low level libraries, array boundschecking , etc. thus allowing developers to actually spend their time and energy working on their application and business logic instead. To a Java developer, the previous sentence could be described as "a short description of the Java language and platform"—if the words C# and the .NET platform were replaced with words Java and the Java platform.