views:

79

answers:

2

Hello. For my data intensive web application (heavy forms & complex reports), from performance standpoint, which is better ... a browser plug-in based RIA (say SilverLight) or Java Script based RIA (say ExtJS)?

At this moment, we can avoid the discussion of plug-in availability, etc. My only focus is performance. Reasoning will be appreciated.

A: 

Hard to say because it depends on so many variables. But you might want to check out Bubblemark. On that particular benchmark, Silverlight 3.0 (with bitmap caching enabled) does well, but a lot depends on the browser you're using. Javascript with Chrome comes pretty close to Silverlight's rendering performance. See also http://www.youtube.com/watch?v=gqjidzjkMM0.

If you use Silverlight and can access your WCF backend using Net.TCP, you can get pretty good data access performance as well. I would expect it to be somewhat faster than JavaScript (since it doesn't have the HTTP overhead), but I don't know how it would compare to accessing FMS via RTMP.

Ken Smith
Just one caveat - the Bubblemark, while very impressive and a good baseline for comparative performance, plays very well to Silverlight's biggest strengths - the CacheAsBitmap on the "balls" make it win handily (at least on every system I've seen it run on).Not knocking Silverlight at all - its faster than hell and it pays my bills professionally - but be careful when attributing one performance test to its general performance overall. :)
JerKimball
+1  A: 

Computationally, Silverlight will win out compared to Javascript, no contest, especially with Silverlight 4 (twice as fast computationally). But I don't think raw number crunching performance is necessarily the most important thing, Chrome's Javascript engine is 10x faster than IE8's, but a web application in ExtJS isn't nearly 10x more responsive. How fast the object model is manipulated seems more important and HTML seems to be at a disadvantage here, because it's not really built for complex controls like grids in ExtJS.

If you look at the HTML generated by an ExtJS grid here, it goes 13 layers deep from the outmost container of the grid to the content of a cell. All those layers to trick HTML and CSS into doing the right thing.

And while I'm speculating a bit, it stands to reason that Silverlight's object tree is a lot flatter, because well, it can be as it's built to do the things it does. Add to that Silverlight's hardware acceleration and it will definitely win out in the performance department, but regardless of that I also think that performance is not very quickly a bottleneck when using a framework like ExtJS. It's still fast enough, usually.

JulianR