Actually, it isn't so optional for some.
We're working on a next-generation smart client app. Visual Studio 2008 introduces XAML. The old Windows UI development model is a dead end. Not so optional.
So, now we scramble to keep up with MS but...
Microsoft's implementation of XAML is terribly immature despite all the hype. XAML, for example, has plenty of holes like missing fundamental components like a data grid and only offers work-arounds for stuff we take for granted in smart client development like support for MDI.
The tools they offer for XAML development are terribly immature and not up to the task.
VS 2005, of course, doesn't support a XAML designer forcing developers to switch between a very buggy/unstable Express Blend 1.0, a major kluge. Migrate to VS 2008 (as I just did) and you get crappy support for a XAML designer and broken compatability with the Expression Blend 1.0 forcing an upgrade to the beta September Preview version. Who develops production software with beta development tools?
Not to mention Expression Blend has a 'first whack' feel to it that's not quite ready for prime time. To get anything done I spend 60% of my time hand coding XAML because Expression Blend (and VS 2008) aren't quite up to the task of managing the overly complex XAML model MS dreamed up.
Finally, try to find support for XAML/WPF. MS own documentation sucks. There are few books and they're all written in C# (we're a VB.Net shop).
Bottom line? I can't keep up and given the lack of support and immaturity of MS offerings, MS can't keep up either. My productivity has plunged trying to sort the XAML mess all out.
MS needs to slow down and push quality over the not-ready-for-prime-time gee whiz.
Keep Up with TechRepublic