Silverlight 5 vs. HTML 5
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.
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.