I would disagree about C# being Microsoft's Java. They have their similarities, and Java was a jumping point, but C# has an entirely different philosophy in a lot of areas. For example, the way the language designers think about exceptions is wildly different. C# designers are also open to breaking the rules of OO to create a more powerful language. Java is the OO language, so the designers follow the rules to a T the vast majority of the time. The list could go on, but really I like both languages for different things. The majority of the time I stick with C# (I'm a fanboy) but I don't think it's a full replacement for Java in every situation.
T
Tim Copenhaver
@Tim Copenhaver