Recently I have read some articles/blogs/comments about the development and history of WPF and Silverlight. In some forums many developers and users criticize the performance of WPF applications (for example Visual Studio 2010). Actually the market share of Silverlight in comparison to Flash is not very high. At PDC 2010 Bob Muglia said something like "our Silverlight strategy and focus going forward has shifted...." and Microsoft wants to push HTML5 in the future.

Additionally, Microsoft has announced HTML5 being a core part of the Windows 8 and Windows Phone 8 ("Mango") platforms.

Recently I have started learning Silverlight and now I must ask myself, if I should continue investing time in learning these (in my opinions) very nice and powerful technologies!? Does they have a future? Does (Windows) desktop (client) applications have a future? Does so called "Rich Internet Applications" have a future? Or will HTML5 become the "absolute truth" in software development?

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
If this question can be reworded to fit the rules in the help center, please edit the question.

1

I think VS 2010 runs way faster than VS 2008. My feeling so far is that, if you follow a reasonable pattern like MVVM, WPF and Silverlight can perform better than traditional Winforms or Webforms. YMMV, but working on a platform that promotes a cleaner pattern (less coupling, etc.) results in better apps overall, including performance. Performance often has much less to do with the technology used, and a lot more to do with the patterns or anti-patterns used.
–
Morgan HerlockerJun 2 '11 at 17:36

17 Answers
17

Silverlight + Flash vs HTML5. Oh boy. There's been a TON of discussion around this one.

Let's focus on Silverlight (though many of the same arguments can be made for Flash). Is it dead in Microsoft's eyes? NO. Just watch the recent Firestart event, specifically Scott Guthrie's keynote (Plenty of new features coming):http://www.silverlight.net/news/events/firestarter/

What it gives you:

The ability to write Internet apps (and desktop if you use Out-Of-Browser) in your favorite dotNET language, today.

Give your users highly interactive and rich interfaces across all major browsers and platforms in a consistent manner, today.

Access to advanced APIs on the client (this is a fairly weak argument as JavaScript always has new libraries being added and it is pretty awesome).

Windows 7 Phone programmability - Silverlight is one of the two primary "native APIs" to the WP7. That's one device at least that you can build apps for natively.

The downside:

Mobile - There are a ton of mobile devices that Silverlight will NEVER be on. Not gonna happen.

Microsoft - Let's face it. Lots of people will refuse to use it just because it's Microsoft. Some of your users will refuse to install the runtime because it's Microsoft. It's dumb, yes, but it's a fact.

Oh there are others. Do I really need to iterate all the down-sides?

HTML5 will answer many (if not all) of the downsides we can think of for Silverlight. But what are the downsides to HTML5:

It's not a finalized spec. Yes, many browsers implement a lot of features of HTML5, but many browsers don't, or many do it in different ways. And even if they do implement it today, there's no guarantee the spec won't change over the next few months/years.

It's not 100% ready today. Again, there is lots of talk about what HTML5 will bring, someday. But for a lot of stuff, it's just that. Talk. While some CORE stuff has been done (animation, graphics, etc), there are still a lot of pieces that are WAY up in the air and nowhere near being standardized on every implementation yet (hardware API access for devices like accelerometers for example). You can start using some of these pieces today, but you will be locked into certain browsers, and again there is no guarantee you won't have to change your code as the spec approaches finalization.

Browser consistency - If you think HTML5 is going to be exactly the same across all browsers/devices then you are delusional. Every browser will implement it slightly differently and you will need to have code to detect the browser and insert the appropriate "interpreter". It will be easier to detect the browser I'm sure, and I'm sure libraries will help (like JQuery does today), but it will still be an issue.

App Stores - The fact is that no one is going to buy your HTML5 app like they do with Apple apps today. If you want user's to buy your app through an App Store then you are going to need to write to the device's native library. Again, there's been a ton of debate around this issue, but the fact is that all modern mobile devices provide browser access and browser-based apps just don't have the appeal of a native app. Apps built today using HTML/CSS just don't have the appeal that their native counterparts do.

The way I see it, Silverlight gives you the "rich client" ability today. You don't get access to every device (especially mobile), but for certain classes of apps it's a great choice and will remain so. HTML5 will be a serious contender very soon and I strongly encourage everyone to learn it. You WILL need it.

I think if someone is still in the educational phase of their career, Silverlight and Flash will be playing a much smaller part in their future re:Web/Rich Internet apps.
–
SlomojoDec 19 '10 at 22:13

1

Sorry. But I just don't agree (but of course this entire answer is based on opinion. There really isn't any way to know the future). A new language shouldn't take any more then a few months to get a good grasp on (not talking mastering here) and a lot of people are betting on both Silverlight and HTML5 being major players for years to come. If you are a Microsoft developer and doing rich internet apps then Silverlight needs to be in your toolbelt, though definitely not your only tool.
–
ZippitDec 20 '10 at 3:34

2

@Martin - Silverlight will also run on Mac. Moonlight allows certain Silverlight apps to be ported to Linux as well.
–
Morgan HerlockerJun 2 '11 at 17:26

1

-1 for Browser consistency. Browsers have bugs in their implementation of HTML5. All popular browsers bar IE tend to fix those quickly. HTML5 will be consistent. As for app stores there is PhoneGap. I know the answer is 6 months old but it can use some modernization to stick with the times.
–
RaynosJun 22 '11 at 12:23

I think many people look at Microsoft and they see one gigantic entity. That's not really how it is, though. Microsoft is more like dozens of small teams and it's really only the name "Microsoft" that ties them together. So while the IE team is focusing on HTML 5 and pushing that as much as they can, you can bet the WPF/Sliverlight team is just as hard at work on WPF and Silverlight.

not to be snarky... but I'm sure there was a team VERY hard at work on the Kin, seriously. The noise is getting louder and harder to ignore... check out riagenic.com - I was floored.
–
MartinezOct 31 '10 at 5:41

5

@Martinez: I strongly recommend taking anything Scott Barnes has to say with a whole shaker of salt. I've been following Mr. Barnes verbal diarrhea until lately, when I removed his blog from my reader and unfollowed his Twitter account. There's too much acrimony and bad vibe in his messaging. I think he's a classic case of sour grapes (former Microsoft program manager edged out, likely at least in part, because of his clearly bad attitude.)
–
DaveNov 4 '10 at 4:16

Silverlight for use on the web has never really taken off - however, Microsoft is pushing hard on Windows Phone 7, which uses WPF/Silverlight for apps, so Silverlight itself is not being killed off, its just the focus of where it's deployed which is changing.

Maybe "killing" is a bit of a strong word. I think - and it has been reported widely (Mary-Jo Foley, etc.) that Microsoft is shifting their focus from Silverlight to HTML 5. I think Silverlight will continue to be the the platform of choice for super-rich web experiences and maybe video-heavy stuff (for example, what they did with the NBC online coverage of the 2010 Winter Olympics). I also think that we'll see Silverlight increasingly in the enterprise "space" - instead of delivering "fat" clients in WPF or WinForms, I can definitely see Silverlight, esp. running out-of-browser, finding a home in enterprise software development.

From a strategic perspective, I read a post with a great take on why Microsoft is suddenly so interested in HTML 5. For a start, it gives them an "in" to the iOS market. Secondly, it shifts the game to an area where, relative to Apple, they have a huge advantage - the Cloud. Anybody who's used Apple's MobileMe service can attest to the fact that, while Apple does a lot of things well, currently the Cloud isn't one of them.

I think as a "Web" technology, you might argue that HTML, JavaScript and CSS are the skills you should focus on going forward. It's a set of technologies that will give you access to almost any platform (including, quite notably, mobile). That said, while you may see less and less Silverlight in web applications, I don't think it will go away anytime soon. Also, bear in mind if you're a new programmer this won't be the first or last shift in technology you'll experience. Go with what gets you excited!
–
H.Y.Oct 31 '10 at 19:20

I think Silverlight is pretty much game over now (market share wise) since both Flash and Silverlight will be giving way to HTML5 in the next few years.

WPF on the other hand is likely to stick around (even though the performance concerns are valid) Windows Vista / Windows 7 are both heavily invested in WPF and it will likely be the desktop strategy for Microsoft for the next few years (at least), especially considering that VS & Expression are written using WPF.

But, of course that's the Desktop strategy, and it's growing clear that most applications that people use day to day are going to migrate from the Desktop to the Web (if they haven't already) as HTML5 browser support becomes ubiquitous. WPF is still (arguably) the best choice for applications which require the Windows Desktop and .Net but these are likely to be niche versus web based apps which will be the mainstream.

Other than HTML5, mobile platforms (read: Android and iOS) are likely to be the growth areas for development for the next few years.

You obviously didn't see the Silverlight Firestarter just a few weeks ago. Microsoft announced a new version of Silverlight for next year. Still plenty of dev going on in Silverlight. The vids can all be seen here: silverlight.net/news/events/firestarter Check out Scott Guthrie's keynote for an idea of what's coming in Silverlight 5
–
ZippitDec 19 '10 at 21:20

2

I obviously didn't! (I've edited my answer to remove that gaff.) There is certainly room for Silverlight to be used while HTML5 ubiquity has yet to settle in, but it's a losing game from a developers point of view, you can sell Silverlight development today, that's a given, but in a few years, your market is going to dry up.
–
SlomojoDec 19 '10 at 21:24

2

With the proliferation of native apps on so many platforms, I'm surprised that people are still crying for the death of desktop/native development. Web services + native or web clients = better UX and reach all around IMO.
–
Steve EversJun 2 '11 at 19:43

This is not very surprising. With all due apologies to all the devs who picked it, Silverlight has been a real joke from the beginning. No one's using it on their websites. The target market is saturated by Flash, and three and a half years of Microsoft pushing their alternative hasn't led to widespread adoption, and now that HTML 5 is coming out on all the major browsers, the market really won't bear three competing, mutually incompatible solutions.

Now Microsoft is saying they're going to focus on it as the standard for Windows Phone 7 programming. This is the final nail in the coffin, since by all signs, WP7 is looking to be a huge flop.

I'm not ready to simply dismiss WP7 as a failure. I hope it does well (FD: I have and love a Droid). The market needs more competition, imo. IF WP7 is a flop, I don't see why Silverlight would be kept alive. I'm guessing many have their entire careers riding on what happens beginning Nov. 8th.
–
MartinezOct 31 '10 at 16:17

2

I never considered Silverlight to be a browser based technology, really. I don't think many people understand Microsoft technologies. They are business focused and mostly consumer friendly. Apple is consumer focused with little consideration of business and Google is geek friendly and kinda consumer friendly. With that in mind Silverlight makes sense.
–
ElGringoGrandeMay 12 '11 at 14:53

It does sound like that there has been a strategic shift inside Microsoft, and at this time Adobe Flex/Flash will continue to be the leading technology to work with for RIA applications. It looks like HTML5 will be broadly adopted and I personally would switch over to experimenting with it.

I'd say that HTML5 is valid for as long as you want to produce applications that are targeting as many possible customers as possible.

Should your application require internet access? Should it use the native cababilities of the computer? (files, monitoring, etc). Does it require sharing of information?
All of these questions and more to it guides wether or not you can or should produce your applications as a Rich Web App, or if it should be developed as a client-based application.

There is definitly a place for WPF applications in the future, especially in the near term. Silverlight seems to be the target for sandboxed development such as phones, but we'll see how that train goes. But at the start of any development you should look at the requirements of the application, what you want to achieve and select your technology accordingly.

Now however I'd like to point out that there is no reason not to learn Silverlight or WPF, even if it is not what will be the major player in 6 or 7 years. If there is one thing I can tell you for sure, then it is that technology changes. There will be a HTML6, there will be a next WPF, and you will have to learn more than one technology if you truly wish to understand the first one.

Just start to learn one of them, and you can always switch and take what you've learned with you to the next technology.

I wrote a blog post about this very topic, because it kept surfacing within my team since we use Silverlight. The short answer is: Silverlight isn't dead. HTML 5 will be a better choice for reaching more devices and more platforms. But Silverlight is more feature rich and it is currently far easier to develop a Silverlight app than a HTML 5 app with ASP.NET MVC. The tooling for Silverlight is magnificent compared to the almost complete lack of tooling for HTML 5 from Microsoft. So it depends on your environment and your target audience on which is the better choice.

Silverlight overtook Flash. Silverlight jobs experienced 12.6% growth in the past three months, while Flash experienced just 2.2%. Silverlight also surpassed Flash in total number of jobs, with 982 job listings for Silverlight and 646 for Flash.

And

Microsoft professionals are doing
well, with strong growth in C#,
Silverlight and Azure.

Silverlight is probably best described as Microsoft's answer to Flash. It's the same problem domain, so what makes a good Flash game will also make a good Silverlight game.

No one really knows the future. All I know at this moment is that not everything makes a good web-application, and not everything makes a good desktop application. This much I do know:

WPF will probably stick around for a while.

Silverlight is in its infancy, so Microsoft is going to pimp it for a while. I've heard rumors that it's nicer to work with than Flash, but never having messed with either, I can't say.

HTML 5/CSS 3/JavaScript is supposed to be the bees knees, but won't be ready in a truly meaningful way any time this decade. (Assuming the comittees approve it before 2020, it still needs full browser support and that takes time).

To choose the platform you are going to pursue you need to get some fundamental answers:

Who are your customers? (i.e. what's your target market?)

Are you planning on making money? How?

What's the time-frame you expect this app to be live before you upgrade it and/or replace it?

If you are looking longer than two years to get your first two versions out the door, chances are you are looking too far down the road. Knowing your target market will help you understand if a platform is even viable. For example, many mobile devices do not support any kind of plugin in their tiny browsers--that means not only no Silverlight, but no Flash either. But if you are not targeting mobile devices, it doesn't matter to you.

I think it's all just conjecture at this stage. With the plan for an App Store built into Windows 8, the likely app technology would be Silverlight (given how it can be sandboxed in OOB, etc.). SL is likely to be around for years to come.

The other thing to consider about HTML5 is that the shift mentioned may be away from current crummy non-standard IE programming, not away from SL.

That is why we still doing good old-school WinAPI programming using Delphi. Better spend time for task solving than waste it on so called "new technologies". All that "new" in .NET existed a long before it in Borland Delphi. Personally, I think that technology should stay around at least 10 years before one should try it and depend on it.

Hmm. But if noone is using technology than it dies so there is no new technology. And 10 years in technology is eons. 10 years ago Windows 2000 (NT on desktop) was release - it means we should start using Windows 2000 with HTML 4.01. While waiting some time before adopting in production enviroment is good, 10 years seems a bit too long unless you write Nuclear or Satellite control system - but 1. I hope they are not written using WinAPI 2. they still may benefit from new automated-testing suit in addition to older technologies).
–
Maciej PiechotkaOct 31 '10 at 17:26

I'm quite sure Microsoft will not kill Silverlight in favor of HTML5, at least not in brief :P. In a recent event with Paul Cotton we discussed that, and we all agreed that the main difference with HTML5 is: the tools, VS.Net + Blend are great and unbeatable tools by the moment, this is a very big advantage and there are lot of programmers that will continue develop on Silverlight and the many other .Net technologies.

Anyway, when the Vista gadgets appeared and they were done in HTML, nobody thought that Silverlight was dead, we found the way to put silverlight inside them... so I assume that we will be able to put our Silverlight stuff into the new and awesome Windows 8 interface.