Tag Archives: Air

RIA frameworks – a comparison

The presence of several (non-JavaScript based), more or less comparable, RIA frameworks begs for some kind of comparison table, but let’s start by listing each framework with a brief description and its perceived set of advantages and disadvantages:

Adobe Flex

Adobe Flex is probably the most well-known RIA framework, it was launched back in 2004 and is already in its fourth version which was released on March 21, 2010 (if I remember correctly).

Flex 4 and its accompanying IDE, Flash Builder 4 make for an extremely compelling Rich Internet Application platform. Improvements and additions to Flex 4 include:

  • The new skinning and component architecture, Spark. The most important improvement of the new architecture as compared to the previous one, is the complete separation of a component’s visual elements from its logic making it much easier for independent development of both the logic and the visual appearance of a component.
  • Improved state management (states let you vary the content and appearance of a component or application, typically in response to a user action).
  • FXG, which is a declarative syntax for defining static (vector-based) graphics.

Advantages: I would say that the principal advantage of Flex for RIA development is the omnipresent Flash Player, that is, according to Adobe the penetration rate for Flash 9 is at least 98.1%. I would think that no other run-time comes close to that figure. Furthermore, as RIA platforms go, Flex is mature and hence has a thriving (open source) community around it.

An additional consideration with regards to RIA platforms is the possibility (or impossibility, in the case of Apple’s iPhone, iPad, and iPod touch devices) to develop applications for the latest generation of mobile phones. For example, Google’s Android OS version 2.2 (Froyo) supports Flash 10.1 making it possible to develop application for said OS with Flex (and with Adobe AIR 2.0, as well).

Disadvantages: ActionScript 3, although a decent language (it’s based on ECMAScript) misses things like private constructors (bye-bye to a straightforward implementation of the Singleton pattern), generics, enums, and method overloading. A serious drawback of both Adobe Flex and Adobe AIR is their lack of support for multi-threading; however, Flex provides an asynchronous programming model that mitigates this issue somewhat.

Adobe AIR

Adobe AIR is the logical continuation of Flex in that it allows Rich Internet Applications to be developed for the desktop, basically adding off-line capabilities to Rich Internet Applications. Adobe AIR applications can both access the file system and persist data to the embedded SQLite database engine.

Advantages: Adobe AIR applications run (almost identically) on all three major operating systems: Microsoft Windows, Mac OS X and Linux. Hence, if you are looking to reach as large a market as possible (or at least not be limited by the non-availability of the run-time for any given OS), Adobe AIR makes a lot of sense.

Disadvantages: A serious drawback of both Adobe Flex and Adobe AIR is their lack of support for multi-threading; however, both Flex and AIR provide an asynchronous programming model that mitigates this issue somewhat.

Microsoft Silverlight

Silverlight seems to be Microsoft’s response to the dominance that Adobe’s Flash has in the market with regards to sites that are heavily focused on multi-media (that is, video). For example, YouTube.com uses the Flash Player to enable viewing of videos (in the Flash Video format – FLV). And, it’s not only YouTube, literally every other video site out there uses FLV.

Advantages: Having support for multiple (programming) languages is definitely an advantage for Silverlight. That is, being able to implement your RIA application in either C#, (Iron)Python, (Iron)Ruby, VB.NET or any of the other .NET-supported languages is fantastic.

Disadvantages: It is unclear what proportion of computers currently have the Silverlight run-time installed. Microsoft mentioned something in the region of 25%. Obviously, Microsoft (with system updates and service packs, and what not) will actively continue to push the Silverlight run-time and eventually, it will reach the so-called tipping point (when one can assume that the majority of users have a version of Silverlight installed). Furthermore, it makes sense for Microsoft to include Silverlight as part of Windows 7. However, at the moment, Silverlight does not have the same ubiqtuous presence that Adobe’s Flash Player has forcing you to include the run-time as part of the download.

OpenLaszlo

OpenLaszlo is interesting in that it supports multiple run-times, that is, you can compile your application to execute in either the Flash Player (8, 9 and 10) or straight in the browser as a DHTML application.

Advantages:

Disadvantages:

Moonlight

Moonlight is a port of Silverlight to the Mono platform.

Advantages:

Disadvantages:

Curl

As far as I can make out, Curl is actually quite popular in Japan and has been used (and is currently being used) by some moderately heavy-weight Japanese companies.

Advantages:

Disadvantages: It is arguable that those platforms that have not attracted a large number of developers are less attractive. However, if a technology is sufficient for your needs and you can find a developer or developers to develop with it, the absolute size of its developer community is probably of secondary importance, that is, it is the quality of its developer community that counts. However, saying that, Curl does seem to be a minor player (at least the majority of developers I have spoken to, confess to never having heard of it before) and you might want to factor that in to the equation.

JavaFX

JavaFX is Sun’s RIA platform. Sun is definitely trying to target the mobile (phone) market as much as the desktop market with JavaFX. JavaFX is a relative late-comer to the RIA scene, but should not be discarded out of hand in favour of either AIR/Flex or Silverlight.

Advantages: Obviously, a strong selling point for JavaFX would be its tight integration with Java and the massive eco-system that Java has around it.

Disadvantages: JavaFX’s lack of maturity is, at the moment, its weak point. For example, it is lacking a lot of JavaFX-native controls (for example, a tree control). Now, it is quite straight-forward to wrap Swing controls and subsequently use them in a JavaFX-project but it’s obvious that that is a bit of a temporary measure. Sun has mentioned that they will address this issue in future versions.

haXe

Advantages:

Disadvantages:

RIA technology evaluation & comparison

The web world is becoming more and more demanding. Now, 7 out of 10 projects demand rich internet application (RIA). Since RIAs are bridging the gap between desktop and web applications they have become the topic of talk. RIA has taken web applications to a new level where it is difficult to distinguish web and desktop application interface. The user feels like he is using his desktop application.

The RIA frameworks that has made this possible are Flex, JavaFX, Air, and Curl. At e-Zest we work in all of these technologies. Recently, we have evaluated feasibility of these technologies for the development of rich internet application project.

Here is the brief and crisp finding of our feasibility study.

When it comes to a UI controls Flex, Air and Curl have it built-in. Swing comes to rescue when you want to use JavaFX for UI controls. In Flex and Air you can have your own controls. Eclipse can be used as IDE for all these technologies.

To be able to run your application at client user needs to have plugins and extensions. For Flex you require Flash plugin which is available readily on 90% of browsers relieving user from downloading and installing plugin for application use. JavaFX requires Java plugin with JavaFX extension to run application. For AIR, user requires to download Adobe Integrated Runtime environment to be able to use application in online and offline mode. For CURL a CURL runtime engine is required.

BlazeDS, a free and open source Java solution, can provide higher performing approach to connection Flex applications to back-end services. BlazeDS includes both Flex Remoting, which provides binary, serialized data transport, and Flex messaging services, offering real-time data push.

The JavaFX platform provides an essential set of tools and technologies that enable developers and designers to collaborate, create, and deploy applications with expressive content to browsers and desktops. Mobile application developers can use the JavaFX Mobile Emulator to preview applications for mobile devices using the JavaFX platform.

AIR are actually desktop application using system resources but they have all necessary ingredient to be called as feature rich RIA. AIR is becoming popular for social application extensions. When it comes to business and enterprise solution CURL applications tend to work well as they have excellent data-handling capabilities and good information presentation features. In addition, while Curl isn’t as focused on animation and graphics as some other RIA platforms are, it does do a good job when it comes to data analysis and reporting graphics. Since Curl has been around for 10 years, it has a well-established base of users and support, too.

We are still evaluating Eclipse Rich Ajax Platform (RAP). Once we do that we will post about that.