Controversy: C#, VB, C++, or Java ?!
It’s a long story, and tis not yet agreed on. This is an interesting article written by O’Reilly :
C#.NET vs. Visual Basic
The premise of the .NET Framework is that all languages are created equal. To paraphrase George Orwell, however, some languages are more equal than others. C# is an excellent language for .NET development. You will find it is an extremely versatile, robust and welldesigned language. It is also currently the language most often used in articles and tutorials about .NET programming.
It is likely that many VB programmers will choose to learn C#, rather than upgrading their skills to VB.NET. This would not be surprising because the transition from VB6 to VB.NET is, arguably, nearly as difficult as from VB6 to C# — and, whether it’s fair or not, historically,
C-family programmers have had higher earning potential than VB programmers. As a practical matter, VB programmers have never gotten the respect or compensation they deserve, and C# offers a wonderful chance to make a potentially lucrative transition.C#.NET vs. Java
Java Programmers may look at C# with a mixture of trepidation, glee, and resentment. It has been suggested that C# is somehow a “rip-off” of Java. I won’t comment on the religious war between Microsoft and the “anyone but Microsoft” crowd except to acknowledge that C# certainly learned a great deal from Java. But then Java learned a great deal from C++, which owed its syntax to C, which in turn was built on lessons learned in other languages. We all stand on the shoulders of giants. C# offers an easy transition for Java programmers; the syntax is very similar and the semantics are familiar and comfortable. Java programmers will probably want to focus on the differences between Java and C# in order to use the C# language effectively.C#.NET vs. C++
While it is possible to program in .NET with C++, it isn’t easy or natural. Frankly, having worked for ten years as a C++ programmer and written a dozen books on the subject, I’d rather have my teeth drilled than work with managed C++. Perhaps it is just that C# is so much friendlier. In any case, once I saw C#, I never looked back.