C++ is a better programming language than C#

It is one thing to have an opinion that one language is better, it's completely different to actually declare it as a fact. You argue that C# is worse than C++ because C# is similar to a number of other programing languages. However, C++ is a lot like C and B. The quality of a programming language has little to do with how similar it is to other languages. For example, prolog is in a league of its own and does what it does quite well... whereas basic does what it does and assembly does what it does. C# does similar things to those languages mentioned and therefore sticks with the conventions put forth. Is cricket worse than baseball because cricket is a bit like bowling? -- It may very well be worse than baseball... but not because that argument makes any sense. A complicated syntax would make for a worse language here and there, however keep in mind that some major effort in the past went to human language languages where the goal was to make the language syntax as understandable as possible... the result: COBOL! Generally thought to be one of the worst computer programming languages, even though it runs most of the financial institutions and a large number of business application (if you know COBOL you have a job for life). It does what other things can't do, is it better or worse than them? -- I don't really know, how are you judging this? Similarity and complexity are both, themselves, aspects of a programing language. They do not, by any stretch, make a language better or worse than another one. There are some simple languages which are dreadful (basic in a modern context) there are others which are elegant and powerful (LUA). Some have simple syntax others complex and it doesn't have any real effects on how "good" the language is. So you believe that typing, #include using namespace std; int main () { cout << "text" << endl; return 0; } Is far easier than System.Console.WriteLine ("Text");? You are referencing a "system" command to work with the "console" and 'write' the 'line', "text". I'm sure system.out.print("") is so much better? How about print "". Why not printf("Hello World")? Echo "text"? -- You're writing a line to the system console, if you wanted to do something else to the system console you could do a number of things with the class. http://msdn2.microsoft.com... It isn't that it's longer or counter-intuitive, rather it's treating the system and console as classes: that is because it's a true object oriented language. It requires a different way about problems because it's a different tool for solving problems. You claim that this means it has a steeper learning curve than C++. This is categorically false. Writeline to the system console is perfectly understandable. And understanding that the system and console are classes and work as objects to be modified by the programming language gives one a good view of the system. In C++ you need to understand that you're using the Standard Template Library and the Input Output stream which creates a specific object called cout which is specifically an output stream for the console. It gives you an odd view of how the computer works rather than portraying the language in a robust and yet understandable fashion. You're trying to argue that it's too damn hard to know the command to write to the console... who could possible remember that Console.Write("This does it!"); does it? I'm fully open to the idea that C# may not be a significant advantage over C++ or even an improvement at all... but I don't see any evidence of that here. It uses a class setup to refer to parts of the system such that it's far more intuitive. It's a different tool, I see nothing here to suggest that it's a better tool. It is, as I noted, like saying a hammer is better than pliers.