Update: In the comments Sam reminded me that Sun’s JavaFX is a player in the RIA space. I meant to include Sun it but forgot. I’ve updated the post below.
Almost every day I’m reminded that very few people understand that Microsoft’s Silverlight plugin competes directly with the Flash Player, not Adobe AIR – or the fact that Silverlight is no where near the same thing as Windows Presentation Foundation (WPF). So I thought I’d try to add some high-level clarity on which technologies compete with which technologies. I’ll start with the programming languages.
Primary Languages
Adobe: ActionScript 3.0, MXML (Adobe AIR also supports JavaScript and HTML)
Microsoft: C#, XAML (you can also use other languages in conjunction with their Dynamic Language Runtime ‘DLR’)
Sun: Java
Ajax: JavaScript, HTML, CSS, XML
Frameworks, Libraries, and APIs
Adobe: Flex framework
Microsoft: .NET
Sun: J2EE, JavaFX
Ajax: Too many to name here. Prototype, Dojo, JQuery, YUI, are among the most popular.
Browser-based Rich Client Runtime (plugin)
Adobe: Flash Player
Microsoft: Silverlight (formerly codenamed WPF/e)
Sun: Java Runtime Environment (JRE)
*Google: Google Gears (a browser plugin that allows browser-based web apps to run offline, whis is something kind of in the middle between Flash Player and Adobe AIR)
Desktop Runtime (note: Microsoft’s WPF isn’t exactly a “desktop runtime” but that’s the only generic way I can describe it. It’s more of an integral component of Windows)
Adobe: Adobe Integrated Runtime (AIR)
Microsoft: Windows Presentation Foundation (WPF)
Sun: Java Runtime Environment (JRE)
Development Environment
Adobe: Flex Builder (Eclipse-based)
Microsoft: Visual Studio
Sun: Eclipse, NetBeans, JBuilder, etc. (not Sun products)
Ajax: Text editors, Eclipse, Aptana (Eclipse plugin), Dreamweaver
You can argue that some of these things compete indirectly but I’m comparing these based on capabilities and what they’re used for. I hope this helps clarify things for some of you.