Some Thoughts on Silverlight

I'm not going to dig into the how and why of Silverlight, or write an inflamatory article bashing Microsoft. What I do want to set down are some simple observations on Silverlight. All of us who design RIA's need to keep an eye on emerging technologies, especially if they're backed by the market clout of MS.

So, what is Silverlight, and why should you care? It's has been described as Microsoft's Flash, but that misses the point just a bit. First, from the MS marketing droids:

Microsoft Silverlight is a cross-browser, cross-platform plug-in for delivering the next generation of .NET based media experiences and rich interactive applications for the Web. Silverlight offers a flexible programming model that supports AJAX, VB, C#, Python, and Ruby, and integrates with existing Web applications.

Lovely. Cross-browser and cross-platform (Windows and Mac). File that away for future reference. For a better explanation, we can go to a report from Mix 07 from Miguel de Icaza (a mono project contributor):

Silverlight 1.0 uses a retained graphics system (a canvas) that exposes the internal structure to the browser DOM. It has no scripting capabilities built into it, all the scripting support is actually done by the Javascript interpreter in the browser and all changes are done by talking to a Javascript object exposed by the hosted Silverlight surface.

The scene definition is done using the XAML markup using a subset of the WPF primitives available in the full-blown WPF. Then the big announcement came:

The second edition was Silverlight 1.1, and this one is a different beast altogether. 1.1 extends the model by embedding a complete Common Language Runtime.

That's right, the dreaded CLR ;-) , the JVM of the .NET world, in your browser. The CLR, of course, is supposed to support many different languages, and so VB, C#, Ruby, Python, Javascript, etc., etc., are all supposed to be supported eventually in Silverlight. With the Dynamic Language Runtime (DLR), scripts can even be embedded in the page and compiled at runtime. In venture capital there is a saying that "too soon is the same thing as wrong"; let us all shed a tear as Java applets are carted off to the dumpster. :-(

There's lots more research to do on this, but I have neglected the second question: why should you care? The obvious answer is that Silverlight doesn't just compete with Flash, but also with Ajax. Silverlight also seems to have more hooks into the browser (definitely some security research needs to be done there), so it is possible that it can be more of a complement to Ajax than Flash has been.

But looking beyond the next 12 months, it is clear that Silverlight will be part of MS's solution for Desktop RIA's, i.e. the emerging online/offline application space represented by Apollo/AIR, Google Gears, Firefox 3 (with it's embedded RDBMS), etc. Another thing that becomes clear is that language support and performance are likely to become more important, i.e. we need to be able to develop in more than just Javascript/ActionScript for the browser and Flash. And the performance of those browser runtimes needs to improve drastically to support the large and sophisticated client-side (ooh, the return of the fat client) apps that are likely to be developed.

GWT addresses some of those issues, as does the commercial product from Morfik. For performance, the inclusion of the Tamarin VM (kindly donated by Adobe) in future versions of Firefox will address some of the performance issues, but at the end of the day that is less than half the equation. If MS doesn't improve IE (where's the announcements about IE8?), Ajax apps will still perform like crap on over half of all browsers.

Last idea for the moment on Silverlight. Will OpenLaszlo target their framework to compile for Silverlight? Since they are the one group that actually targets their framework at more than one runtime (Ajax and Flash), they are well positioned to do the same for Silverlight. Stay tuned.

Technorati Tags: , , , ,

Related posts:

  1. Getting Started with Silverlight
  2. Apollo – Adobe’s JVM
  3. Framework Watch – FJax
  4. Application Watch – Gliffy, Visio on the Web
  5. ZK Now Supports Javascript, Groovy, Ruby

Comments: 3 so far

  1. Good post. I’m also really curious to see how OpenLaszlo handles Silverlight. It would be really cool if you could build an RIA and compile it into all of the major languages.

    =Ryan
    rstewart@adobe.com

    Comment by Ryan Stewart, Thursday, July 12, 2007 @ 1:04 pm

  2. I wrote a similar article on how strange the whole Silverlight approach is in these days of open-source AJAX libraries here:

    http://www.keeneview.com/2007/09/really-idiotic-approaches-to-ria-flex.html

    Comment by ckeene, Saturday, September 22, 2007 @ 1:12 pm

  3. You can do a lot of things with Silverlight even simulate entire windows system. Check this site http://www.windows4all.com. In future I think won’t be differences between Silverlight and WPF. You will customize Silverlight to run as WPF app.

    Comment by Lesso, Tuesday, June 9, 2009 @ 2:18 pm

Leave a comment

Powered by WP Hashcash

Launch: Pathfinder Newsletter

    Get a monthly update on best practices for delivering successful software.

    Subscribe via email


    Subscribe via RSS      RSS icon

Topics

Search

WordPress

Comments about this site: info@pathf.com