Thoughts on WPF / Silverlight
While developing quite a simple Silverlight application a few months ago I noticed how lagish it can become. Now I came across this article, and after realizing I wasn't imagining things I'm starting to realize how immature WPF and Silverlight are. And that is without mentioning some severe bugs WCF has - and you can't use Silverlight properly without a WCF host.
Here are a few snippets from the article and comments:
How many times have you had to scale back you UI because it was too jerky? How many times have you came up with the “groundbreaking new UX model” that you had to scrap because the technology couldn’t handle it? How many times have you told a customer they require a 2.4ghz quad core to get the full experience? I’ve been asked by customers why they cannot deliver the same fluid UX they have on their iPad application using WPF or Silverlight on a PC with four times the horses. This technology may be good enough for line-of-business applications, but it falls short of being able to deliver a next generationconsumer application.
I get the same question from other developers and management: “why do phone applications running on dinky ARM processors feel so much smoother?”
Then I will see some cool HTML5 canvas example posted on Reddit, check the CPU loading it causes, and think there’s no way I could do that in WPF without 2x the loading. Even jquery widgets seem to behave more responsively than my WPF app.
My 2 cents: if you're looking to create a rich UI for the desktop, take a look at HTMLayout (.NET bindings here); I find the way XAML data bindings work too clumsy anyway. For web experiences, you should be all set with jQuery and HTML5; if you're looking to create games you should use Flash.