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.
22 comments:
Cool, nice blog post. My website, http://www.riapedia.com showcases a number of applications that people are building with these technologies.
If I'm not mistaken, Silverlight is not cross-browser, cross--platform. It might support IE, FF and Safari on Windows and Mac, but I think that's about all (not sure about Opera)
Opera is coming soon.. (It's a matter of getting time with the Opera teams)
I think the comparison is Released Version vs Alpha/Beta - keep it in perspective but if it's a pulse check "as of today" then cool, can understand the points being made but think it could go deeper on all flavours.. (ie WPF? that's a valid piece left out and so on).
Rich Web vs Reach Web is more the focal point as well. Apollo has limitations just as much as WPF etc..
Anyway interesting read.
-
Scott Barnes
Developer Evangelist
Microsoft.
Just two things...
1. The Apollo runtime (the software that allows you to run Apollo apps) is indeed a few megabytes in size, but you only have to download it once. The actual Apollo apps themselves that folks make can be quite small (under 100k), so those will be fairly easy to download.
2. For your "Interesting links" for Flex/Flash, use http://try.flex.org/: let's you actually render Flex apps on-the-fly using some simple examples.
Forget about Opera. Silverlight will not be crossplatform until it runs on Dillo...on a Vic-20.
It should be noted that Linux support for Apollow isn't going to be available in the 1.0 release, according to the Adobe Apollo FAQ.
- The JavaFX jar for runtime is ~700K.
- Event though Java apps may take time to download so so all complex Flash apps. And since Flash is such a slow pig, you can watch that percent complete animation crawling towards 100%. You know what I mean!
Thanks for creating this table, very handy. I'd been meaning to do one myself as a follow-up to my post that you kindly referenced, but I didn't have time (launching a Startup will do that to you). Now I won't have to.
I thought I should point out that you have Silverlight listed as OSS which it's not. The DLR portion is under the MS Permissive Licence, but otherwise it's a proprietary platform.
Not surprised to hear about the lightweight JRE...I figured it had to be on the way if Sun really wants to join the party, well done for spotting the evidence!
Thanks Seth, amazing how I got that one wrong ;-). Fixed it in the diagram.
Here's another interesting resource BTW: a good landscape overview of RIA tools and why Flex could be a good way of building user interfaces, even to Java developers.
I like the article but i think there's a bigger battle going on. For the in browser competitors you have ajax(js) vs. Silverlight vs. Flash/flex vs. java applets. In the out of browser category you have XUL (ff3 supporting offline apps with this) vs. WPF vs. Apollo vs JavaFX respectively. After playing with all the different in browser technologies I would have to give the edge to Silverlight though. Regardless I'm very glad there is a lot of competition out there and not just two big companies fighting.
Hi,
Your post is quite informative. I'm an editor for a leading tech site, and I'd like to discuss a writing opportunity with you regarding this topic. Please contact me at gkunene_at_jupitermedia_dot_com if you're interested. I hope to hear from you soon.
Regards,
Glen Kunene
Check bubblemark for example code for all the mentioned frameworks except JavaFX. The Bouncing Balls Animation is an implementation intended for performance comparison of the different frameworks. Additionally source code is available for a Swing (Java) version and a DHTML (Javascript) version.
Apollo has just been renamed to Apollo Integrated Runtime, or AIR for short. And it has gone into beta (was previously released in developer preview).
Another useful comparison not clearly represented in your very useful table is the development platform. For example, Silverlight can be delivered on the Mac but there are only development tools for Windows. The other thing to note is that the plugin size for Silverlight on OS X is close to 10 MB. Which is enormous when compared to the other options.
Calling JavaFX "superalpha" is overly simplified to the point of being unfair. it is riding on the known/stable/reliable Java SE/ME.
I think there is one more issue to consider and that is that Silverlight is a Microsoft project. How short does our memory need to be to support silverlight? Does anyone remember Microsoft Foundation Class Library? I cannot believe that a developer would waste their time on it knowing that like so many Microsoft projects it is nothing more than a leverage point and will disappear as soon as it suites them. How does the saying go "embrace and extend" or was that "embrace and detrail"?
Here's a bunch of nice examples of Adobe's AIR (formerly Apollo) only a month after its public beta release: examples
Bubblemark.com (site that has built the same example application in Silverlight, AIR etc) has now implemented a JavaFX version. Performance is disappointing at this moment when using vectors as mentioned here.
PS: I had put JavaFX in as super-alpha because at the point in time I was writing this blogpost, you couldn't even download it.
Check this just released nice hands-on demo of AIR, Silverlight and JavaFX. From the guy who also made the bubblemark benchmarks.
I agree that currently Flex/Flash is the best choice over Silverlight and JavaFX. There are more 96% of browser having installed Flash plug-in while Silverlight is still in Beta version. JavaFX is still a vaporware though. Comparing the performance, Flex is more run more smoothly than Silverlight, showing Flex is a more proven technology in RIA area. Flex Builder 3 is also an easy tool for average developers too.
Becoming parents? visit http://lucascom.webng.com
This article is over 2 years old.
Silverlight is in version 3 now, Flex SDK is in verson 3.4 and JavaFX is in version 1.2.1.
Anyway, for up to date stats of ria platforms there's http://riastats.com. Currently, Silverlight is installed in only 30% of browsers, while Java is present in 70%, and Flash has over 95% market share. Now tracking AJAX is a little more difficult. However, it's worth noting that, according to http://marketshare.hitslink.com , IE6 still has 23% marketshare, so even if you prefer one technology over the other, right now you better stick with flash based solutions for wider audience reach and consistency across platforms.
I've also made a small comparison of some ria technologies for who's interested. Flash, Flex, Actionscript 3 alone, Silverlight using C#, JavaFX, Java and AJAX are covered. You can check the article at http://my.opera.com/facildelembrar
The article is update once in a while with more info.
Good comparison between Apollo, Silverlight, JavaFX, Flash/Flex. Flex/Flash is the best choice in today.
Post a Comment