Recently there was an interesting thread on a LinkedIn WPF Group about the future of WPF. The originator sparked the discussion by raising the question if WPF was going to be replaced by HTML5. Many WPF developers shared the opinion that the introduction of HTML5 did not herald the end of WPF. I agree.
From this I did a quick Google search on recent WPF news and ran across a blog posting by a former WPF disciple. The thrust of his article was that WPF has not evolved in the six years since its introduction. He then proceeded to highlight what he felt was wrong with WPF. This included poor designer support, ugly syntax, complex binding expressions, etc.
The author espouses the virtues of ASP/MVC as a platform that is really going places. Having done 10 years web development, including classic ASP and ASP.Net, I thought this was amusing. Even more interesting that I left web development shortly after Microsoft released WPF; 10 years was more than I could stomach. I've always felt that web applications were always attempting to do things that the platform was never designed to do, in short it was a kludge. Is it getting better? Sure it is, but a leopard cannot change its spots.
The comments section of this blog post quickly filled up with like-minded developers for a good old-fashioned WPF bashing. Comments ranged from "WPF hurts my brain" to "MVC is sooo cool, and WPF ain't". A small minority cautiously defended WPF and what it could do.
What struck me about these comments was how self-centered the viewpoints were. The choice of technologies and preferences were largely based on them - what made their life easier. Almost no one focused on the end product or the end user, or how they were affected by these technologies, it was all about themselves.
I challenge any of these WPF-bashers to sit down with an end user and present to them two applications: One, a properly designed WPF desktop application; and Two, an equivalent ASP.Net/MVC application. Then, after using both ask the user which they prefer. I would put money on the WPF application. Why? Because WPF is a superior user interface framework over HTML.
My heart goes out to office workers who have been forced to use web applications day in, day out. The truth is - web apps SUCK. And everybody knows it.
I have been in countless design/planning meetings for new internal applications and there rarely is a discussion about whether to go down the web app route or desktop route. Why? Because often it is assumed that web apps are more cost effective, easier to maintain, easier to deploy. No one ever says the reason for the decision is HTML/ASP's vastly superior UI capabilities or how it delivers an excellent user experience. Why? Because - web apps SUCK. And everybody knows it.
Why do I use WPF over HTML/ASP? Because of the end product I can create; because of the effect that product has on the end user and their work. I don't pick a technology because it is easy for me. I pick a technology that is going to assist me in bringing about a superior valuable product for the end user. My goal is to change the way my users work, to assist them in performing their job, to make the whole experience more efficient and enjoyable.