Way back when I was learning some C++ and learning it's awesome powers. I was never a real programmer to begin with but I liked to think I picked up a lot of core principles and got a good idea of what was possible with it. During this time I heard about C# being an up and coming thing, but while I don't remember specifics, I do remember hearing how it would drop some important functionality that C++ had. I realize I'm being vauge but isnt that true? In C++ you can create kernels, write sections of ASM code etc, the sky is the limit. C# dropped at least some of the powerful-and-scary-hard stuff... right?
Even though this post is fourteen days past (sorry, I missed the notification about this post).
It's actually untrue. You can write a kernel in C#, take a look at Microsoft's singularity. It's an entire kernel built out of unmanaged and managed code. It's actually really cool with what they did.
Obviously the majority of programmers don't NEED to be doing any of that, but in my young mind I liked that C++ was as powerful as just about anything else. Most programmers are control freaks, you honestly prefer C# with its loss of control?
Control has nothing to do with it. A language is designed to solve a particular problem domain: while C++ has speed, you wouldn't catch me writing web apps in C++. It's about the right language for the right job. I simply chose C# because 1. it seemed cool at the time and 2. I needed a job. C# doesn't remove control out of my hands, but it does empower me to write software pretty quickly. Going back to the C++ example, a C++ web app (probably through CGI) would require butt-loads of pointers to get the job done - in C#, it manages it for me. Surprisingly, there's hardly any slowness to C# either, it's a pretty fast language.
Sure, C# doesn't have a lot of the scary-hard-and-powerful stuff, but C++ is designed for a different type of problem domain. It's difficult to compare one over the other.