Given the choice between C++, Java, and C#, which would you recommend to someone with a solid background in ASP, VBScript, Javascript, and SQL, but no exposure to compiled languages.

I want to begin moving to the next level by learning an object-oriented language, mainly out of interest but also to improve my long-range career and earnings potential.


A little about my background and interests:

I work at a purely Microsoft shop where the only compiled language in use is a little bit of VB 6 here and there. Everything else is script, although my feeling is that we will begin moving to a COM or .Net model eventually.

I'm not prejudiced against any language, but I'm leaning towards C++, Java, and C# because I think they would be the most useful given my experience and current career path. VB doesn't interest me as much, but several people have told me it's the easiest to learn and may be the most useful in the near term as we move code to multiple tiers.

I have some experience with XML and XSLT and I'm very interested in xml web services and .Net. But I'm drawn to C++ because it seems more versatile and powerful.

My plan is to learn the same way I've learned everything else: self-study through books, experimentation, and discussion groups.

Thanks for any advice,
Kevin