The fact that the Windows team rejected C# actually was a reason to think twice about it (and Office, and ...) . If nothing else it had deep implications for .NET's backwards compatibility story, and it sent the message that people with existing C++ codebases shouldn't view it as a natural next step despite the .NET team originally pushing dialects of C++ and P/Invoke pretty hard.