When you write a blog post like the one I wrote around WPF being dead, you tend to get a few emails that are either filled with confusion such as “it’s dead?…wtf?” or worse you get the email that basically outlines how you just ruined a perfectly good deal for someone.
Having just received one of these emails, I thought I would address a crude FAQ on the pros and cons of WPF being dead.
Question. If we all say WPF, is dead, wont that hurt its present day adoption?
Answer. Yes. Definitely and I have personally been at the bruising end of that conversation. There is no doubt that if we the .NET community declare WPF end of life we in turn let Microsoft get away with their bad decision making (in truth my bad decision making as its former Product Manager) and lastly we shoot ourselves in the foot for future XAML friendly work.
Having said that, declaring it dead is important short-term loss but potentially long term gain and I will explain why.
Mobility platform adoption is at critical crossroads. Today companies worldwide are under a lot of pressure to discuss what their software offerings in and around web + mobility are likely to be. That is to say, the sales pipelines are handing feedback up stream that ask the question in around “when are we going to be mobile” (not in a literal sense but conceptually).
If we today continue to prop up WPF as a “good enough” technology bet knowing Microsoft has abandoned any further support then we are placing the entire .NET community at risk of alternative development. This is to say that most developers who are bored with .NET or do not’ care will not be fussed either way and probably would embrace this all the more.
Developers who do enjoy sitting inside Visual Studio and dare I say, Expression Blend might find this a troublesome thought to contemplate. The fact of the matter is .NET development is successful given its tooling story and .NET framework often gets you in and out of the development workload quite fast (I am a former Java/ActionScript developer, so I am not saying this a pure .NET whore).
If we ignore the Windows 8 and Windows Phone 8 proposition in favor of high fiving WPF, well we are placing our short-term bets on desktop development here and now whilst leaving the whole mobility continuance exposed to iOS or Android development.
This in turn can have a knock on effect, whereby developers in the .NET space are given a choice of either doubling down on HTML5, up/down-skilling in iOS or Android development practices or worse being outsourced to specialist teams who have prior experience in the alternative(s).
WPF has no mobility story other than a remote desktop application on an iPad touching a desktop built in WPF (messy and clumsy).
I see the whole Windows 8 proposition as a mess; do not get me wrong Microsoft have done us all no favors with their UI choice(s), developer relations nightmare and lastly internal bickering and constant wave after wave of aggressive behavior.
It is time the company either started to fire some executives or regroup and come up with a better strategy than the one(s) they have now. Until such time, it in the end it has been left up to Architects worldwide who have influence to provide clarity around what the Microsoft mobility offerings look like and help position new projects towards this in a calm manner.
I am not saying this will happen overnight it will probably take 1-2 years to push the business community into the Microsoft Windows-only mobility space. If we also can carefully, correct Microsoft messaging that WPF is dead whilst at the same time Windows 8 is the next version of WPF (current source code, tooling and skill reuse), you stand a greater chance of success than you do by choosing to downplay its state.
The trick is to go beyond Microsoft’s weak guidance today that “Silverlight & WPF aren’t dead, XAML/C# are alive!” as if that was the answer to the question. It clearly needs to be expanded on further and teased out in careful threads on what that actually means.
It’s not about XAML/C# it’s about “can I keep my existing work on Windows 8” first and foremost. If they can answer that question with clear and definitive guidance the whole WPF is dead becomes less of a bad taste.
If they cannot answer that, then look to the blogger left or right of you and pray they understand Microsoft better than they themselves as its coming down to the ye olde “influencer takes all” position.
Ubiquity seems to always be a sticking point with Microsoft. The fact that WPF right now has probably one of the best ubiquity stories that would make Silverlight at its peak salivate with envy still goes largely unnoticed. It has to do with Microsoft’s lack of marketing & evangelism around this but in reality you could knock out a WPF application and reach more audiences than most other languages.
Think about that, how many Windows machines are there worldwide, specifically when it comes to Business customers (less consumer). Now what has always been the sticking point about making applications in HTML vs. Windows? Answer – cross platform.
Having cross-platform has always been most sort after request and the main core reason why WPF adoption has often been parked in the “maybe next time” bay. The amount of times at Microsoft when I was in the Product Management team we faced this issue we would often just retreat to Silverlight as an answer hoping that would get deals across the line where possible (hence Silverlight got all the investment and WPF didn’t).
The reality is Microsoft is a Windows only company and for a while, Silverlight and its x-platform strategies distracted us all, but ultimately that is what killed it. Microsoft cannot as a company afford any more to be semi-agnostic; they are losing so much market share right now it is ridiculous. They now have to regroup (Windows 8 product lines) and go back to their tired playbook of “Windows Only or bus” (it’s the only trick Sinofsky knows).
If Microsoft cannot position WPF as a viable solution to real problems and instead are bowled over with weak answers to the cross-platform perception then what are we all doing? Do you keep fighting the lonely fight or do you regroup and rally behind the one thing that actually might get you out of this discussion a bit more cleanly via the Windows 8 pitch.
Tooling is tapering off. I do not see Visual Studio 2012+ and Blend+ continuing much more in investment around Windows 7 + WPF. We all saw this happen with WinForms and it is not as if they will cut and run with these two, they just will not spend too much time on the problems that are faced with tooling for WPF.
WPF is likely to still have internal investment so long as Expression Blend and Visual Studio continue to pull from its code base how that spills over to the public though is an open question (that will not yield answers). It is in Microsoft best interest to turn a cold shoulder here on WPF (despite its internal adoption) publically in order to get everyone shifted over to Windows 8 in a more timely manner.
If they let WPF linger or keep feeding it backwards compatibility then it turn becomes what Windows XP has been to Windows 7 or Internet Explorer 6 to Internet Explorer 9 … a legacy you just can’t kill off no matter how much you promise “new” is better.
Question. Ok, so you are saying let’s all announce WPF is dead and long live Windows 8?
Answer. Yes. Before you grab your stones and start throwing my way, it comes back to the key driving principle behind why that is. Do you optimize for a short-term gain and in turn leave the mobility and future platform battle to the alternatives or do you instead promote its end of life but do one better than Microsoft themselves by outlining what the transition will look like over the next two years.
What I mean to say is, do not just say, “its dead, end of story”. Instead, say, “It’s dead as long as Windows 7 isn’t alive. The future of WPF however is tied-up in Windows 8, so if we want to get more into mobility then we have a transition moment here. We can continue to keep existing code that we have written and transport it across primarily. Secondly, we can also retain our developers skill sets that we have invested today given the tooling and languages are still intact (with minor and major modifications throughout).
It sux and I am facing the same issue right now. As I sit here and type this on my Office 13 Preview via my Windows 8 Install, I am doing so under duress. Do I like Windows 8? I don’t like the UI, sorry I think Metro is a form of mass design retardation in full flight but on the flipside I can live with it provided I get a UX platform that I can do more with.
I will trade my dislike for Windows 8 upfront if it can let me create a vision of what I think the software industry should do with its out of date workflows & problem solving. I’ve waited 15 years+ for a descent UX platform to come along, I sat through VRML, DHTML, Flash, Flex, WPF, Silverlight and now this hell spawn known as Windows 8. I worked as an outsider and insider on all of the above and I’ll be damned if I’ll give up now because some bald headed napoleon complex ass-hat decides “He’s got Steve Jobs beat”.
Question. You are still putting developer’s jobs on the line.
Answer. Yeah I probably am. I am not proud of that fact and when I was part of a team that funded Silverlight & WPF we actively choose to ignore WPF in favor of Silverlight. It was a calculated bet at the time but clearly, the result is we have two products facing a slow death march in favor of a reboot to a solution we almost had at the start.
Let me unpick that further.
When I first joined Microsoft, we were fighting to get WPF into the hands of .NET developers worldwide. We needed to move everyone from Windows XP over to Windows Vista and in a timely fashion. Microsoft spent millions pushing the agenda alongside getting Office Open XML blessed as a standard (given it would help influence adoption).
The whole thing was a mess and as a result Silverlight was born if anything as a way to buy some time around what to do in terms of solving cross-browser and cross-platform related issues (with a keen eye on mobility).
Silverlight did its job initially but in the end, the chaos that flowed from those days to today still is haunting us all.
My point is that by talking openly about the technology platforms the way I have, I am looking to cut through the political and chaos that is before us today. I am looking to instead help others diagnose the problem aloud as in order to solve a problem you first have to admit you have one.
WPF is dead. Ok. Now what. Do you go HTML5? Probably yes, but do you honestly think WPF being alive or dead have influence to this discussion – more to the point do you think this blog is going to send companies racing for HTML5 now? I would say if a decision is to go down the HTML5 path that thought was planted well before I arrived there.
Do you invest in iOS or Android? Again, go for it watch the dollars you were going to spend on HTML5 and WPF escalate given its not only foreign development practices to your existing .NET space but you probably will have to absorb the time to up skill or hiring of specialist teams to do the work (India outsourcing can only buy you so much).
If this blog is the catalyst to a WPF team getting the termination letters then you were cooked well before I arrived I’m just the 1000th cut.