I especially don't understand the point of a VM like the CLR that only runs on one platform. It's fucking retarded.
On top of that, after having worked in an "enterprise C#" project for an unfortunate year, the kind of person who thinks C# is a really neat idea just doesn't get along with my style of programming.
I had to reiterate constantly "Do the simplest thing that will work". And they would get pissed at me whenever I inserted something at the wrong layer of their pointless abstraction hierarchy. Delegates, XML, and design patterns abstracting ONE thing where everywhere. It was fucking horrible and it took the team forever to get anything done.