A discussion taking place in a Windows Presentation Foundation (WPF) newsgroup, in a thread called WPF vNext, shows how Microsoft’s confused rich client development strategy is affecting developers, and offers some clues about what is coming.
Developer Rudi Grobler, who posted on his blog some wishes for Windows Phone, Silverlight and WPF, describes his difficulty in discerning Microsoft’s direction:
The strategy for the future is very vague… I daily get questions about should I use WPF or Silverlight? Is WPF dead? Is Silverlight dead? etc…
Jeremiah Morrill describes his frustration with WPF performance:
Microsoft has known of WPF’s performance problems since the first time they wrote a line of code for it. You will be hard pressed to find a customer that hasn’t complained about perf issues. And you will not have gone to a PDC in the last few years and not hear folks bring this up to the WPF team. This is 3rd party info by now, but I’ve been told the issues I have noted have been brought up internally, only to be disregarded.
and remarks his frustration with what has happened to Silverlight:
Silverlight’s strategy USED to be about cross-platform, get-the-runtime-on-every-device-out-there, but it’s obvious that is not the strategy any more. What happened to Silverlight on set-top-boxes? Android? I read an article that some people saw it on XBox, but nobody has talked about it since. Cross-platform with OSX has become symbolic at best.
Developer Peter O’Hanlon describes how the uncertainty has affected his business:
I run a small consultancy, and I bet the company on WPF because I could sell the benefits of faster development time for desktop applications. We have spent a lot of time learning the ins and outs of the platform and saw that Silverlight gave us a good fit for developing web apps. In one speech Microsoft caused me months of work repairing the damage when Muglia seemed to suggest that these technologies are dead and Microsoft are betting the farm on Html 5. We hand our code over to the client once we have finished, and they ask us why they need to invest in a dead technology. I don’t care what you say on this thread, Microsoft gave the impression that html 5 was the way to go.
[…] Muglia’s statement about the future being html caused serious issues for my company. We lost two bids because the managers didn’t want to commit to "dead" technology.
Microsoft’s Jaime Rodrigues, WPF Technical Evangelist, offers the following response:
You are telling us to improve perf in WPF. We hear this loudly and we are trying to figure how to solve it. Unfortunately, there are a few pieces to consider:
1) First of all, a lot of our customers are telling us to invest more into Silverlight. Let’s say (again made up) that demand is 4-to 1. How do we justify a revamp of the graphics architecture in WPF. This is not trivial work; the expertise in this space is limited, we can’t clone our folks to 5x to meet everyone’s needs.
2) Let’s assume we did take on the work. My guess (again, I am not engineering) is that it would take two years to implement and thorougly test a release. At the stage that WPF is at, a rearchitecture or huge changes on the graphics stack would be 80% about testing and 20% about the dev work. It is not a trivial amount of work. Would we get the performance you want across myriad of devices? We don’t know. WPF bet on hardware, and there is new devices out there that are trading hardware for battery, weight, or simply for cost. it would suck to do that much work, make you wait a long time, and then not get there. Let’s get real on the asks; you say "improve perf" but you are asking us to do a "significant re-write"; these two asks are different.
3) By the time we get there, what will be a more powerful framework? Silverlight, WPF, C++, or SuperNew.Next ?? we don’t know today. We go back to #1 and look at demand We are in agreement that "customers" is the driving principle.
The WPF has looked at the trade-offs, and risk many times. We are also looking at what customers need. Jer, to you it is all about graphics. To many others, it is about data. So, how do we serve all customers??
The strategy is exactly what you have seen/heard:
1) WPF 4.5 is going to have some significant data binding performance improvements.
2) We are not redoing the graphics framework, but we are doing a lot of work to let you interoperate with lower level graphics so that if you need more graphics perf you can get it, and still keep the RAD of the rest of the framework.
[…] Hope it helps; apologies if it does not, and again, wait for Rob Relyea or someone else to make it official. That is just my 2c as a person who bet heavily on WPF but has seen the data that drives the trade-offs the team has to make.
This will be disappointing to former Microsoft evangelist Scott Barnes, who has initiated a Fix WPF campaign.
The problem though is lack of clarity about the strategy. Look at Rodrigue’s third point above. Nobody can predict the future; but what is Microsoft’s current bet? Silverlight, HTML5, or maybe SuperNew.Next – for example, the rumoured new native code UI for Windows 8 or some variant of it?
My own view is that the current difficulties are rooted in what happened with Longhorn and the fact that the Windows team abandoned WPF back in 2004. I’ve written this up in more detail here.
Lest this post be misinterpreted, let me emphasise that Microsoft has a good track record in terms of supporting its Windows APIs long-term, even the ones that become non-strategic. Applications built with the first version of .NET still run; applications built with Visual Basic 6 mostly still run; applications built for ancient versions of Windows often still run or can be coaxed into running. Build an application with WPF or Silverlight today, and it will continue to work and be supported for many years to come.
Update: Barnes has his own take on this discussion here.