Easily C# and Java, I don't think the virtual machine adds anything other than another abstraction layer to get in the way. Just because code is native doesn't mean you can't have all sorts of built in bounds checking to ensure safety, but when you're in a VM, taking off the training wheels when you need to actually make shit fast is such a pain.
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.