In case you’ve been hidden under a rock for the last few months you’ll have noticed that there is a bit of a change coming about in how information is presented on the web. This is the move to the Rich Internet Applications (RIA’s) and their respective display technologies.
It is these technologies that I have spent a little bit of time looking at recently, and I thought I would share those thoughts with you just to see what other people thought.
At the moment, there are four significant competitors for the RIA market. Adobe’s Flex, Microsoft’s Silverlight, good old’ DHTML and Sun’s JavaFX. Generally speaking, all these technologies are able to bring to the browser more than that of traditional HTML either via sprinkling’s of Javascript (DHTML) or a browser plugin (Flex, Silverlight and Java FX). So what are they all like? Well, I’ve had a little play with all these things and think the following of them:
- Adobe Flex.
Adobe’s Flex has been out for a while now and is headed towards version 3 as we speak. I’m not going to state the obvious here as to the capabilities of the system, as any old monkey can get that information from any Google search. I’m merely here to tell you what I think. Flex is an interesting if slightly restricted model. It runs in the Flash platform, which makes it nice and umbiqutous out of the box, and the SDK is also free, which means you can develop Flex apps freely. It’s also open-source to a certain extent which may float your boat.
The reason I see Flex as restricted is down to the Flash Player. Being a browser plugin it is constrained by browser security, and can therefore only accomplish certain things. Yes, it is very big capabilities with animation, but I feel it might be somewhat limited on the more complicated stuff. The worst thing Adobe could do here is rest on their laurels and think that because they have the most common piece of the software on the planet under their control they don’t have a problem - but they do in the shape of the other tools mentioned here.
There is also the open source aspect to Flex. At the moment, I beleive this only relates to the components that are used within the compiled swf’s, and not the core compiler itself - which very much limits what contributions and changes people can make to the tool.
At this point I should probably mention AIR, the Adobe Integrated Runtime, which let’s you run Flex (and HTML) apps in a desktop context, thus being able to access local disk and even use a small client db server. However, for me, I can’t really see this taking off in the way that Adobe intend. For instance, most of the users that I meet are working on corporate networks, and cannot install new software themselves, when they can quite happily install browser plugins. For me this is a massive problem. Firstly, why would my user want to have to download an app to use another app, and secondly, why should I force my users to have to install something (which just makes their lives harder)? Everyone I know just wants to get stuff done.
- Microsoft Silverlight
Silverlight is an interesting one for me. At first it appears to be direct competitor to Flash/Flex, but upon looking into it there are substantial and very interesting differences. The main one that I am aware of, is that Silverlight contains the .NET framework and the CLR, which, if you aren’t aware, is a lot of code that can do a lot of things. While developing Silverlight, MS took the .NET framework and took out everything that wasn’t needed in the development of RIAs, then they shrunk it a bit more. This meant they were able to get everything you might need into a small download.
Now, if you think about this also from a resourcing point of view, this is very interesting. Now I can teach a guy C#, and he can go away and work on my data tier with SQL 2005. The same guy can they go and work (with the same skills and tools) on my business tier. Once done, he can also work on the presentation tier (Silverlight and ASP.NET). This is a very compelling scenario and it makes a development team incredibly flexible. One set of skills for all scenarios.
Incidentally there is no reason why you couldn’t write your silverlight apps in Ruby by using the DLR.
Another small thing to note is performance. .NET is fast, and this carries through to the Silverlight player. Also note, that cross-platform coverage is also kind of limited to Windows and OSX, although the mono project has built a *NIX based version of Silverlight - Moonlight.
- DHTML
DHTML is the old kid on the block. By using traditional DOM manipulation, developers can acheive a lot. However, they also expose themselves to untold problems with browser compatability, performance issues to take into account, plus an overall limitation on what is possible. However, nothing requires installation, it works for everyone (that the developers have built their app for).
- JavaFX
JavaFX is another stab at Applets from what I can see. Sun trying to create a small downloadable JVM that can run in browser in a similar vein to Silverlight. However, the current version is so slow, and painstaking to load, that I am going to barely consider it here until a much improved version is released..
So, as you can see, there’s quite a choice. But, why the title? What’s this got to do with bubbles? Well, the thing that kicked this off for me was visiting bubblemark.com. Bubblemark.com is a performance benchmarking piece of software that measures the performance of these various technologies in your browser. I ran through the tests and got some interesting results:
- DHTML - 40 fps
- Flex (cached) - 58 fps
- JavaFX - 16 fps
- Silverlight (Javascript) - 60 fps
- Silverlight (CLR) - 220 fps
Now, I don’t know about you, but these results are stunning for Silverlight, and fairly dismal for JavaFX. It’s also interesting that Silverlight (Javascript) and Flex are the same speed considering that one is interpreted and the other compiled. Now bear in mind, that I only ran these test on my machine a couple of times, your mileage may vary (and please let me know if they do).
So, after all this, it’s easy to see that there is a gamut of options. For me, Silverlight looks to be the most promising overall, but as it hasn’t yet hit a final release it’s hard to fully judge. In the interim, Flex has to the RIA platform of choice due to lack of a capable competitor in the market.
If you have any differing thoughts, please let me know.


From what I know, Silverlight 1.1 (with the sub-set of .NET) will only be out next year; Silverlight 1.0 will be out later this year but doesn’t have the .NET sub-set. So this puts Silverlight 1.1 in the same category as JavaFX, I think (not fully valid for production until mid-2008).
“There is also the open source aspect to Flex. At the moment, I beleive this only relates to the components that are used within the compiled swf’s, and not the core compiler itself - which very much limits what contributions and changes people can make to the tool.”
Actually, the Compiler will be open source too!
I could be wrong, but silverlight only runs on windows with .net 3.0 because that allows them to take advantage of the OS and graphics hardware. Silver light does claim to be cross platform, but in reality, the release date for silverlight for mac and linux are both over a year behind the windows version.
I’m hanging out for the day when the flash player can take andvantage of the users graphics card to render 3D stuff.
If you download the new Flash Player 9 beta from labs.adobe.com and run the Flex bubblemark test on Windows you will see a significant performance increase (especially on dual-core machines). The new FP9 splits rendering out onto multiple cpu’s if they exist. I get 180fps on my T60p.
Also, you should check out my Census RIA Benchmark app:
http://www.jamesward.org/census
The benchmark tests data loading, parsing, rendering, and sorting for Flex, Ajax, and Laszlo. I don’t have a Silverlight version yet because I don’t think Silverlight has a datagrid. But imho this type of test is much more relevant to real world applications than Bubblemark is.
-James (Adobe)
There is one major platform missing in this lineup, OpenLaszlo. http://www.openlaszlo.org
I am sure you have heard of it, if not - check it out. You can code once and publish to DHTML or/and Flash, and in the future, additional platforms.