I\'m in the trade of developing business web applications. They are mostly internal-use, sometimes with a partner zone, but rarely available to the public internet. They are
I've run a successful small business (myself, plus 2 other partners) developing web apps for large financial services firms (Fidelity, Hancock, Vanguard, T.Rowe Price) for 7 years using nothing but Flash.
For the first few years (2001-2004), I felt like we were ahead of the curve - very few other companies were using Flash to develop robust, "real-business" web apps. In 2005-2008, I felt like we had lots of competition. Now, I'm starting to see the end of the road - JS and Ajax now make it pretty easy to do all the things we used Flash for (asynchronous communication, highly responsive interactivity, charting, graphing, drag-and-drop, etc.)
Here's a few of my opinions:
Flash can definitely handle "real" business applications - our clients use our apps to run or integrate with trading systems, risk management applications, portfolio monitoring, and other business critical functions. Anyone who says Flash can't handle such things are mis-informed.
I developed desktop applications for years before starting my own business. Flash was the first technology that allowed me to do in a web-app as much as I could do in a desktop app.
Flash does allow us to develop once, and run on any browser
Flash gives us a much larger array of UI controls and widgets - when a specific type of interaction requires more than just a text box or radio button or drop-down menu, we can build whatever we need. Some apps require novel interaction affordances
That said, in our experience, a web app must look like a web app, otherwise users won't get it. So, even though you can build any type of UI control or interface you want, you should probably build them to look exactly like standard HTML controls, and EXTEND their behaviors, but never change them. Don't expect users to learn something new.
If you pay attention, you can keep your Flash apps more lightweight than a comparable JS/Ajax implementation. Get rid of extraneous graphics, animations, unnecessary fonts. We've build serious quantitative Monte-Carlo simulations/financial planning apps that were lighter than many of the popular AJAX libraries.
The biggest downside is managing your app/sharing the workload with other developers. Bottom line - there just aren't that many Flash developers, and fewer established coding standards or frameworks. So, know in advance that you'll probably own the app yourself for as long as it lives. If you have clients that will take over the app once you deliver it, they'll have a hard time finding new developers to manage/extend it.
The second biggest downside is that you're beholden to Adobe. If they decide to discontinue Flash, we're stuck.
As someone else pointed out, accessibility is a real problem. There are workarounds, but it's a LOT of extra work, whereas it's often 'free' if you use HTML. (Although AJAX/JS also can have huge accessibility problems as well).
I don't expect that the iPhone will ever support Flash. While Flash is essentially ubiquitous on desktops, it may never make it to mobile. (Adobe offers FlashLite for mobile, but I don't know much about it. Seems like the uptake has been pretty minimal.)
While other technologies are catching up (and surpassing it in some cases), I think Flash has at least another year or two of useful life.
Hope that's helpful. Good luck.