Skip to main content

Silverlight vs HTML 5 Debate – A Dilemma for CTOs, A Concern For .NET Developers, and May be a pointer towards Microsoft’s Internal Politics

image Alright, a lot of arguments are already going on in the twitter sphere about Microsoft positioning HTML 5 on top of Silver light. A lot of opinions are floating around in the blogosphere too.  My 2 cents here.

If you are not aware about the story, then I suggest you to read Mary Jo’s Initial post that says Microsoft: Our strategy with Silverlight has shifted based on her conversation with Bob Muglia - that kicked off the entire debate, and also read this post from Mashable that says “Microsoft Shifts from Silverlight to HTML”

I’m not a Silverlight ‘only’ developer, though I'm a Microsoft MVP in Client Application Development.  But I loved Silverlight for its potential - I used to discuss with my friends how big Silverlight is, and how it may become a platform for developing “write once, run anywhere” apps for web, desktop, mobile & handheld devices, IPTVs etc – especially with cloud in the background.

So, let us take a step back and have a look at what exactly is the strategy shift from Microsoft. All of us know that, for some time, Microsoft is projecting Silverlight as the “Cross platform, Cross device technology”

From Scott Gu’s Blog, From his Silverlight 2.0 Post that he posted some time back.

Silverlight opens up a ton of opportunities to build significantly richer client experiences that run cross platform and cross browser.

So, now Bob Muglia quoted as saying

“Silverlight is our development platform for Windows Phone,” he said. Silverlight also has some “sweet spots” in media and line-of-business applications, he said.

Ah, so what do you infer from that? If you are a Silverlight dependent guy, who makes your living by selling Silverlight trainings and content, you might say  “Don’t worry a bit, Silverlight is still there, Silverlight was never about Websites, you can still use it to build apps, you can still use it to develop for Phone”. That may be a consolation to some of the Silverlight developers. You can console them even more by saying - “Wow guys, cheer up, Silverlight is not yet dead as you think, there is just change in strategy. It was never for web”. But hold on, there are other grave concerns here.

A Dilemma for CTOs – The Business Angle, A Matter of Trust

The fact is, today, a number of enterprises already started investing in Silverlight for their next generation web applications. So Bob, what those guys are going to do now? Scrap the existing Silverlight projects, because Microsoft says Silverlight is not that cross browser/cross platform any more, and it is no longer the preferred platform for developing web applications?

I think Microsoft should have been more organic in their positioning strategy, because now most CTOs who invested in Silverlight for their next generation ‘cross platform/cross browser’ applications should be scratching their heads, and should be searching web to get some explanation for justifying their investments now hanging in mid air. Your clients are going to come and ask you - “Why you are building this on Silverlight, instead of HTML5? We need stuff in HTML5” – How you are going to convince them? I’ve already seen couple of tweets like “CTO is already reneging/disallowing #Silverlight for any client facing solution”. And even if you are not a CTO, you can understand what I meant. I want to point out in bold, It is a matter of trust. Now, any CTO or technology guy might think twice - before betting on any Microsoft technology in future.

A Concern for .NET Developers

One big charm of Silverlight was the ability to deliver user experience over a browser via the Silverlight Plugin, with out worrying much about HTML/Javascript/CSS. A ‘normal’ .NET developer would prefer to code more in C# and XAML, than embracing Javascript and CSS – mainly because of the tooling support available for C# and XAML in his preferred IDE. So, all the Silverlight developers out there might be also scratching their head – because their CTOs are scratching their head, and they don’t  know whether the Silverlight project they work right now is going to continue or not. Ah, I’m not joking – Just saw a Silverlight MVP tweeting “Where can I find a beginners guide to JQuery?”

A Pointer Towards Microsoft’s Internal Politics?

So, long point made short – Bob Mugila rubbed a couple of guys who invested in Silverlight the wrong way – Microsoft will lose the trust from at least a handful of F500 CTOs, and will receive the wrath of a good number of Silverlight developers who might want to learn HTML, JQuery and CSS in depth now!!

Oh Bob, why you did this? Especially when you don’t have enough tooling around HTML5 and JQuery, and you want your developers with you? Not because Silverlight is less adopted. Silverlight was well adopted as a development platform – most Microsoft developers were excited about Silverlight, most CTOs were planning to increase their investments in Silverlight. The end user adoption by internet users was 60%, compared to 96% of Flash.

Then? Is it because Microsoft felt HTML5 is the only way they can get into the Apple devices by projecting HTML5 more, by kicking Silverlight a bit down? Oh, wait, but No. HTML5 is not driven by Microsoft, it is not yet ready or adopted totally, their existing developers don’t have any know-how there, and Microsoft development environments don’t have any solid tooling available to build HTML5 applications.

Huh, Curios. But at least for me, the reason seems pretty simple – If Microsoft supports Silverlight too much, IE9 will lose it’s prominence. If Microsoft shops start building their applications in Silverlight, no body will care of upgrading to IE9, because you are not browser dependent. The IE guys may not need that to happen. Also, if Silverlight is promoted more, Silverlight based operating systems (like Windows Phone 7 OS) will be in demand for hand held devices more than Windows OS itself. So, whether some one in Microsoft is letting down their Silverlight followers and even betting on customer trust for protecting the job/importance of the guys in IE/Windows OS team? Or, if they have a better reason, there no better time to stand up and speak out.

So, what about Silverlight’s future?

Microsoft should stand corrected. Don’t let Silverlight go down under the carpet, don’t limit it just ‘for phone’ or only for other ‘sweet spots’. Commit towards investing more in Silverlight, to implement more features and tooling around them - so that it’ll stay on top of HTML5, as a value added platform. Say that publicly. Continue the efforts for making it cross browser and cross platform. Continue supporting Moonlight initiatives for Linux. Promote Silverlight based OS platforms (Windows Phone 7 OS) more – so that it can get more adoption for thin devices and IP TVs. Provide better support for Silverlight in Mac for OOB scenarios. Most importantly, don’t de-motivate your awesome Silverlight team.

Ok, those are few thoughts I have as of now :) Happy Coding!!

Update: Nov 02, 2010: Bob just came up with few good clarifications on the entire drama, Read this post from Bob Muglia


Other Must Reads:

Popular posts from this blog

MVVM - Binding Multiple Radio Buttons To a single Enum Property in WPF

I had a property in my View Model, of an Enum type, and wanted to bind multiple radio buttons to this.

Firstly, I wrote a simple Enum to Bool converter, like this.

public class EnumToBoolConverter : IValueConverter { #region IValueConverter Members public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { if (parameter.Equals(value)) return true; else return false; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { return parameter; } #endregion }

And my enumeration is like

public enum CompanyTypes { Type1Comp, Type2Comp, Type3Comp } Now, in my XAML, I provided the enumeration as the ConverterParameter, of the Converter we wrote earlier, like

Creating a quick Todo listing app on Windows using IIS7, Node.js and Mongodb

As I mentioned in my last post, more and more organizations are leaning towards Web Oriented Architecture (WOA) which are highly scalable. If you were exploring cool, scalable options to build highly performing web applications, you know what Node.js is for.After following the recent post from Scott Hanselman, I was up and running quickly with Node.js. In this post, I’ll explain step by step how I’ve setup Node.js and Mongodb to create a simple Todo listing application.Setting up Node.jsThis is what I’ve done.1 – Goto, scroll down and download node.exe for Windows, and place it in your c:\node folder2 – Goto IIS Node project in Git at, download the correct ‘retail’ link of IIS Node zip file (I downloaded the already built retail package, otherwise you can download and build from the source).3 – Extract the zip file some where, and run the install.bat or install_iisexpress.bat depending on your IIS Version. If you don’t have IIS in…

Top 7 Coding Standards & Guideline Documents For C#/.NET Developers

Some time back, I collated a list of 7 Must Read, Free EBooks for .NET Developers, and a lot of people found it useful. So, I thought about putting together a list of Coding Standard guidelines/checklists for .NET /C# developers as well.As you may already know, it is easy to come up with a document - the key is in implementing these standards in your organization, through methods like internal trainings, Peer Reviews, Check in policies, Automated code review tools etc. You can have a look at FxCop and/or StyleCop for automating the review process to some extent, and can customize the rules based on your requirements.Anyway, here is a list of some good Coding Standard Documents. They are useful not just from a review perspective - going through these documents can definitely help you and me to iron out few hidden glitches we might have in the programming portion of our brain. So, here we go, the listing is not in any specific order.1 – IDesign C# Coding StandardsIDesign C# coding stand…