A list of Rich Internet Application Technologies for the Digg crowd

A quick rundown of the major Rich Internet Application technologies. How they're built, what they should be used for, and where the work.

This comment thread made me realize that there is still a lot of confusion about what the different RIA technologies do. Statements like "Flex is Adobe's AJAX offering." or "Flex is like a weak version of WPF/E when it comes down to it." just show people haven't quite grasped where all of these technologies fit. Hopefully this can shed some light.

OpenLaszlo - An open source Rich Internet Application technology. The IDE is Eclipse-based, you write a combination of XML and ECMA Script (called LZX) to build the UI and add functionality. With OpenLaszlo 4, you can deploy OpenLaszlo applications as either Flash apps or DHTML/Ajax apps.

Flex 2 - An application framework that enables developers to easily write apps on the Flash platform. Does not require a server, uses an Eclipse plugin as the IDE and requires Flash Player 9 for the user to run apps. The XML user interface language is called MXML and the scripting language is ActionScript, an ECMA standard. Good solution for building applications entirely in Flash. Flash Player 9 is currently available for Mac, Windows and Linux.

"WPF/E" - Microsoft's cross platform rich internet application runtime, still in beta. Currently the main focus is on web video. The IDE is a combination of Visual Studio and Microsoft Expression studio (Microsoft's design tools). XAML is the XML based user interface and currently JavaScript is the scripting language. There is also talk that .NET code will be added so it can be used as the scripting language. "WPF/E" is only a small subset of the .NET 3.0 framework, so right now it's ideal for adding a bit of rich functionality to Ajax applications but not building entire WPF/E applications. Currently runs on Mac and Windows for all major browsers.

Apollo - Adobe's unreleased cross-platform desktop runtime. Provides APIs in JavaScript and ActionScript that hook into operating system and allow for file I/O, system tray notification, native window manipulation and online/offline synchronization. Still in alpha so not all of the functionality has been decided. Applications can be written in either Ajax or Flex/Flash. Version 1.0 will run on Mac and Windows. Ideal for desktop applications that need to be cross platform.

.NET 3.0
Windows Presentation Foundation (WPF) - Part of the new version of the .NET Framework. The IDE is a combination of Visual Studio (the next version, "Orcas" has integrated support for WPF) and Expression Studio and the UI language is XAML. WPF Supports native 3D acceleration and can be deployed as a browser application called XBAP. Meant for giving developers the ability to build great looking desktop applications. Currently only runs on Windows Vista and Windows XP.