Hopefully this won't jump on the whole Macromedia/Adobe speculation bandwagon too blatantly, but there was an interesting post on CF-Talk this morning that I can't seem to respond to for some reason, and I thought it was worthy of discussion since the RIA space is going to be an interesting one to watch over the coming months. This is particularly true because of Adobe's purchase of Macromedia when considered vis a vis Microsoft's upcoming Avalon technology.
To summarize, the post I was attempting to respond to on CF-Talk stated that there is no need for Adobe to compete with Microsoft because they don't have any competing products. The poster went on to say that XAML is a technology that's designed to build Windows applications, not RIAs. Here's why I think they're missing the point and why I think there's going to be fierce competition in this space in the next couple of years.
Microsoft and the new Adobe will absolutely be competing for mindshare in the space of the new breed of internet-enabled applications. This does *not* mean browser-based applications. IBM had a really interesting technology called Sash a few years ago (site seems to be down as I post this), and this isn't entirely dissimilar to REBOL, which also is languishing for whatever reason. The point here is the idea of RIAs has been around for several years (remember all the talk of "X Internet" a few years ago?), but the specifics of the implementation have yet to be defined. This is why it's such a crucial time in the evolution of RIAs.
The web browser is not the only way to distribute RIAs, an idea Sash and REBOL put forth years ago. It didn't catch on for one reason or another (I think Sash could have been a completely killer app if IBM had put any muscle behind it, but it's typical of IBM to come up with a great idea and not follow through), but it absolutely will very shortly.
Say this with me now: Internet apps do not need to run in a web browser. Microsoft's idea with XAML and Avalon (I've heard them talk about it in person a few times) is to have a Flash- or Flex-like experience that's integrated into the OS, with the advantage that the apps can be distributed as easily as a browser-based app. I've heard Macromedia say on more than one occasion they're moving in the same direction, namely Flash-based apps that run on the desktop without the limitations of the browser or current Flash player, or even Central (which is a poor implementation of a great idea in my opinion).
So what does all this spell? Direct competition heating up between the new Adobe and Microsoft in the RIA space. The overall direciton of RIAs is still being defined right now and there will be a whole new class of RIAs that won't run in a traditional web browser. As usual I think we'll see the two competing technologies co-existing, but the new Adobe has a huge opportunity here for a few reasons.
First, there are people in the world who don't use Windows (it's true!), but most importantly there is the huge mobile device market that's set to explode any day now, and already has outside the US. If Macromedia/Adobe can get Flash to be ubiquitous on those devices and come up with better native OS integration with these new internet apps than we're seeing with Central, then they can be the ones who define this space. Microsoft's technology is probably a couple of years off, and even when it does come out it takes *years* for a new Windows OS to reach critical mass.
Bottom line is there will absolutely be full-blown head-to-head competition between the new Adobe and Microsoft, and in my opinion the timing is perfect for Microsoft to be left with their pants down. Yes, anything Microsoft comes up with gets a large adoption because hey, it's Microsoft, but I believe this is a rather unique opportunity for the new Adobe. Let's hope they capitalize on it.
If nothing else, we're set to see some fantastic innovation in this area, so hold on to your hats and be ready to change the way you think about and build internet apps. Definitely an interesting time to be a web, scratch that, internet application developer.