Build 2011 was amazing! It answered some lingering questions (XAML's future, Tablets, etc). It also presented us with some very impressive and fresh work that should ensure a bright future for Microsoft and the MS ecosystem.
In a Post-Build time-frame, I'm looking back a bit and reflecting on what this all means. A couple thoughts come to mind...
C++ Renaissance - Not a coincidence...
The backing from MS for the "C++ Renaissance" and the "Going Native" movement are making a lot more sense. Initially, I kinda felt like these were unrelated to announcements that might be coming at Build. But looking back, it's pretty obvious why there was such a push. WinRT is native and they've brought XAML to native code (for metro anyway).
I don't view all of the momentum as a MS marketing push though. I think that there was a lot of energy in the community as a whole as evidenced by the ratification of C++ 11. Regardless of motivation, the progress is good! I'm glad to see progress in native development. And if I'm lucky, I hope to do a bit of native development sometime soon.
WinRT seemed very cool to me at first, and I still think it's a stellar piece of work. The ability to use a variety of language bindings for the UI is pretty awesome and the re-imagining of Win32 into a new "BCL" is a welcome change.
That said, I got a sinking feeling in my stomach when I heard that WinRT's bindings are basically COM. Now, there's nothing technically wrong with COM, but it's not exactly the most "modern" or friendly standard out there. Mentioning COM gives me flashbacks of registration, registry entries, GUIDs, interface versioning hell, etc. But at it's core, it's still about integrating languages using binary compatible vtable structures.
Now, I'm not saying that I know of a better option to enable the WinRT design, which allows for multiple language projections for metro apps. But I'm starting to wonder if that goal is really worth the architectural consequences of WinRT. A potent comment on one of the "Going Native" episodes
makes some good points and asks some good questions.
For now, I'm just trying to let this sink in. And I'm trying to make sense of an uneasy feeling that I can't quite isolate or define. However, I have a lot of faith in Microsoft and the brilliant engineers that put all this together. They've served me well for many years.
Having MS answer the "What's XAML's future" question was huge! And the fact that they're bringing XAML to native developers is great! Hopefully people will stop the FUD about this stuff. At some point, they're going to create a self-fulfilling prophecy.
That said, I have to say that I'm a bit disappointed to see the WinRT XAML implementation be most like SilverLight, instead of the richness of WPF. Maybe the richness will come with time, but as a WPF developer, I appreciate the power of the platform. We'll see where this goes.
I was also happy to see that they are investing in .NET's version of WPF. This is good news, and a long time coming. I still need to dig into the complete list of changes, but I think the one at the top of my wish list would be fixes to the threading issues around binding to collections. Maybe they'll sneak that in before it ships. Maybe.
That's my 2-cents for now.