24

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?

What is your opinion and what do you think?

Elmex
  • 753
  • 1
  • 7
  • 10

17 Answers17

22

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.

Dean Harding
  • 19,911
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.

Chris
  • 5,643
  • 3
  • 29
  • 39
Zippit
  • 390
11

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.

David_001
  • 2,762
  • 2
  • 26
  • 27
9

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.

H.Y.
  • 611
8

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.

ocodo
  • 2,977
5

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.

Mason Wheeler
  • 83,213
4

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.

fjxx
  • 827
4

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.

Morten
  • 556
4

Here's an article from ReadWriteEnterprise about trending tech skills, as of May 2011:

http://www.readwriteweb.com/enterprise/2011/05/it-hiring-and-salaries-up---wh.php

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.

4

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.

For more details, here is my blog post:
http://rationalgeek.com/blog/post/Silverlight-vs-HTML-5.aspx

Also, Hanselman recently posted on the same subject: http://www.hanselman.com/blog/ShouldIUseHTML5OrSilverlightOneMansOpinion.aspx

RationalGeek
  • 10,077
3

It's just a guess, but with the rise of smartphones and tablets, especially those from Apple, Silverlight as a web technology doesn't seem to make much sense anymore.

user281377
  • 28,434
3

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.

2

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.

Todd Main
  • 439
1

Then what should microsoft do?
In this situation, they have to give support for HTML5+js as the maker of the most used browser.

But you can still go with Silverlight. There will be releases and support for this well designed framework no doubt.

Gulshan
  • 9,532
1

Not according to this artcile, they are streamlining it to make it easier to create cross platform code.

http://www.theregister.co.uk/2010/10/29/portable_library_project_silverlight_windows_phone/

Kevin D
  • 3,426
1

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.

Andrei K.
  • 127
1

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.

jmservera
  • 599