A lot of the value of HTML is that it is a machine-readable format. This is the reason why we all care about “separating content form presentation”, right? Microformats takes that to the next level, as does RSS and other XML-based approaches to structuring content.
IMHO, this whole movement toward more machine readable web formats is one of the most exciting things happening right now. Now how does Flex factor in?
From command line to visual interfaces
I started out in programming on the Apple II, but soon moved over to Unix in the early 80s. One of the core philosophical tenets of Unix was to create lots of simple text-based tools that could be chained together.
Even back then, there was a natural tension between formats for machines versus formats for people. For example, if you were designing the “ls” command for machines, you want to format the information simply, which is indeed the default for “ls”. If you are formatting it for humans, you may want a more readable format, which you can get through various command line arguments.
Now, let’s look at email programs. The original Unix mail was user centered, but fairly easy to navigate by machine. You go into the mail program, you type commands (like “2” to go to the second piece of email) and the email is printed to stdout. Yes, it’s intended for people, but you could theoretically write software that communicated with this thing through stdin and stdout. I don’t think that was the explicit goal here — even back then, it was probably better for a program to try to find out where your mail was being stored and to parse the text directly — but it was the style of text-based UI that was prevalent on Unix.
Shortly after this, more usable email programs came about that were totally about people and were terrible for machines. Pine is an example. Pine paints a text-based interface on your console window which is formatted for humans, not machines. It does so in a way that makes it very hard for machines to understand what it is doing.
Nowadays, in the case of mail, we optimize differently for machines and humans. Machines understand POP and IMAP. Humans use visual email clients like Thunderbird and Outlook, or web-based clients like gmail.
Applying this to the web
So now let me make a perhaps silly and perhaps self-serving analogy.
HTML -> command line (can be understood by machines or humans)
AJAX -> Pine (based on the same technology, but can’t be understood well by machines)
RSS -> POP (purpose-made information for machines)
RIA technologies -> Outlook/Thunderbird (made for people, not machines)
Of course, this is a gross oversimplification. There are other arguments for machine readability (search engines), and there are ways to make RIAs accessible to machines. But the main point I want to make is that at some point, you have to ask yourself if it is the right approach to try to make your application accessible to both machines and humans, or whether you should try to use two different formats for the two different purposes.