@Charles I don't think it has anything with you promoting native C++ Charles (Go C++ 11!!! Smiley). I think it has more to do with people's mis-understanding of WinRT (there are a lot of murky explanations of it on the web), and a lot of criticism came from the architectural diagrams at some conference that showed .NET/C# kind of pushed off to the side when they were talking about Metro/WinRT, and that put a lot of .NET developers off.

I think there is just a "misunderstanding" of what WinRT is, and I think there is a lot of tension from .NET developers because they think Metro will replace WPF, and eventually deprecate .NET. I don't think either of those will be true, not just for compatibility reasons, the desktop is not going away.

I think the big push for mobile/tablets and bringing them together on the desktop in Windows 8 has a lot of people nervous as well. It's a very bold move and many don't know what to feel about it yet.

I think right now one thing Microsoft could do is help by, (and without promoting Metro/WinRT or doing anything related to advertising/marketing) is to better explain:

1) What is WinRT
2) Why does it currently only support Metro style apps if its a "successor" to Win32
3) Why does it only expose a subset of .NET API's and "govern" which ones can be used in WinRT apps (this makes developers feel limited, and they don't like that)
4) What is the future of WPF/Desktop (and including WinForms even, people still use it)

If I'm wrong on any of these points I apologize and would love clarification. These are based on my own understanding of WinRT/Metro and concerns I hear from other developers.

@SteveRichter It doesn't really matter how powerful hardware is. Managed code runs on native code. It doesn't exist without it, and no matter what type of device it is or how powerful the hardware, performance and reliability of the runtime/platform/operating system/device should always be the #1 priority.