In a world NO, NO, NO !

I got this email from a developer that I have corresponded with for several years.

I know this guy to be smart and experienced, so this is not a “newbie” question but rather an example of how difficult it is to understand the new technology that is constantly emerging in the software development industry and what they mean for our future work and choices.

From:

Sent: Friday, February 18, 2011 12:00 PM

To: Joe Stagner

Subject: Html 5 causing Silverlight Dev to End?

Joe,

I heard from someone that Html 5 is eliminating the need for Silverlight, such that Silverlight development might stop. Any truth to this???

Phil

In the interest of transparency, I don’t work in in the Silverlight team. I’m not even the Silverlight guy on my team, but I am a technical strategist and have been developing web applications since before Windows even had a TCP/IP stack !

What follows is MY opinion and may not exactly “jive” with Microsoft Official position.

> Note to Tim Heuer, Hey old buddy – I’m sure you’ll email me if I’m WAY off base Smile 

HTML5 is interesting – period.

I’m building developer guidance right now using HTML5, but HTML5 is NOT a Silver Bullet.

Certainly there are some scenarios for which HTML5 feature will displace the need for a RIA type plugin like Silverlight.

In most cases though, I don’t think this is true.

What HTML can “do” – Silverlight can do really well !

In my humble opinion,  I’m not sure that we (Microsoft) have done a great job demonstrating the high end of what can be done with Silverlight. The more advanced the application scenario, the more Silverlight excels.

Late last year there was a lot of noise on the web suggesting that Microsoft was disinvesting in Silverlight.

I know it’s hard to believe, but everything you read on the internet is not necessarily true Smile 

So, what are some of the scenarios that I personally would require Silverlight.

Audio / Video

Yes, I know, you can play video with HTML5, welcome to the 1990s Smile 

I need to do MUCH MORE than just “play” video.

Example: Completely separate from my job at Microsoft I create training and educational video for athletes. I want offer that video on a web site but don’t want that video to be swiped, edited, copied, etc all over the web.

HTML5 does not support DRM or other media related security initiatives so remove most of the media produced by the Movie, Television, and Training Industries from use with HTML5 (as well as mine.)

What’s more, I need to do A LOT MORE then just play video. I want to record usage data, allow user annotations, insert context specific ads, links, etc, and much more which means I WANT a custom player that can make my user’s video experience ROACK.

Performance

Historically, most browser applications are really single tier. All the executable logic runs on the server and the browser just displays the results.

We’re finally starting to catch up and architect web applications with “Federated Logic”.

It only makes sense. Lets run as much code as we safely can in the browser so as to off load the required processing power from our servers to the clients computer.

HTML5’s facility to enable this is present, but inferior.

True, JavaScript execution has been a point of focus in HTML5 compliant browser implementations and HTML5 has “Web Worker” Processes. (It’s acually a seperate spec – http://www.w3.org/TR/workers/)

Web Workers, in particular, are very interesting but require certain restrictions in terms of interacting with the User Interface. This is another example of how HTML with fit well in certain scenarios and not others.

There is also the issue of source code protection which is virtually impossible in JavaScript.

Communications

HTML WebSockets was my favorite feature. Unfortunately it looks like WebSockets won’t make it into the final HTML5 specification. In fact – it’s a whole different spec http://dev.w3.org/html5/websockets/. That means it’s implementation may vary from browser to browser if it gets implemented at all.

Silverlight has a complete network stack today and it works in all the most popular browser currently in use. 

Off Line

HTML5 has Off-Line application considerations.

An offline application cache and local storage will suffice for some applications but if you think about such usage scenarios a little further things start to get more complex.

For example, if our application implements a rich user interface using AJAX techniques, as users today expect, what happen to those interactions when the user is off line. Can you really just “turn them off”, or do you need to provide a set of disconnected logic?

We might be ale to do this, but if our application will be use significantly off line (as well as on) Silverlight offers significant advantages. (If you haven’t toured Silverlight recently Silverlight now has a strong Out-Of-Browser capability (meaning run as a desktop app, no browser involved) .

Touch / Multi Touch Interfaces

User interaction continues to evolve and Computers, Tables, and Dedicated devices often lend themselves to Touch or Multi-Touch User Interfaces. Lets plan ahead, shal we?

WebCam / Microphone

Tack specific applications, social networking, etc. ?????  Cool.

And More.

Work with Ink? call the Operating System’s API ? Silverlight.

And lest we forget. Silverlight is THE applications development model for Windows Phone 7 applications (though if you’re building games you may be using XNA)

Windows Phone 7 is enjoying rapid success and growth. Not only does that alone insure the continued evolution of Silverlight, but the ability to share code between your Phone, Browser and Desktop Applications.

So no Phil….

HTML5 will enjoy enthusiastic adoption but will not eliminate Silverlight. In fact, as HTML5 helps us push the edges of web applications design and architecture, the opposite might be true. We may find ourselves envisioning more and more functionality for which Silverlight is the ideal enabler.

del.icio.us Tags: ,