Let’s say you’re a Windows developer. Already you’re facing the problem that you’re on an Android-esque platform where no consumers want to buy applications. Compound that with the fact that Microsoft’s UI development tools on Windows before Windows 8 are either 20 years old (Windows Forms) or slow, heavy and blurry (WPF). What you have is an enviroment that is not conducive to making great consumer apps, no matter how wonderful C# and .NET may be as a language.
Now with Windows 8 we have something different: Metro and WinRT. Microsoft is clearly saying this is the new way going forward… while also clearly saying the Windows desktop is not going anyhere. So they’re clearly saying Windows will be a dual-ecosystem OS going forward. So you, as a Windows dev, need to make a choice, if you don’t have the resources to support multiple platforms.
What happens if consumers don’t massively adopt the Metro UI? Also, what happens if Metro works out too well, and the desktop is put on the chopping block? If you’re on the wrong side of that line, your app needs to be ported. For that matter, what if both are adopted equally? Then you need to build and maintain an application with two user interfaces to reach the wider audience.
This adds a level of uncertainty that has to be factored into the risk equation for building a Windows app. Windows is already a risky platform to build a paid app on. The last thing Microsoft needs to do is give developers another reason to pick up Objective-C books, but that’s exactly what they’ve done.