I know this is long and boring to read and I did post it in the app forum already but I really wanted to start a discussion about this. The boardroom is the next best forum because this is as much about methodology and approach as it is about the technologies used. I hope there are professional developers in here who are interested in ajax and perhaps concerned about the implications for flash in the long run.

thanks.

_____________________

If you're interested in web application development I'm sure that you've heard of Ajax (Asynchronous JavaScript And XML).

This new approach to creating interfaces and interaction on the web is based on:

- using standards XHTML/CSS,
- manipulation of page elements using the DOM
- updated content and data exchange using XML and XMLHttpRequest

Although the advocates of this system are promoting it as a collection of technologies working together, the key to ajax is XMLHttpRequest. This little fella allows the web page to exchange data with the server without reloading the page, all of this happens in the background, and the page can 'react' using javascript to alter page content utilising the DOM.

I'm not going to go into a long-winded explanation of Ajax here, enough to say if you haven't heard of it you should do some research because it is the 'next big thing'. Take a look at google maps for the best example of Ajax in use today.

What I'm interested in hearing from people here is how Ajax will effect the use of flash by web application developers.

Take a look at this.

That is the power of Ajax.

Now, you might say well flash can do that, has been able to do that for a long time. And you'd be right. As far as I can see there's nothing Ajax can do that flash can't, and flash is certainly a 'cleaner' development environment, being a single technology with a purpose built development application.

Some early examples of Ajax use flash as part of the toolbox, until recently flickr used flash on almost every page, alongside some nifty DOM tricks that enabled you to create/edit content on a page without reloading it, while XMLHttpRequest inserted your new data into the database invisibly to the client. I always loved flickr for their use of technology and page widgets that neither insult the user's intelligence, nor confuse them.

But.

Due to user demands Flickr (now owned by yahoo) is removing as much flash from the site as possible and replacing it all with javascript/DOM techniques instead.

Why is this? Is it because flash wasn't working properly? Is it because people didn't have the flash plugin? No, none of this, people just didn't like flash. As one photographer/developer recently told me:

I personally don't like it either. Actually, I believe the thing with Flash is all psychological. I <b>hate</b> seeing the loading screens. Reminds me back to the 32-bit videogame days or something.

We're all used to JPG's scrolling down r 'unpixelate' themselves rather than seeing a loading countdown which seems to take forever, but really doesn't when compared to JPGs. It's all psychological. I hated having to check out that damn Flickr loading panel everytime I wanted to see a photo. Now I'm happy.
The lead developer at Flickr, Eric Costello, said at a recent Ajax gathering that they had made the change because of user demand, and that replacing all the flash function with javascript had been difficult, especially with cross browser problems. They have succeeded admirably in doing so but to my eyes the javascript just isn't as 'cool' as the flash, it flickers and jumps about a bit, where flash was just smooth.

This raises a couple of questions.

Firstly, is Ajax what users, who really do seem to have a continuing dislike of flash (*), have been waiting for? A way to say that flash just isn't necessary any more, even if programming in javascript is messier and more problematic for browsers?

And secondly, isn't the very concept of Ajax, getting away from the browser reloading page model, just recreating all those same criticisms of flash? Where people complain they can't bookmark anything, or that interfaces don't behave as they expect them to? Derek Powazek, a developer at the Ajax meeting said this on his blog:

Stop thinking about the web in terms of pages that go from a server to a browser, and instead think of pages as collections of chunks that can each go to and from a server as needed.
I understand the excitement that this is all now possible within a traditional browser page, as long as it's a modern browser, but hello, hasn't this been flash's functional model for the last few years? Hasn't this been the concept that has had all flash application developers excited since the coining of the term Rich Internet Application (RIA), since we first saw that MM pet store application example?

The answer is yes, it is. So what's so much better about Ajax? A collection of technologies (that may or may not include flash) that are thrown together and made to jump through hoops to work together in a way that flash, as a single technology, was designed to do.

Well, there are advantages to the XMLHttpRequest/javascript/DOM/css/xhtml way of doing things.

- more consistent interface elements with the rest of the browser, whatever browser it may be (**)
- a standard/free HTTP server backend
- more support for the tools, which aren't commercial protected as the SWF format is.
- data also seems to move faster using XMLHttpRequest than it does trafficking through flash, no matter what method you're using.

Mainly though, what I think we're seeing is developers who have always been hacking away at the browser/html model, doing cool things and neat tricks, finally able to bring everything they've been learning together and create this new paradigm for web applications, a paradigm that takes nothing away from their validating XHTML and CSS. I can understand this, I love standards design and will never create another table-based layout again, and I will no doubt be using an Ajax foundation for a project soon. But I can't help but think that none of this is new. The way it's being done is different, but flash has been the answer to all of the problems Ajax is being hailed as overcoming for years.

What has held flash back from being accepted is a prejudice on the part of certain developers and on the part of the user. I can understand this prejudice, and I even share some of the concerns about the flash RIA way, such as bookmarking pages, accessibility of design and code - remember that with Ajax everything is laid bare to be examined by anyone, but isn't the Ajax way subject to all these same problems and shortcomings? How will users react to Ajax-driven sites? I guess time will tell. My bet is that the lack of flash on the page, reasonable or not, will make users far more likely to accept this 'new' way of doing things, of their form submission being validated as they type it, etc.

Is it fair? Hell no, flash has everything to offer the developer, a single technology and working environment with no browser difficulties at all. But its proprietary/commercial leanings and it's lack of transparency haven't endeared it to many web developers who are now embracing Ajax as a new and fascinating concept.





*although there are less crappy flashturbation sites around these days, many users equate flash with all those stupid overlaid web ads, one of the most popular firefox plugins blocks all flash on a page.

**so many flash developers seem to have little understanding or appreciation of how important this factor is to many of the end users.