… but I think this is definitely more than just about these two technologies. There has been some debate lately that I think really just is a firestorm that has been ready to go off for quite awhile now. And just for the record, I don’t really think this is a Html5 vs. Silverlight argument. First off, I don’t really think it’s a ‘versus’ here. It’s like saying ‘Rails vs. Flash’, they aren’t even in the same category in my opinion. It’s much more than all that, HTML5 is a totally different technology than Silverlight with a different agenda, etc.. Html is like the giant in the room here, used by technologist everywhere, in many different languages, platforms and technology stacks. The similarities of Html5 and Silverlight, in my opinion, basically stop after media capability for all intent and purposes. My sense is, the line *trying* to be drawn here is in ‘rich internet application’ capability. I don’t actually really see that here. So, bear with me, as I’m not the best writer – as you will quickly see 🙂
Let me state three concepts at play here and then look to see where it’s going:
1. I see a fundamental difference between a ‘web app’ and a ‘web site’. There are exceptions to what a web app is, ie. I consider gmail to be a ‘web app’, I consider Seesmic’s web interface as a ‘web app,’ the late to the show Office online, is a web app. Google has, outside of perhaps the recent Office Online capability, dominated the concept of a html/js combination to create rich internet apps in highly travelled websites. We see this again, in Gmail, and then in Google Wave. Certainly, Google Wave didn’t really make the big leap for the consumer, but technology wise, it was amazing what was done – with no plug-in required! Then of course we have Facebook, etc… There are some flashy websites that I see, mostly on gaming sites, automobile sites, Nike, etc… and I’ll explain why we aren’t seeing much shift to Silverlight below. I consider these flash-based apps to be more ‘media’ based that we see in the public web.
2. A core component of Silverlight’s initial releases (1.0, 2.0) were media streaming related. Playing video’s in a player outside of Flash. I believe the original intent of Silverlight was to compete for the media market. At the time of it’s inception, flash was dominating the media, from games, to movies, to educational clips, etc… Adobe was making big leaps with this. I can recall being out at the WPAFB here in Dayton where contracts were given out to produce educational and training courses all done in Flash. One core concept here, was Flash was running everywhere – and was sitting on something like 95% of every computer out there. Microsoft wanted a piece of that market.
I would say, the single most devastating thing that happened to Silverlight was the iPhone. I would say, no one really knew it would take off like it did… and the result of the popularity of the iphone led to others jumping into this market, ie.the release of Google’s Android,etc… where these two OS’s alone led to a world today where the browser is slowly not being the most used internet-device! There has been obviously attempts to run Flash on an Android… but even though it’s a great marketing thing, so far I’m not really seeing it be ‘the’ way to build Android applications.
Why is this important ? Well, for one, you can’t really get away with building Silverlight for your website unless you want to ignore that a whole set of people wanting to view your website won’t be able too! This is huge. The impact is so big, that it’s bled into point #2 above – where you can’t have Silverlight/Flash media on your site as well – this has led to all the major sites slowly moving to video players that work on these phones. Granted, Silverlight streaming video is great, but if you can’t watch it on all these devices and your dependent on a plugin that not everyone has, your starting to lose market share. I think I just recently read that Microsoft was taking some of their Bing maps done in Silverlight and using ajax instead. Let’s face it, Bing can’t afford to shun all the devices using Bing away because they might not have some plug-in.
Honestly, I can’t even tell you site today that I use that has Flex running on it. Not one. So it doesn’t really surprise me that I don’t see too much Silverlight apps running on public facing websites.
The WP7 is a new kid on the block, and you use Silverlight or XNA to build it’s apps. Hence the position now of Silverlight: use it for intranet based apps, probably in the enterprise – or building Windows phone apps.
Probably the only area I’d say Silverlight had a bigger picture was, once again, in the enterprise/business world, where you can deliver apps ‘out of browser’. At this point though, it seems WPF itself is a better choice – unless maybe your enterprise has a mixture of PC’s and Mac’s… because that was about the only sell. If your in an enterprise or business intranet, you can push out a 30 meg client WPF download as easily as a 12 meg Silverlight one, and you get miles more capability from your WPF app.
HTML5 as the competition here, isn’t really a direct relation to Silverlight. Let’s talk about it for a moment: it will work on everything except IE8 and below at this point. Well, that is a problem isn’t it – consider most enterprises are running IE8 or less, and IE9 will take forever to roll out. We have companies now still on IE5 and IE6 (don’t ask me why!). So, why is HTML5 even in the same conversation ? It’s a ways off I’d say. What people are excited about is the idea of reaching all those non-browser applications without needing to write a blackberry app, iphone app, android app, webos app, etc.. etc… Secondly, the excited around html5 is the idea of IE9, Chrome, Safari, Firefox – all running a new standard.
It’s quite obvious to me that html5 is part of the continual evolution of the web. In the early days we had static web pages, we moved to dynamic web, then on to the whole ‘web 2.0’ with ajax taking the lead. The popularity of the web has seriously exploded. Html5 is in some sense just the standardization of what many of us have been piecing together over the last years to make our apps as rich as possible due to the high demand from customers and consumers. Everyone thinks web apps should act like Gmail, Facebook, and Amazon.com !
On the flip side, I don’t think Silverlight was really that evolutionary. We already had all that in Flash and then Flex. It’s greatest claim to fame is it uses C#. I would suspect developers outside the ivory tower of Microsoft don’t really see what all the big fuss is about. When I talked awhile back to a former java developer who is big into rails today, and he really didn’t see why anyone would use Silverlight on the web – that scripting was more powerful. At first I wasn’t so sure, but more and more, I think he was right. Silverlight took awhile to mature and trying it in 1.0 wasn’t really that exciting, 2.0 was just enough to make you frustrated. Quite honestly, 4.0 is really the first take toward a platform that would be considered for applications in the enterprise in my opinion. It is certainly a much more complex beast than a framework like what Rails provides.
I think in the end, what we are seeing is just the evolution of the web grow to where people wouldn’t have imagined just 5 years ago.
I am currently working on a Silverlight based intranet solution. I just completed 2 web applications, one was intranet, the other was a public facing web site. I don’t really see the overall value that Silverlight brings. I don’t really see why to make it Silverlight, when it could just as much be a WPF app. Probably the only thing I see in Silverlight that WPF doesn’t provide is the capability to run on a Mac, and this application isn’t going to be run on Macs :) If I’m going to build a major intranet based application, I’d rather have a ‘real’ application. There are certainly still great applications being built for the desktop that to me far outshine what I’m seeing in a browser plugin. WPF has a click-once capability, and if installing 30meg vs. 12meg – well, that is nothing today, that difference is minimal. As far as the public facing site I did, there was no way it could be done in Silverlight. We didn’t want to have the possibility of customers not being able to install Silverlight, or even putting them through that experience. I’ve noticed a couple of eye-openers from Microsoft, outside of the whole ‘IE9 and HTML5’ buzz – and that is that one of the core pillars of Microsoft is their Office suite. To me, it said quite alot that they decided to do this in just html/js/css. If anything, here was, imo, the biggest potential win for Microsoft to really put Silverlight out there as a possible public facing, large application – combining the power of Silverlight with the cloud behind it. It made me really wonder – and I think it just shows the reluctance to try to using browser plug-ins on the public facing web for web applications.
It’s going to continue to evolve. HTML5 is one piece of that. Toolsets around it will start to flourish. Sencha for instance has a tool to create all the animation that we used to do in Flash to run in HTML5 without a plugin. Mobile is flourishing. Gaming is flourishing, technologies like Steam are able to deliver games easily to your desktop, Apple is going to soon have a Mac app store, and I’m sure we’ll see Microsoft eventually catch up there as well. Devices such as the iPad will be everywhere – next I’m sure we’ll see more and more intelligent embedded devices in our homes and in businesses. Above and beyond that we have a world of the Cloud that is going to take computing to another level – where all our services will be cloud based, hosted on these big scalable architectures – the new ‘mainframe 2.0’.
As I wrap this up, as I’ve gone longer than expected- I find it interesting that the best application I could find to pen this post was a previous version of LiveWriter – which is a windows based application, running inside my Parallels installation on my Mac :) I haven’t quite found a good rich internet based blogging tool that works as well as this one does. Ironic isn’t it 🙂