RIA (Rich Internet Application) means faster means to develop light applications to fit in your business presentation and few quick interactive applications. With RIA you can not make a money tree and you can not become rich.
Target Applications:
- Frontend Applications
- Small Quick Demo Applications
- Graphical Analysis of MIS
- Marketing Presentations
- Quick Forms/Data Entry for Mass Audience
- Polls, Social Interaction Applications
- Thin Client Applications
With RIA you can generally make a thin client applications, which surely needs to interact with high poerful web server or any other form of server over internet. RIA replaces frontend for modern internet applications from traditional HTML/JS form processing websites.
WHY RIA?
Traditional web portal applications (ASP.NET/EJB..) takes too much of time to process every single request, as it does not use full potential of client side computer. Every decision of which button to be displayed, state of an application and user’s choices and preferences, everything is maintained on server and applications utilizes too much of bandwidth as well.
Thats why, RIA is simple step to differentiate user interface and business logic completely with implementations of standards like SOAP web services and REST apis.
All RIAs are compiled at development site, that means the final RIA is in form of an application, which will execute accurately as designed. However in traditional HTML+JS, if any part of HTML is not rendered properly or its coded wrongly, there is no way to detect until it is delivered to browser and some error has been encountered. Pre compilation on RIA, reduces time required to develop web application drastically.
WHICH RIA?
| Flex | Silverlight | JavaFX | XUL | |
|---|---|---|---|---|
| Vendor | Adobe | Microsoft | Sun Microsystems | Mozilla |
| Open Source | Yes (I am talking about FLEX not Flash) |
No | Yes | Yes |
| Support
Community Support is very bad when you need quick solution in an emergency. |
Paid Support & Community | Paid Support & Community | Community Support | Community Support |
| Dependency | Flash Player | Silverlight Player | Java Runtime + JavaFX Runtime | XUL Runtime |
| Availability
According to various statistics, the by default availability of dependent software on PCs. |
95% | 10% | 0%
Although few PCs and all MACs have Java Runtime, they still need something additional. |
30% as FireFox supports XUL Apps |
| Size of Runtime | 1MB | 4.5MB | 30MB | 4MB |
| Native Device Access | Camera, Mic and Speakers | Speakers | Speakers | None in Web App,
May be few in Desktop App |
| Audio Video Support | Widely used FLV and MP3 format, stable and its there since 2001 | WMV/WMA/WMA Pro | No | No |
| Converters for the Supported Video | FFMPEG and many other commercial vendors available | Paid Encoders | No | No |
| Documentation | SDK Documentation and Samples | MSDN but still very premature, (Reason, the learning curve is little higher) | JavaDocs but JavaFX is still new | Apache Documentation, very scattered, difficult to learn. |
| Syntax | XML + Action Script | XML + C# / JS / VB.NET | Totally New Syntax | XML + JS |
| Language Feature | Strictly Typed with “Object” being dynamic type | Strictly Typed,
Dynamic type to come in C# 4.0 |
Strictly Typed | Dynamic Typed |
| Binding Expressions
Flex introduced wonderful concept of auto updating expressions when properties or variables changes. |
Very Accurate | Accurate but lengthy code | Available | Better then JavaFX and Silverlight |
| Two Way Databinding |
Not Available, Coming up in Flex 4 | Available | - | Available |
| Binding Declaration | Simple Attribute | Extra Code in each bindable property | Extra code in each bindable property | Simple Attribute |
| Reflection | Available | Available | Available | Available |
| Code Size | Very Concise | Even simpler things like validator etc takes 6 lines, too big code size to maintain | Size is small, but very disorganized, difficult to read | Concise enough |
| Platform Availability | Windows, Mac, Linux | Windows Only | Windows, Mac, Linux | Windows, Mac, Linux |
| Stability | Very Stable | Pre Beta | Pre Beta | Stable Enough |
| Control Library | Rich set of Controls available, plus lots of free stuff available as well | Very basic controls, you have to spend money on other ISVs to get good controls | Good set of Controls | Almost everything is free, lacks good documentation though |
| Coders Availability
For project managers, how difficult it will be to find coders who will code. |
Easily Available as existing Flash, HTML, JS, ActionScript can code. | C# and Microsoft Technology programmers can code. | Java Programmers can code, but due to new syntax, its still difficult to get hands on it. | Very difficult as it requires too extra knowledge of mozilla architecture and various standards, which is not taught anywhere. |
| Commercial Training
Starting project is very easy, but ongoing maintanence and meeting deadlines requires excellent knowledge of technology, which you should not rely on community blogs, because time required to search any solution is costly. |
Excellent | Excellent | Training available | Where? |
| Threading Support | No | Limited | No | Limited |
| Themes/Skinning | Yes | Yes, but size of code is very big | No | Yes |
| WebService Integration | Yes | Yes | Yes but very frustrating | Yes |
| Upload/Download | The Best Feature in Flex | Yes | Yes | Yes |
| Installable on Desktop | Yes | No | Yes | Yes |
| Database Support (in desktop app only) | Sqlite | Not Applicable | JavaDB
Too heavy and too slow |
Sqlite |
| Auto Update on Desktop App | Yes | No | No | Yes |
| Present Since | 2001 | 2007 | 2007 | 2001 |
| IDE
Plugins are available under eclipse and netbeans etc type of editor, but problem is they are so premature, they dont support refractoring, analysis, debugging and lots of other facilities. |
Flex Builder | Visual Studio | Plugin | Plugin |
| IDE Cost | ||||
| IDE Refractoring | Yes | Yes | No | No |
| IDE Source Versioning | CVS
Good for Multiusers |
Source Safe (Single Developer only)/ TSS (too costly) | Plugin | Plugin |
| Drag and Drop Editor | Yes | Limited, because to script you need Visual Studio and to design you need Blend (Other paid software) | No | No |
| Code Intellisense (Auto Complete) | Yes | Yes | ||
| Project Management | Yes | Yes | ||
| Library Management
Creating and importing shared code in the form of libraries. |
Yes | Yes | ||
| Component Development | Very Simple | Quite Complex as it is divided in User/Custom controls categories. | Available | Simple |
| The Result |
Leader of RIA | Flex Follower | The Last | Linux Love |
Important Note:
Silverlight claims to be platform independent, but reality is, Microsoft no longer provides any more upgrades of Silverlight version for any other operating system other then Windows. And Linux was already not officially supported by Microsoft.
Advantages of RIA
- Reduce Development time
As compared with traditional web application, since RIAs are pre compiled, errors due to syntax, wrong spellings can be detected earlier at time of desiging. - Load First, Run Throughout
RIAs load entire application (Except XUL) in the beginning, instead of HTML+JS, which loads as things proceed. This means, either application will load completely and work accurately even with slower bandwidth connection, or if some part didnt load, it will straightway display an error. So it works like transaction, either all or nothing. HTML+JS can behave unexpectedly in case of missing components. - Seperate Design and Development Processes
Flex and Sliverlight offers complete seperation of Development and Designing keeping integration simple, other platforms (earlier web ones) require too much time integrating designs and process. - Utilize Client Computing
Almost every computer has high powerful graphics capabilities, HTML/JS doesnt offer any great benefit over it. RIAs can completely explore native graphics capabilities and you get wide range of user interface functionality.

Interesting comparision. The one thing I am missing is a comment on the availability of widget sets
Quite extensive comparition … but regarding JavaFX it seams you “messed” a bit some items:
- audio/video support – YES
- Binding Expressions – very powerfull
- Code Size – you’re free to organize the code as you like, and is very user friendly = JSON like (ex: declare variable, use extra classes/packages)
- Threading Support – the code is executed on EDT, but you have access to full Java features, including threading
- Themes/Skinning – supports CSS (check style, styleClass)
- Database Support – any Java database (ex small/in mem ones: HSQL, H2)
- Auto Update on Desktop App – build-in based on Java Web Start
- Drag and Drop Editor – not a mainstream one – JFXBuilder: The first and only Java/JavaFX Rich Internet Application builder (http://www.reportmill.com/jfx/)
- Code Intellisense – in NB 6.5
- Project Management – assured by build-in features of NB 6.5 , Eclipse
- Library Management – you can reuse any Java code
Just want to suggest you to consider some additional JavaFX features like: Drag & Install, run in own process (ex: check Flying Saucer sample), Multiple deployment no-code-change (common profile) on Desktop, Mobile, TV
Just check the samples & documentation
nice, but JavaFX information should be updated for 1.0 final shipped december 4th
Hi El Cy,
Thanks for update, I am going to update the comparison as soon as time passes by and I get more information, problem with NB 6.5 is, its yet not stable, since JavaFX is still in the form of under development plugin, it lacks continuous professional development environment, you can start something but this is for people who want to create good running apps which are easy to maintain. I belive JavaFX will take little of 6-8 months to get stabilize in NetBeans platform and then it can become good platform to develop on.
For full disclosure, I am a Microsoft employee.
You have a long list of things that you are comparing the different technologies on. However, you really need to check your facts before posting statements as fact. I cannot speak to JavaFX or XUL but I can speak to Silverlight.
I will say that there are inacurracies on the Flex side both positive and negative. You should recheck those facts as well.
Open Source – check Moonlight at http://www.mono-project.com/Moonlight. The main player is not open source but there is a fully supported open source implementation being built by Novell under the Mono project.
Availability – I don’t have actual penetration numbers but 0 is obviously wrong. Otherwise, how did 42 million people watch the Olympics through Silverlight streaming (http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=9114378)?
Audio and Video – Windows Media Audio and Video 7,8,9 (WMA, WMAPro, WMV/VC-1), as well as MP3 audio – these are all well established industry supported formats that have been around for quite a while. Additionally, Microsoft has announced support for H.264/MPEG AVC and AAC in Silverlight 3. http://www.microsoft.com/silverlight/overview/faq.aspx. These are the formats that are served up by Windows Media Server already and there’s a ton of content out there ready already.
Converters for the Supported Video – Expression Encoder does a great job client or server side. http://www.microsoft.com/expression.
Documentation – define premature. There’s a ton of content not only on MSDN but on http://silverlight.net and countless community sites.
Synax – C#, VB.NET, JS, Ruby, Python or any of the many .NET languages that are out there. Longer list at http://www.dotnetlanguages.net/DNL/Resources.aspx.
Language Features – any supported by any of the long list of languages above.
Code size – depends on what you are doing, what language you use and how good of a programer you are.
Stability – Pre Beta? Really? Silverlight is in Version 2 and has tremendous stablity. The support for exception handling, logging, unit testing and more can help the developer write remarkably stable applications with little effort.
Control library – There’s a lot of controls built in and lots more coming from the open source project – http://codeplex.com/silverlightcontrib.
Component development – quite simple. it’s a different model than you are used to working in as a Flex developer but it’s the same model that millions of .NET developers around the world are already using.
The result – a strong contender that you should look seriously at. It’s the platform you should look at if you are a .NET developer.
I did not correct all of the innacuracies but I tried to speak to the most blatent.
Josh,
Thanks, I did update the comparison to post latest facts as you see I am updating this regularly.
I am a Microsoft expert programmer since 8 years and believe me, I have experience from ranging from Win32 till Silverlight and all the technologies and languages available in MS.
1. Moonlight is not Silverlight, and its not Microsoft’s.
2. Documentation, till Visual Studio 2003, MSDN used to be very good, but the whole XAML, WPF, WCF and so on and so on, documentation has lost its charm. With so many pages to clearly state in the first line of msdn that “This is premature literature and expected to change etc etc” i dont know exact words, but doesnt that prove premature?
- You can not create default reference value in dependency properties.
- Well Silverlight 1 didnt have dependency properties itself.
- There is too much confusion about how much of .Net features are available in Silverlight 2, because there is no one straight document that explains correctly.
3. Control Library, we are talking about what is included in base SDK by the vendor, not for third party ISVs, even for a control like “Tree” you have to spend money and get from ISV. As we being Microsoft Partner, we know the strategy of Microsoft to promote and give opportunities to its partners by giving limited product out line and allow its partners to make controls and many other solutions without which industry can not run. But now costs have gone prohibitively high to incorporate Microsoft products.
4. Language Features, this point really amazes me as for every different feature, should we use different technologies and different languages? More time is required to code, to maintain, I am a good businessman too, time is money here. This document is less for programmers but more for CEOs and CIOs who have to make their decision based on cost of development, maintanence, availability of programmers, time management is huge issue in today’s IT world as no deadlines are met mostly.
5. Stability, well half of the samples, and half of websites when we visit, it runs some javascripts, detects that you dont have required player so it displays icon to download silverlight 2, you go ahead and download it and come back, once again it displays icon to download siliverlight 2 and so on and so on. Excuse me, you are against world’s 8 year strongest and stable product “Flash” the flash file format has even saved every bit in compressing file sizes and delivering results faster and has ruled world for longer.
6. Component Development, MSDN doesnt have any good samples for Custom Control development, neither in silverlight nor in WPF. There is no control lifecycle discussed anywhere correctly, everything is so disorganized, I belive if you are Microsoft employee, then I am your customer, if you accept and try to work towards it to make better for programmers, it will help you only the most.
Vdo0lN Thanks for good post
I think I will try to recommend this post to my friends and family, cuz it’s really helpful.
Some info are slightly outdated. For up to date stats of flash, silverlight and java user base 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.
I’ve made a simple, more “hands on” 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/blog/rias-comparison-part-2-simple-programs
The article is update once in a while with more info.
Hi Akash, Thanks for quick comparison and information.
[...] This post was mentioned on Twitter by msafdel, nmrao.b. nmrao.b said: RIA – Why? Which One? How? http://bit.ly/dml0bF [...]
awesome, thanks for giving this good comparision, Still i Have a question,is this really a platform independent or not? If using moonlight i think yes.
No, Silverlight is no longer platform independent as it is tied to microsoft platform tightly and Microsoft may not support it on other platforms. Moonlight isnt complete and isnt properly supported.