@Techwing C# isn't that bad (I do agree with the statement about Java though, it's a very dated language nowadays)
C# is no longer proprietary, its specification is partially controlled by EMCA which is unaffiliated with Microsoft (besides cooperation on an open specification for C#). As such, third party implementations of C# may and have been written (The mono project being a prime example). I come from a Perl/Python - C background and I must admit, Microsoft actually got C# right this time, it's a very pretty language, it allows for a lot of low level stuff when they're needed (this isn't as rare as you may believe) but you can still just hack around and see what kind of nifty thing you can do using a higher level language, type inference is a plus, interops very nicely with unmanaged codebase (even if the symbol table came from gcc, this means that I can still use stuff that I wrote back in C), doesn't set you back with annoying "features" like overflowing during addition or read-only blocks of memory that ceased to be intriguing years ago, and unlike Java, IR/bytecode emitted from C# are often inlined into machine code whenever possible so this makes its speed comparable to those of C/C++.
Aside from that, I would have to say that C++ isn't a very neat language in my opinion, namely that it accomplishes what it set out to do so well (everything is hidden under layers and layers of software abstraction) that everything would explode at the most unpredictable times (cout << i++ << " " << ++i;, and the generics are a nightmare) so I usually just stick with C. Now, I am by no means trying to imply that C is a beautiful language. It's not. It's a hellish language full of surprising "features", but on the other hand, since it's simple and sit very close on top of the operating system, it's rather easy to figure out where the problem is (oh damn, forgot about operator precedence not working with this macro again). Classic little gem from C:
int wtf = ((int(*)( ))"\x8b\x44\x24\x04\x83\xc0\x01\xc3") (4609110);
printf("%s\n",(char*)&wtf); // prints out "WTF" on intel or any little endian processors
However, my personal favorite is Python. What can I say, it's simple, you can pretty much write anything within 20 lines of code, and you are offered a selection of programming paradigms via its handy syntax sugary goodness.
PS: Visual Basic compiles either directly into machine code in unmanaged environment or IR that later emits machine code in the .Net environment. Even then, I have to say that it's one of the weirdest language that I've ever seen, and I used to think that Perl was bad...