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.
Sent: Friday, February 18, 2011 12:00 PM
To: Joe Stagner
Subject: Html 5 causing Silverlight Dev to End?
I heard from someone that Html 5 is eliminating the need for Silverlight, such that Silverlight development might stop. Any truth to this???
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
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
- Read Scott Guthrie’s Response back in December.
- Read Scott’s Silverlight 5 announcement.
- Watch the Silverlight 5 Keynote.
- Listen to Scott talk with John Papa about Microsoft’s Silverlight Strategy
- Listen to Tim Heuer talk about the Silverlight team’s ongoing work
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
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.
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.
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.
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.
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.
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.