Flex vs. Avalon
I've had Flex (Royal) on my machine for quite some time and was able to talk with the product team during the alphas. Now that Macromedia has publically announced a lot of details around MXML and Flex, I can finally say a few things that have been on my mind ever since my sneak peak of Royal.
A lot of people in the anti-MS camp will look at Flex and say, “hey, it's cross platform RIA solution, and XAML isn't”. Although it may be “platform independent“ to some degree, it suffers from a few of the same problems that the HTML model does as well as a few of its own.
First off, it is “server dependant.” Remember, you need to deploy the MXML file on the server in order to actually use it. When running offline, you are severly limited by the fact that you cannot call into a significant portion of your functionality, because it is all on the server. For example, lets say that you wanted to run an XML transform over some data and then output that as MXML or SVG and dynamically load that data into your interface. With Flex, this can be done ONLY when online, because all compilation takes place on the server. With Royal, such an operation is not going to kill you, because you have the full power of the platform when running in online and offline modes (there are a ton of other scenarios where the same limitation will come back to haunt you). Of course, this is why Macromedia calls Flex the “Presentation Tier“ solution, because it won't work for anything besides the presentation tier. The more client side logic your app contains, the less useful Flex will be.
Secondly, if you are an ISV, you should forget about creating Flex based applications any time soon. There is no way to deploy Flex apps apart from the server, so anyone who wants to run your app now has the additional cost / burden of the Flex server. Macromedia has not announced a free “Flex runtime” that you can distribute, so not only is your client base is going to be very small to begin with, but if you are not pricing your app at $50,000+ a pop, the server price may be a prohibitive factor when customers are looking into purchasing your app.
Thirdly, web service support in Flex is not nearly as good as what is already available in WSE. For one, security limitations in the Flash player will prevent you from making calls to any web services outside of your domain without using your server as a proxy server for the request (maybe not such a big deal right now, but that could mean a ton of extra traffic on your network if you have a lot of clients using your app...). Also, take a look at the list of Flex's supported standards and notice that the entire WS-* stack is missing (you get SOAP support, but that is about it... looks like Microsoft has Macromedia beat hands down on that front).
That said, Flex is definately a very cool product. However, if you think that it is going to eat into the market share of Avalon, you are dead wrong. Flex is for the next generation of browser based apps, Avalon is for the next generation of desktop apps.
[1] Macromedia Flex: the Presentation Tier Solution for Enterprise Rich Internet Applications. Nov 2003. http://www.macromedia.com/software/flex/whitepapers/pdf/flex_tech_wp.pdf