A perspective on Apollo vs Silverlight vs JavaFX vs Flash/Flex
Introduction
In the last few weeks, quite a few RIA framework announcements and/or rebrandings were announced:
- Apollo from Adobe, which is a runtime to be able to enable richer RIA applications on your desktop.
- Silverlight from Microsoft, which is a browser plugin to provide a richer RIA browser experience.
- JavaFX from Sun, which is also a a runtime to enable richer RIA applications on your desktop.


These three frameworks are all in some way also related to Flash/Flex from Adobe.
In this article, I'll be making a first stab at comparing these four frameworks. It should help you to get some perspective and initial understanding on the differences and the similarities.
The goal of all these frameworks is be able to build Rich Internet Applications more easily and to make the user experience as rich as possible. Currently a lot of this kind of functionality is being built with AJAX (asynchronous Javascript, CSS, DOM manipulation and XML) and Flash/Flex. Manual construction of applications with the four AJAX components is quite a pain, and thus companies are trying to create the silver bullet for easy creation of RIA applications. Creating applications with Flash/Flex is relatively easy and makes the applications really rich, but it is vendor-specific (Adobe). Note that recently Adobe made Flex open source (note that this is not the same as the Flash runtime, which stays closed source). Some of the newly announced frameworks are more open source (JavaFX) than others (Silverlight).
To make the comparison easier, I've created a table that lists different aspects of the frameworks I found interesting to have detailed out, and for each of those aspects, how the four frameworks fit in.
Apollo | Silverlight | JavaFX | Flash/Flex | |
---|---|---|---|---|
Definition |
|
|
|
|
Status |
|
|
|
|
Runtime |
|
|
|
|
Technologies |
|
|
|
|
Platform |
|
|
|
|
Licensing |
|
|
|
|
Interesting links | Sample Apollo apps: Apollohunter | Open source JavaFX wiki: wiki |
- Are users willing to wait for 4-6 MB downloads?
- Are we now again moving away from making the browser the platform? Notice that Mozilla is extending the browser even more via XUL to become one RIA platform. See here for some more info on that.
Finally, here are a few other interesting developments in this area:
- The Mono project is going to try to port Silverlight to Linux.
- MS just announced a new Silverlight app Popfly that allows users to create mashups (like Y! Pipes).
- A lightweight JRE for Java 6 is indeed not a rumor and thus the amount of runtime to download is significantly reduced.
- Rich Media Platform Comparison: : a table showing the comparison between Silverlight, .Net and Flash/Flex.
- Silverlight vs. Flash: The Developer Story: A lower level comparison of the two, with Silverlight being the winner for the author.
- JavaFX in perspective: some good points about JavaFX relative to Silverlight and Flash/Flex.
Update 02 June 2007:
- This week of course Google Gears came out. Here's shortly how it relates to Apollo and Dojo offline. Google is working with Adobe to get it integrated with Apollo. Together with Adobe and Mozilla it is also trying to make Gears an industry standard. Note that you can use each of the 3 components also seperately, you don't need to only use it for writing synchronzation software.
- Here's another overview of these three and how they relate: Apollo, Silverlight, Gears.
- Here's a good landscape overview of RIA tools and why Flex could be a good way of building user interfaces, even to Java developers.