Skip to main content Skip to footer

Silverlight ain’t dead yet, folks!

Summary

  • HTML-based technologies are poorly suited for writing secure, responsive data driven applications.
  • A standard cross-browser/cross-platform implementation of HTML/CSS/JavaScript—we’ve heard that before.
  • By design, not all apps need to run cross-platform/cross-browser.
  • Silverlight provides a standard platform with a known set of capabilities.
  • Adoption of HTML 5 in the consumer marketspace is a no brainer. Silverlight will continue to live in the corporate world for some time to come.

Article

Microsoft's recent announcement that is shifting its cross-browser/cross-platform strategy from Silverlight to HTML 5 has created quite a stir. To paraphrase Mark Twain, reports of Silverlight's demise are premature. My experience in enterprise and the field is showing that Silverlight has gained considerable momentum this year, and I don't think that momentum is going to end soon. It’s important to keep in mind that not every application is designed to be cross-browser/cross-platform, and that is not due to any short-sightedness of the designers/developers.

In the consumer space, cross-browser and cross-platform is a necessity, and we can expect HTML 5 technologies to reign supreme. Major sites like YouTube and Facebook are already on their way, and they need to. These sites have no idea the combination of browser and OS that will be visiting. This does put a great deal of pressure on the development staff, and I’m sure most of them can recite the litany of browser specific workarounds they’ve had to use. The promise of standardization in HTML 5 sounds great, but that promise has been around for a while and has yet to be realized. I’ve been building websites since 1995, and back in the day, we had Netscape Navigator, NCSA Mosaic and Internet Explorer. Each browser had its own extensions and quirks with HTML 3.2 and JavaScript1, and IE/Firefox/Safari/Opera/Chrome continue to do so through HTML 4 and CSS 3. It was these browser differences that pushed a lot of the processing from the client onto the server, leaving the browsers to be display engines and nothing more. This meant applications were fairly easy to develop, but the user experience left a lot to be desired—posting back anytime data needed to be refreshed never let information workers “get in the groove” as they were working.

The design of the Internet has some major shortcomings, too. Thanks to some clever workarounds, we’re using it in ways it was never designed to be used. The Internet is stateless, and has no concept of authentication or security. Our workarounds include browser cookies, session state managed on the server, and page viewstate. As good of a job as these do, they’re still workarounds, and still have their own issues.

What application developers really needed was a standard platform to develop applications which provided a rich user experience, similar to a desktop application, with the ease of distribution of a web application. Flash paved the way, and then came Silverlight. Over the past several years, Silverlight has evolved from a simple media streaming technology to a rich client framework, which can be hosted on the desktop. Silverlight is shaping up to provide the best features of both the web and desktop worlds.

With Silverlight, we developers have a consistent platform with a known set of capabilities. Applications have a central distribution point, and can be run outside of the browser once installed on the client. Applications are also self-updating. Silverlight handles its own session state, and locally caches datasets, offloading concurrency issues from the database or DAL to the client framework.

The capabilities of most client machines are grossly underutilized, and offloading a lot of the work from the server to the client has its advantages. With a full dataset on the client, users get the feel of having “live” data. And while our app are on the client, they have a persistent knowledge of the user’s identity, and we can interface with Active Directory, meaning we application developers don’t have to roll our own roles mechanisms.

As a reference point, look at the foothold Windows XP still has in the corporate world2. Although Silverlight isn’t completely cross-platform, it is compatible with about 99% of all the systems found in enterprise, and there is not an upgrade issue. One reason why Windows XP has lingered on for so long is there are business critical applications which work on XP but not Windows 7. Porting these apps to Silverlight provides a much cleaner upgrade path—wherever Silverlight runs, the app will run.

There are a lot of benefits to Silverlight, and many capabilities that HTML 5 just can’t match at this time. Given the fundamental underpinnings of the Internet and browsers, some capabilities of Silverlight may never be matched by browser-based technologies. And that’s perfectly fine, there does not need to be One Technology To Rule Them All. Use what works, and use it wisely.

Futures

I’m no prognosticator, so maybe these are just some food for thought in regards to what I’ve said above:

  1. There is no need to offload processing to the client. Just increase the number of Azure instances, right?
  2. Ironically, what Silverlight did first—media streaming—is probably the first thing Silverlight will stop doing first. Silverlight does media well, but H.264 support is baked into the hardware, and that’s tough to beat.
  3. jQuery and DOM manipulation are better than using viewstate, and a supported library like jQuery will make working with JavaScript much less painful.
  4. RIA services with MVC/jQuery can provide a very rich user experience.

Conclusion

The adoption of HTML 5 technologies in the consumer marketspace is a no brainer. In the corporate world, where Windows XP still enjoys a healthy existence, Silverlight will continue to generate strong interest. It’s not that corporations are lumbering fools. Corporations leverage technologies in which they’ve made substantial investments, that they know will work, and in which their people have solid skills. For the foreseeable future, SIlverlight is such a technology.

Footnotes

1 There were no “good old days” in web development, but there are a lot of things we do not miss. As proof of the first point, I’ll be more than happy to show some of my old reference books with the browser differences annotated. No one misses the marquee tag or animated gifs.

2 Windows XP will run in half of firms after Microsoft retirement date

Updates

I’m catching up on my blog reading, and I’m not the only one who thinks like I do. Dan Wahlin and I are in line with one another; you can read his post at http://weblogs.asp.net/dwahlin/archive/2010/11/01/silverlight-is-dead-the-moon-is-made-of-cheese-and-html-5-is-ready-for-prime-time.aspx.

The Silverlight team addressed this very topic two months ago: http://team.silverlight.net/announcement/the-future-of-silverlight/.

An update from Bob Muglia, http://team.silverlight.net/announcement/pdc-and-silverlight/. A quote: “The purpose of Silverlight has never been to replace HTML, but rather to do the things that HTML (and other technologies) can’t, and to do so in a way that’s easy for developers to use.”

MESCIUS inc.

comments powered by Disqus