There are four different run times on which the current RIA landscape is based. Those are Ajax, which is supported by Dojo, OpenRico, Backbase and the Yahoo ToolKit; Flash Player, which is used by Flex and Laszlo; Windows Presentation Foundation (WPF), which is Microsoft's not yet released platform; and Java, which is used by AWT, Swing, and Eclipse RCP. It seems that both the Java and WPF solutions are taking aim at desktop applications, rather than RIAs although they could be used for RIAs as well.
Ajax is not likely to go away any time soon, and each day more and more high-profile Ajax applications are launched with great acclaim (such as Google Maps).
One of the key competitive run times in the RIA space is Adobe's Flash Platform. The Flash Platform is currently the key competitor to Ajax for RIAs. Originally written as a plug-in to run animations, Flash Player has evolved over the years, with each new version adding new capabilities while still maintaining a very small footprint. Over the past decade, Flash Player has gained near ubiquity, with some version of it installed in more than 97 percent of all web browsers on the Internet. Since 2002, Macromedia (now part of Adobe) began focusing on Flash as more than an animation tool. And with the Flash 6 release, Macromedia began to provide more capabilities for building applications. Macromedia found that with the combination of the ubiquity of the player and the power available from its scripting language (ActionScript), developers could build full browser-based applications and get around the limitations of HTML.
By targeting Flash Player, developers could also break away from browser and platform incompatibilities. One of the many nice features of Flash Player is that content and applications developed for any particular version of Flash Player will (usually) run on any platform/browser that supported that version of the player. With very few exceptions, it remains true today.
Historically, the biggest drawback of building applications for the Flash Player was the authoring environment, which was clearly built as an animation tool for users creating interactive content. Many developers who wanted to build RIAs for Flash Player were thwarted by the unfamiliarity of the tools. This, coupled with the scant materials available in 2002 for learning to use Flash as an application platform, kept many serious developers from successfully building Flash applications.
Although Flash Player remains an excellent platform for RIAs, the introduction of solutions such as Laszlo and Flex have greatly simplified the development process and reduced the number of RIAs developed directly in Flash Studio.
Sensing the need for more developer-friendly tools for building RIAs, Laszlo Systems developed a language and compiler that enabled developers to work with familiar languages from which their compiler could create applications to run in Flash Player.
Another way Laszlo is similar to Ajax is that data access is usually done by loading in server-side XML. With the more recent introduction of the OpenLaszlo servlet, Laszlo applications can now also consume Simple Object Access Protocol (SOAP)-based Web Services. In late 2004, the Laszlo platform became open source and therefore free for development and deployment.
As an open-source tool, Laszlo is likely to gain favor among the set of developers who currently tie themselves to the open-source "LAMP" family of products (Linux, Apache, MySQL, and PHP).
For many of the same reasons why Laszlo was developed, Macromedia set forth on its own project to create a more developer-friendly approach for building applications for Flash Player. In 2004, Macromedia released Flex 1.0 (followed by Flex 1.5 and Flex 2.0 in 2005 and 2006, respectively). Architecturally, Flex applications are similar to Ajax applications, in that both are capable of dynamic updates to the user interface, as well as the ability to send and load data in the background.
The Flex 2 product line provides the next generation of developer tools and services that enable developers everywhere to build and deploy RIAs on the Flash platform.
The Flex 2 product line consists of several pieces:
Windows Presentation Foundation/XAML/Expression
Microsoft has announced they will launch a set of tools to help developers build RIAs on the Windows platform. The new system consists of the following:
Using these tools, Microsoft is promoting a workflow in which designers create compelling user interfaces with Expression, and then developers can implement the business and data access logic using Visual Studio.
Because these tools are not publicly available yet, it is impossible to predict the success or market penetration they will have. Microsoft publicly stated they will have support for other platforms (specifically with their WPF/E, which is an abbreviation for Windows Presentation Foundation/Everywhere), but specific information, such as how much of the WPF technologies will be available with WPF/E, has not been forthcoming. It is encouraging to see Microsoft finally promising to provide tools for platforms other than Windows, but it's too soon to see how they will live up to that promise.
Assuming that the cross platform promise is met, WPF may some day offer a very compelling platform, in that they can leverage integration with Visual Studio, which many developers already use, and they have a separate design tool specifically for designers. One potential weakness of WPF is that it is first and foremost designed for building desktop Windows applications, not browser-based ones. The idea is that users will be able to install WPF applications via the browser, but they are likely to be much larger downloads and memory footprints. Also, it is worth noting that it is likely to be a long time before WPF reaches any kind of ubiquityeven on Windowsbecause of the large download required. Though it has been promised that WPF will work in Windows XP (currently the largest install base of an OS), it's not clear when XP users can really expect it, or what they can expect from it.