This article originally appeared here on TheServerSide.NET.
There are times in this industry when I rather keenly feel the effects of advancing age. While I do believe that there's a place for experience (and guile) in delivering value in the software world, age also means that I've lived through enough revolutions in programming to have developed a high level of skepticism when vendors offer to deliver yet another revolutionary advance to my hard drive. I'm especially skeptical when the new advances come with a substantial learning curve and a bill for new hardware.
Windows Presentation Foundation falls neatly into this bucket, and while I'm still in denial about the necessity to learn this particular bit of technology, it's becoming increasingly difficult to ignore the clamor out of Microsoft and its hardest-core supporters.
Were I alone in this point of view it would scarcely be worth writing about, but a number of conversations lately have convinced me that I'm not. Indeed, there may even be something of a "silent majority" out here in the land of the working Windows developers composed of developers who have no intention of learning WPF any time soon (or, if they're lucky, any time before retirement). In the hopes that some of the cool kids on the leading edge might actually care about what we dinosaurs think, here's my collected list of reasons for ignoring WPF at the moment.
It's not baked yet. CTP, don't talk to me about CTP. Most of us get paid to produce working software, not to play with things that will (might?) work someday. There was a time when I stayed up late at night to muck around with betas and learn syntax that I later unlearned when it changed in the release product. I don't do that any more; I've put in my time. I intend to learn WPF at most once, when it's actually released and the instructions for learning it don't start out with "use Notepad, because the Visual Studio add-ins don't really work yet."
It's too big. Microsoft certainly has a history of producing ambitious overarching projects, but they've outdone themselves this time. WPF covers 2D and 3D and audio and video and documents and animation and for all I know dessert toppings and floor waxes. There's XAML markup and code and a property system and events and data binding and everything else under the sun. It appears that there is no simple path to using this presentation layer; by trying to be all things to all user experience, it succeeds in making everything complicated. I remember the beautiful experience of learning to build Windows applications with VB 3. VB 3 may not have covered 100% of every developer's needs, but you could be up and running with it in a day. WPF is about as far from that as you can get. On the scale of power-to-simplicity, WPF is at the wrong point to interest me.
It's too Microsoft-centric. One of the big deals of WPF is ClickOnce Deployment, where a click on a URL bootstraps the entire application to a running state on your machine. Another is in-browser applications, using something calls XBAP. Unfortunately "browser" in this case is a euphemism for "Internet Explorer"; as far as I've been able to determine, neither of these features works with Firefox, Opera or Safari, or is intended to do so.
At a single stroke that makes many of the advanced WPF scenarios substantially less interesting to those, like me, who work in a mixed ecosystem that includes *gasp* non-Microsoft products. Last year Microsoft did pre-announce something called WPF/E ("WPF Everywhere") that will support some nebulous subset of WPF capabilities across some unspecified wider set of platforms and browsers, but there's little or no hard information available about this yet. It so far appears to be more of a pre-emptive FUD shot at Macromedia Flash than a serious attempt at making WPF more cross-platform.
It's just too soon. I think Microsoft has just had so many developers living beyond the cutting edge for so long that they're out of touch with the market's ability to absorb new technology. For most of us, serious work with .NET started around 2002-2003. We're just now getting our teeth into the advances in .NET 2.0 and SQL Server 2005. It's going to be some time yet -- years -- before we fully exploit those advances. When I'm still learning one set of major changes is not the time to be trying to introduce yet another set of major changes to my coding.
I'm sure there are lots of fine and innovative things in WPF. I'm sure eventually there will be good tools for working with it without paying the angle bracket tax. And I'm sure that I'll use it in an application -- around 2008. Meanwhile, I hope those of you on the bleeding edge are having fun.
To see reader responses to this story, read it on TheServerSide.NET.
Mike Gunderloy is the Senior Technology Partner for Adaptive Strategy, a Washington State consulting firm. You can read more of Mike's work at his Larkware Web site, or contact him at MikeG1@larkfarm.com.