Politics and Such
Of course, if you do Flash or Java development, you are at the mercy of Macromedia or Sun, and the changes they make to their browser plugins. So which company you trust to “do the right thing” becomes a relevant question. In general, Java and Flash JVMs have been backwards-compatible, and Microsoft has an established history of keeping standards in constant flux to cripple their competition (a tactic that Joel Spolsky aptly calls “cover fire”). Draw your own conclusions.
It is definitely easier to hire “vanilla web developers” than people who can do real engineering using Flash. Drew McLellan writes
“It’s hard to find good people who are also prepared to work with tools like Flash. I’m sure they exist, but finding someone who’s a good Flash developer and is also geographically close and available for work is hard.”
Integration with multimedia
One of the big advantages of Flash is that it natively supports streaming audio and video, something that obviously isn’t a part of DHTML. If you’re working with multimedia, Flash is definitely the RIA platform to build your application on.
Availability of UI toolkits
“Even in IE the XMLHttpRequest object can often be blocked by slightly raised security settings (popular due to the commonly exploited holes of course)”
Writing this kind of code (in order to work on all browsers and degrade gracefully, everything is implemented two or three times) is annoying. Maintaining this kind of code is a real nightmare. When you depend on a plugin like Flash, compatibility problems are all but eliminated: as long as your client has the right plugin, your code should work.
Update (3/10/2005): more links for ya!