Performance Considerations
Being graphically intense in nature, RIA frameworks need to be optimized for graphical performance to ensure a smooth visual experience to viewers. Performance testing requires a benchmark test that performs a similar operation using various platforms in order to compare results, and fortunately Bubblemark.com has built out just such a benchmark using a variety of RIA technologies.
To test each RIA technology, the benchmarking application creates a series of animated balls that bounce around the screen. Performance is determined by the frames per second (FPS) at which the balls are drawn by each RIA technology. Following are the statistics from my Windows Vista®-based machine in Internet Explorer 7.0:
|
Bubblemark Benchmarks Results on Windows Vista in IE 7
|
|
|
16 Balls
|
64 Balls
|
128 Balls
|
|
Silverlight 2.0 (Alpha)
|
202
|
60
|
34
|
|
Adobe Flash 9
|
64
|
38
|
20
|
|
Adobe Flash 9 (Optimized)
|
63
|
63
|
47
|
|
Adobe AIR (Beta)
|
-
|
-
|
-
|
|
JavaFX (Beta)
|
82
|
28
|
15
|
One of the first things to note in the results is the difference between the Adobe Flash and the Adobe Flash (Optimized) results. The optimized version of the Flash benchmark uses a bitmap caching technique to avoid reloading the bubble image, which is why the times for the optimized code do not decrease as drastically as the number of balls on the screen increases. In a live application it is unlikely that you can realize such performance gains because you probably won't be reloading the same image to such an extent.
Also, the AIR benchmark was written for an alpha release of AIR (originally codenamed Apollo) that is no longer supported, so I could not get the benchmark numbers for my machine. In reading others results, however, AIR's benchmark appears to resemble that of Flash. Bubblemark.com should have an updated version of the AIR benchmark in due time, where you can give it a test drive all your own.
Most of the results postings I've run across thus far show that Silverlight has higher performance benchmarks than Flash (the non-optimized version), and that JavaFX has the lowest benchmark performance of the three. Of course, you can point your browser at Bubblemark.com and try out the various technologies on your own machine and see how the results compare.
Conclusion
Microsoft Silverlight and the Adobe Flash platform are certainly the more refined contenders in the RIA technology space, offering designers and developers the tools they need to build gripping interactive content and end users a simple installation experience. JavaFX is a relatively new technology that will appeal to Java developers wanting to simplify Swing development, but it currently lacks many of the development and graphical design tools that accelerate building RIAs.
AIR is also an innovative technology for cross-platform desktop deployments, but similar technologies like Mozilla's Prism project may render it a bit less compelling. Prism's goal is to bring the Web to the desktop without the browser, and that would presumably include Silverlight, Adobe Flash, and JavaFX.
Silverlight has proven that it can outperform other RIA contenders, and has the potential to prevail as the leader in development tools and language support, making it simple for existing C# and VB developers to ease into Silverlight development. Open source developers familiar with Python and Ruby may also opt for Silverlight as compared to switching over to ActionScript. And since Silverlight is effectively a subset of the Windows Presentation Foundation (WPF), it opens the possibility for desktop developers to apply their skill set towards Web applications with relatively ease. As such, Silverlight is likely to gain popularity with developers, which means it will end up in front of more and more users.
* This article was commissioned by and prepared for Microsoft Corporation. This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.