March 21
A million dollar question: which RIA technology do we recommend?
It could be at the end of one of our presentations at a conference, or in the middle of an RFP from a prospect or at the beginning of an email from an analyst, but the question is always the same: “Which RIA technology do we recommend?”.
Don’t worry we have an answer, actually a million dollar answer.

This reminds me of course of a similar question that the same people asked 10 years ago: “Should I use Java or Microsoft technology?”. And of course every developer, architect, project manager, CIO had the right answer and could probably list 5 reasons why Java or MS was better than the other. Of course there were also a few souls that would evangelize the idea of building their enterprise on PERL but we haven’t heard from them in a while.
So the RIA question came up this past week again and a few brave souls at Molecular decided to put ink on paper and let the riot begin. Here is a summary of what they had to say [barely edited]:
- Flash/Flex tends to run more consistently when your users are on multiple platforms
- Flash is superior for smooth animations and transitions that involve more than just a few elements on the screen
- With Flash you get a lot more freedom to use odd shapes as clickable/interactive objects. Need an amoeba shaped button that is not clickable outside the confines of the general rectangle? You’re going to need flash for that one…
- Flash can be annoying for managing text, since its fixed-size elements often force designers to create scrolling regions of text within pages where normally the region would simply expand to accommodate however much text there is. Not sure if that made sense, but it drives me crazy.
- You may wish to use Flash to _present_ navigation links, but do not use it to IMPLEMENT navigation – you are opening the door to SEO hell / dual-site maintenance.
- AJAX is best suited for applications where page content needs to be updated dynamically with simple animations
- Do NOT use flash to handle things that can be done perfectly well with traditional technologies – such as the footer links. I don’t care what they say about font kerning, it’s all
BSthat you will pay for with cost and time overruns. - Flash/Flex are the sole choice in situations involving multimedia, video and audio
- in reply to the one above: Absolutely not. See: the site we just launched for E&Y or the new YouTube API. You most certainly can do solid video integration with a simple embedded player (if they’re using FLV, like they should) that exposes methods with ExternalInterface. That goes both ways: your player can trigger JavaScript and vice versa.
- if you want to have a page be updatable by a server without user interaction (remember “push” technology?), you may want to use flash for this
- in reply to the one above: This is possible without flash by using a technology stack many call Comet (just another soap brand, eh? :). Meebo and Mibbit (not related, surprisingly) have excellent implementations of this. Though– I’ll concede that it’s likely much easier to develop in Flash.
- Running multivariate testing could be easier with ajax, unless you were testing swf vs swf.
- Web analytics seems to be generally equal, flash apps typically reach out using ExternalInterface.
One more that I’d like to add:
- 3D animations: Flash Papervisio3D
Finally, as consultants we don’t always get to make the right final decision, sometimes we are handed the technology and we are told: go build it. It may not always be our preferred choice, but …we’ll try.
Disclaimers:
- I used the word Ajax loosely, in certain cases I should have said dhtml, but you get the point
- We didn’t consider other RIA technologies like Java applets (!), laszlo, you-name-it, because that’s not what we use, but if you do, let us know
Craig Andrews said on March 21st, 2008
The first major difference is that no one can take apart a Flash app and figure out how it works. This will be especially painful for Molecular, as we all learn by seeing what’s cool out there, figuring out what “makes it tick,” then applying those ideas and technologies on our own projects. If we can no longer do that, it really kills our ability to move forward.
The second major difference is in the development of new talent, or lack thereof. If Flash, Silverlight, or any of the other proprietary technologies win, the ability for people to learn will be greatly hindered. Flash’s development environment costs a lot of money - money that students, for instance, do not have. So they simply won’t learn it, and therefore, they won’t join the industry, and our rate of innovation slows to more or less a grinding halt.
Third, our ability to interoperate with systems is drastically hindered. Right now, if we want to extend GMail, we can do that - with a quick greasemonkey script and a few hours, a developer can accomplish a lot. We can also “screen scrape” an open standards site (aka html), and syndicate that data wherever we want, or just study it. These are things you cannot do with Flash and other proprietary technologies - unless the creator explicitly allows you to do so. Would we have RSS today if we didn’t have screen scraping yesterday? What else would we miss out on in such future?
Fourth, the development of the technology is left to one vendor, making a monopoly. For example of this, consider what happened with Internet Explorer after Microsoft won the Netscape/IE browser war. IE stagnated for years. If Flash, or Silverlight, or some other proprietary technology wins, then it’s vendor no longer has a reason to develop. In fact, it has incentive *not* to develop - less resources spent on development means more money for the investors. In the case of open standards, the industry leaders (like Molecular) will always be pushing the envelope, and paying people to make runtimes (like Firefox) better, or working together in standards organizations (like ISO, ECMA, or W3C).
We need to not only consider what is good for our clients *now*, but also what is good for our clients and ourselves in the future. Molecular, and many other companies, could not operate in a proprietary world… and I think we need to keep that in mind what we talk about the “advantages” Flash has over AJAX.
Paul Irish said on March 23rd, 2008
Interesting thoughts.
Glenn Barnett said on March 24th, 2008
At this point, the question shifts from WHICH to use to HOW to use them.
People must be able to see through the zealotry that various constituents bring to the table, and look objectively for proven concepts and examples that deliver on a rich, polished, immediate, scalable, extensible, spiderable experience.