First used in a Macromedia white paper back in 2002, the term RIA started steadily infiltrating everyday usage just as the concept undering it gained feet in the real world – well, if real can be legitimately used to refer to something as nebulous as the web. In a dialectic spiral from text to media in the broadest sense, the web is now a significantly modified version of what it started as and is obviously moving on to something qualitatively different, which I would refrain from further specifying right now due to an overall unwillingness to give another kick to the omnipresent web (insert a numeric value here) buzz.
An obvious part of this something is rich user experience, which has its designated niche in practice any department, enterprise included. The point where the web and the desktop get neatly intertwined is reachable via alternate paths represented by the players at stack – one by the name of the Flash Platform, another poetically dubbed Silverlight, and possibly a third one unobtrusively marking its presence named Java FX. For convenience purposes I'll go the somewhat uneven way and dismiss JavaFX for a while – until the platform matures a little bit more I guess. Or until it ignites the web so that ignoring will no longer be possible.
The most heated debate right now overwhelmingly focuses on Flex versus Silverlight. A series of verbal advances on the part of evangelists from both the camps signal ever tougher competition but leave an unsuspecting reader somewhat at a loss as to what's the best pick.
In the present piece I do not claim to communicate the ultimate truth concerning the query formulated above, but my best guess is that there's simply no best pick across the board, although there is a set of factors that would more or less safely predefine a decision that makes most sense against a specific development context.
In fact, I would describe the typically quoted reasons behind RIA platform choices as by and large background-biased. In the way of a quick example, let us take a look at the overall approachability of both the platforms for a while. What immediately springs up in this connection is, on the user side, the market penetration, ie the installation base for the relevant plugins, and, on the developer side, the proliferation of the relevant programming languages and tool inventories. The first one makes Flex a justifiable choice, where the second one, given the sheer span of the .NET community and the framework's solidly established status, is a definitive vote for Microsoft's Silverlight. Fair enough, Adobe's Flash Player is overwhelmingly ubiquitous right now and .NET developers are quite easy to come by, as compared to the ActionScript-savvy people. This could pull a certain degree of weight, but is probably of secondary importance, other things being equal. By this I mean that if I have a pool of competent .NET developers and want a LOB application, why should I care about the installation base? Similarly, if I know my ways round ActionScript and MXML, I would not probably care what others think I should be developing in.
Whatever angle you pick to take a look at both the platforms, it gets revealed that there are bumps and dents both ways, so any abstracted either or or discussion suggests no hope for a resolution. Flex is a full-fledged mature framework, whereas Silverlight has a good deal of catching up to do – starting with webcam and all the way to right-to-left support. Another thing is the openness factor: it should not be discounted that Flex is open-source, and, what is more, cross-platform (it should be noted, however, that there is in fact an open-source Linux version of Silverlight called Moonlight, but it's still behind as a 2.0 beta). On the flip side, ActionScript is essentially a scripting language that, unlike C #, can not be used for both the client and the server. In terms of the tools and community support available, it looks like both (cf. the Flex and C # communities) fair quite well. As to the steep learning curve for anyone taking up ActionScript – well, that is again a question of background-driven concluding. However, it is an indisputable fact that when it comes to the visual side, Flex undoably has the upper hand.
The bottom line is that Flex is already there and developing (much is still to be done to strengthen the enterprise focus of the Flash platform). Silverlight emerged a little later, but is also developing. The ultimate choice, as usual, becomes apparent in the field.