Microsoft SilverLight (Photo credit: denetsnuff)
A year or so ago if you are a developer on the MS platform and you wanted to develop an RIA application, you automatically picked Silverlight as option 1. If Silverlight was not viable, then you started looking at other options like ASP.NET AJAX etc. But picking Silverlight was a no brainer.
Then along came HTML 5 and talk around the interactivity, graphics and Offline usage features of HTML 5. At around the same time, Microsoft started to put out kind of confusing messaging around Silverlight. SL 5 was making its way out, but HTML 5 support was also being added. Then Microsoft went silent on the future of Silverlight. That led to talk around SL getting the cut and everything moving to HTML 5.
If you are going to create an application that needs some kind of RIA features or offline, out of browser support, you are now at a decision point. Do you go with Silverlight or jump into HTML 5?
Well this post is my thought process around answering that question…
If you need offline access and do not want to write a desktop app (WinForm or WPF), then HTML 4 kind of gets ruled out. HTML 5 adds support for Offline Scenarios, but this is not fully supported yet. So there is a needs for offline support, as of now, you have only 2 options, a desktop app or Silverlight. (I am going to keep my scope constrained to Microsoft technologies as that is what I work with)
Another usual need is rich interactions (which led to RIA). Obviously currently with technologies like AJAX, JSON and web services, it is possible for HTML applications to be a lot more interactive than before. HTML 5 does take this forward a lot and promises a scenario where you can get really interactive applications running in the browser.
The problem I see with HTML 5 is that if you are planning to build an enterprise application (keeping it simple as you have control on browsers you will support inside the enterprise) then in the short term, if there is a need for offline support or high interactivity, then the only option is Silverlight. Ok, what about support then, since MS is strangely silent on Silverlight's future. Well, Silverlight is supported till 2021, and most enterprise applications have a life time of 5-10 years. So even if SL is going to go out of support in 2021, there is a high chance that you application has already go through a rewrite cycle by this time and you could have chosen an alternative, maybe HTML 5, for the rewrite.
So in the short term, if you are building a new application, then do not ignore Silverlight. It is a very viable option till HTML 5 stabilizes and is widely supported (at the same level by multiple browsers) or by that time, there may be a Silverlight 6, who knows!!