Infosys Microsoft Alliance and Solutions blog

« Library Functionality for Media Processing | Main | More on Kinect »

Silverlight 5 vs. HTML 5

Post PDC, this is a topic that has attracted lot of discussion. While it isn't completely an apple to oranges comparison, since both Silverlight (SL) and HTML are web/browser related technologies, to me it isn't a simple apples to apples comparison as well. I think this may more be like having fruits (HTML) vs. having a fruit salad (SL). While you have raw power with fruits, having the salad means that already effort has gone in the preparation (selecting right fruits, washing them, cutting them, arranging them, putting additional spices and all that and serving them) and you can now just sit back and enjoy it, without doing the hard work yourself.

Furor on a new technology replacing earlier isn't new on Microsoft platform. C# will replace C++, .NET will replace COM/DCOM, WPF will replace WinForm, ASP.NET MVC will replace regular ASP.NET and so on. Some of these have materialized to some extent, while in most cases all technologies continue to exit. When Microsoft first released .NET it had created lot of confusion as suddenly MS had started calling all Servers as .NET Servers and people were confused about what's .NET in these Servers? A little later MS changed the naming strategy to Enterprise Servers and there was better acceptance. While Silverlight is relatively new, .NET itself is in its 10th year of existence and it won't be surprising if MS will bring something new at this time to replace .NET. With that wave, Silverlight may get impacted anyway as it is built over .NET. However has it become useless already? I don't think so.

HTML 4 became a standard back in 1997. It is been a while since HTML 5 has been on the table for discussion and while still in draft stage, it is picking up fast. As we all know HTML really is the way the browsers render the content on client side. Each browser vendor typically extends the base HTML standard and with their own tags, which ends up breaking the cross browser compatibility. ASP.NET claimed cross-browser compatibility but it remained more of a claim and had ground challenges in making things really work.

In time people who had liked ASP.NET's code behind and eventing model a lot, now started to dislike the HTML that ASP.NET rendered. Coupled with this the perennial view state problem and people were asking for improvements. Come ASP.NET MVC and everyone thought that it will completely replace normal ASP.NET way of programming. But even with version 2 of MVC out there, people are not finding it easy to jump onto it, due to limited UI control support available. So while people got the raw power to control the HTML that got rendered and addressed cross browser and accessibility needs, the programming suddenly became lot more difficult. With great power comes great 'programming' responsibility !!

On the other side Silverlight addressed the evolving RIA needs that helped address the ever increasing rich content needs by the providers and consumers. Rich content, media, styles, effects, look and feel... you name it and Silverlight brought support for all of this. Of course it has been evolving but at break neck speed and within 3 years we have seen 4 versions. SL 1 with mainly java script support came out in 2007 (earlier code named WPF/E). SL2 (essentially a rename of 1.1) brought lot more of .net support along with many more controls and support for DeepZoom. SL 3 released during Mix09 continued to add to the feature set and SL 4 (beta during PDC 09) released a little after Mix10. We should be looking at Mix11 for announcements for SL 5.

SL has been the cross platform, cross browser and cross device strategy from Microsoft. While it succeeded pretty well on the first two, it didn't penetrate much on the cross device part. In fact MS itself got it working on their mobile devices only with Windows Phone 7, which of course has native support for SL4 and XNA framework. With increased mobile application availability and wide acceptance of iPhone and Android, MS may be left behind as Windows Phone 7 is only just coming out and will a while before there is better acceptance.
 
At this time if anything truly is cross browser, cross platform and cross device, it is HTML, which is supported by everyone and all devices. So as long as your technology helps generate HTML output you are in the game. With SL, this wasn't really true. While SL runs in IE, it runs on the .net engine and has little direct HTML interaction other than the object tag which helps insert it on the page in the first place.

It is hence really not surprising that MS is shifting its strategy a bit in favor of HTML5. As clarified by Bob Muglia post PDC, there isn't anything that is saying that SL5 is not going to happen. It is only that MS will now focus on HTML5 as a way for cross browser, cross platform and cross device strategy. SL will continue to evolve and will still help build compelling RIA applications and is still the platform of choice for building Apps for Windows Phone 7. SL additionally is a client side platform unlike HTML5 which mostly will be powered by some server technology generating HTML5 output. It will have richer client side libraries as well but it will still be a while before it can parallel what SL already offers.

Some additional related information is available here, here and here.

Summary: Silverlight has lot of things going its way, so it isn't going to fade out anytime soon. HTML5 will take more time (couple of years) to become a standard and we sure will see more SL versions by then.

I will keen to hear your views on this.

Comments

I think Silverlight will always be the platform for innovation so I don't think its going anywhere. By the time html gains traction there will be new approaches, technology and better platform tooling for Silverlight that leave html 5 looking as old as html 4.

Atul,
nice (any yummy!) way of comparing SL vs HTML5. I love fruit salad, but what if my favorite fruit is missing from it? Then I have to add that fruit manually to modify the salad that comes out of box. That's what exactly we are doing to take advantage of both, ASP .Net and Silverlight.

New Technology/Technology Upgrade is supposed to make developer’s (and everyone above) life easier, but on the contrary the reverse is happening. People are trying to use mix of technologies to fulfill wide spectrum of requirements. It is good for end user, but sometimes it complicates the project too much.

Great summary on the mobile/cross platform perspective.

The way I see it :

Assuming the next version of HTML is y and Silverlight is x,

x feature set = y feature set + a few thousand more.

If y satisfies your need, use it; simple.

@David, Silverlight will continue to evolve and live for many more years. This I also agree with. However I also think that after some years, just like all other technologies, Silverlight will also change so much that it will be then called with some other name and will bring in new innovations.

@Nitin, thanks for the equation. Agree with you.

@Laxman, mix and match will always happen. As requirements and projects get complex, I don't think any one technology will be able to do it all on its own.

One problem I see with SL is that of user acceptance. Flash has been around for several years and people simply download and install the plug-in. Microsoft needs more websites like Netflix to adopt SL so that the plug-in gets widely distributed. Another way is that MS embed IE with SL plug-in.

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

Please key in the two words you see in the box to validate your identity as an authentic user and reduce spam.

Subscribe to this blog's feed

Follow us on

Blogger Profiles

Infosys on Twitter