Ajax developers ask ‘Why?’, Flash developers ask ‘Why Not?’

In this incredible, insightful and revealing article with Kevin Cheng of Yahoo!’s Local UED team, the use of Flash for mapping technology is discussed.

Joshua Kaufman: Why did you go with Flash opposed to the more widely used AJAX?

Kevin Cheng: Why not? I mentioned this in a blog entry when we released the beta. When I joined and found out we were using Flash, my gut reaction was, “why?” as well. I asked the typical questions and in all cases, got satisfactory answers. So let’s run through them:

AJAX takes a lot of work. If you try hard enough, you can do almost anything with AJAX that Flash can do but the key phrase is “try hard enough”. Part of the reason that Google Maps was such a surprise was not so much its interface (that’s been done for years by MapPoint and other client based mapping tools) but the fact that they managed to accomplish this in a web browser. I think we were all just amazed that it was even possible. Except it wasn’t – not in Linux, not in Safari.

Not only do you have to hack a lot to even get some things to work, you then have to hack some more to make it compatible with everything. Flash just works so long as you have Flash. Which brings me to my next point …

Depending on what numbers you listen to, the Flash install base is about the same, if not more, than the base of net users who have browsers capable of running JavaScript applications at the complexity of most AJAX mapping applications.

The design/geek community has a tendency to worship implementing something because it is hard to do. For example, you’ll see articles about how somebody managed to do something with just CSS. Nevermind that it took twice the amount of code, numerous cross browser hacks and offers no additional accessibility, it’s in CSS and validates! I feel like AJAX has that kind of community sometimes. “Look, I created this thing in AJAX – sure it’s been done a gazillion times in Flash before but it’s in AJAX!” Aside from the cross platform ease I mentioned, there are some effects that are just plain easier in Flash. The prime example is of course the pirate map and radar map Justin Everett-Church did soon after Beta launched (Flash 8 required).

Developers have the option of not only using Flex but also our AJAX library. I think people don’t recognize that we also have an AJAX version. So even if you’re not comfortable with the Flash version, we have an alternative which, from everything I’ve heard from the developer community, is one of the best API libraries in the market. A lot of Yahoo!’s own properties use the AJAX library like Yahoo! Travel’s TripPlanner and our slightly updated Local front page.

As a designer, I appreciate the feeling that the sky is the limit now when it comes to what kinds of interaction we could or should have. Of course that has to be tempered. Just because we can animate a gif doesn’t mean we should.

Finally, there’s the question of back button/address bar support. How will people send a link or bookmark a set of directions in Flash? The solution we have in place is what I feel to be the most underrated features we have. Every move, every plot, every zoom automatically updates the address bar so when you bookmark or want to send the map, you do what you would with any website – save or copy the address bar. Ironically, we kept getting asked where the permalink button was.

Don’t get me wrong, AJAX has created a lot of options for us as designers and Flash isn’t something I’d recommend for everything but I think people who dismiss Flash on principle are missing out on a lot. We certainly to run into problems, in particular with performance, but I’d say that so far, it’s a pretty nice package.

The article in full can be read here > unraveled.com (posted 8/28/2006)