I was going to title this about HTML5 and Silverlight…

… 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. 

3. Silverlight continued to expand (3.0, 4.0) to take on a more Flex role.  Developers saw the potential of a new programming shift – the whole ‘it’s a subset of WPF’ and it’s WPF/E, and marketing started selling this as ‘more than just a media player’ – the ability to have a browser plug-in to have more line of business applications that ran in the browser.  Mostly this is for developers though I think.   Most end-users don’t really care if their form is filled out in a web page or some clunky Flex application.  If anything, the web has things we are all used to – like scrollbars that scroll, and normal fonts that aren’t blurry.  I want my Office application to run as an application – not as a browser plug-in (more on that later). Sure, we like effects, but let’s just say we can get some pretty good effects from jQuery for a user experience.   I’m going to stick my neck out here and say most of this is about the developers not wanting to learn javascript/css, etc… not really because it’s giving uses a better experience.  For every flashy Silverlight app, I can probably easily find 5 javascript flashy apps doing something quite similiar.   I do understand developers wanting compile time checking,etc.. then again, I think we can get some of that from libraries like Google’s closure – where javascript is compiled and minimized,etc..  I would add as well, that getting your Silverlight site to run isn’t trivial, as it uses asynchronous communication patterns, etc.. that require not only you to learn xaml, but also to really understand communication stacks, like WCF, RIA services, etc.. again, this isn’t trivial.  RIA WCF service is an attempt to make this better, and actually this whole LightSwitch tool to make Silverlight easier, well, for the novice it’s not a surprise!

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.

At this point, asa developer in Silverlight you are starting to get backed into a corner.   Up until a recent Windows Phone 7 release, Silverlight skills have been degraded to either building flash-like websites or intranet based websites.  Most flashy websites are still using Flash.  Mostly because you have a whole set of people who have Flash designer skills for what seems like forever now – they aren’t really interested in moving their flashy sites to Silverlight, it’s too much investment to get the same thing they have.  On top of that, Flash game developers are in plenty, and I don’t know many of them making a switch.  Again, why invest in Silverlight to make a parallel at best move.  Sure, the Microsoft developers say ‘ActionScript – eww yuck’ – but these people are educated on it, they know everything about it and it’s about the same as them telling you to drop C# for Javascript  🙂

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 thou
gh, 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 the other part of why html5 is seen as the next wave is because of the continual improvement in javascript/css development.  The tools are getting better and better, the browser engines are just continually improving – just look at IE9 providing hardware acceleration!  It’s really quite amazing.  Then, on top of all that, we have libraries like jQuery that really take the core pieces of javascript painfulness, and make it actually a usable powerful language.  Javascript continues to be the language of the web, and it’s certainly become more than the little engine that could. 

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.

From a developer perspective – I think the biggest issue here is that developers buy into a certain technology and try to make it the be all of all – they make alliances to a certain technology stack, etc.. as it’s really seen as an investment – the time and energy to learn the technologies.   However, there is no doubt things are just going to continue to change and evolve.  If you don’t do that, you won’t grow with it, and will be left behind.  That isn’t always that bad, just today I was at a place that is running much of it’s shop with VB.  It works for them and they are comfortable with it.   10 years ago I was writing C++ using MS MFC, at a company with Cobol and Powerbuilder developers.  We went quickly from VBScript ASP to .NET Webforms, from MFC to Winforms, to WPF Xaml.   Today we have MVC frameworks like Ruby on Rails, asp.net mvc,etc.. that using rich javascript ajax libraries.   We’ve all seen this coming for awhile, as client developers work to get their wares out to the internet, and internet developers work to make their wares as good as the client developers  :)  It’s a collision in the making, and quite a colossal one.

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  🙂


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s