Ryan’s post, and the ensuing cry and hue made me finally put to pixels what I’ve been thinking for a while.
Ajax and Flex can both at a certain level be used to build web applications. Experts in each can probably get each to do most of what the other can accomplish. However, they work from different directions.
Ajax enhances a HTML website, and through enhancement after enhancement one can build a zippy web application that makes HTML do things it’s not really imagined to do, but it works and that’s actually a testament to the technology’s flexibility, so no fault there. Additionally Ajax can be added in very small doses to enhance a site one little section at a time. Further I would go on to say that when combined with Web Standards, Ajax can build some very cool applications that can degrade but still work in less capable browsers.
Flex replaces the HTML interface with Flash, and focuses on building new interfaces for the data it’s working with. It’s really good at pushing bite sized chunks of data at a user, perhaps giving it a cool view like a chart or a customized display widget, and allowing the user to interact with it intuitively. It’s also important to point out that Flex makes it really easy to do so. However, for maximum efficiency you need to write little self contained applications. You really shouldn’t use it to enhance one drop down box or text box. (I know you can, but it doesn’t mean that it is as easy as other things, or even the right way to do it.)
Sure you can make a complete web application in Ajax if you’re one of the geniuses that work 37Signals, but for the rest of us, it’s still a little daunting to do an entire application in Ajax. In my opinion, it’s a little harder to write a full web application in Ajax than in Flex.
Sure you could write a blog in Flex. But even when you do, you admit that it’s just proof of concept, and not really intended to be a real interface. In my opinion, it’s not good idea to deliver content that has a significant text component with Flex.
If you were to show a spectrum of web applications from “content with some interactivity” on the left to “applications with small chunks of data”, on the right… then as you traveled from left to right you would start using Ajax, and at some point switch over to use Flex. Where you make that decision really depends on your existing environment, and your comfort level with the technology. (Perhaps whether or not you are 37Signals has impact on it, as does whether or not you are philosophically opposed to spending any money on software.)
So use the right tool for the job. Use Flex for rapid development of full blown web applications. Use Ajax to enhance sites that contain a lot of text content or need to tolerate several levels of user interactivity. Both can exist without annihilating each other.
Anyway, that’s my, possibly inarticulate, opinion on it… Yours will probably vary.