Most of the answers here seem to be people stating that they "hate" 100% Flash sites (not only dislike or not recommend, just HATE like "omg flash sux lolz" kind of hate) and then providing a list of some really weak (and sometimes just untrue) arguments as reasons for that. Although I've addressed some of them in the comments, let me write here a recap of what seem to be here the biggest arguments against full Flash sites and why I don't agree at all with them:
- SEO and Deep linking/Bookmark Problem
SWFAddress. 'Nuff said. It has been around for years, but people still believe that it's impossible to deeplink or bookmark flash content, obviously because they have NEVER bothered to check it, or developed a Flash site and faced the problem (which has been solved for years, like I said). What I find funny is that most of the people seem to recommend/favor Ajax/javascript+XHTML to build dynamic websites... But Ajax content ALSO can't be deep linked, or bookmarked, or indexed by google, unless you use a workaround... which works for Flash content too!
Then, why many full flash sites out there don't implement it? I don't know, maybe is not necessary (like for a game site, an advertisment site... most of The FWA sites) or it could be just a lazy developer (see below).
- Accesibility:
First of all, Flash is very friendly to users with disabilities. You can check the adobe Flash accesibility page but I'll explain: Flash excels at presenting visual and audio content. It is really easy to build controls that change the font size, the contrast of the page, etc. for users that need it. I won't go as far as to say it's as easy to implement as applying custom stylesheets but it's really not a burden/hassle... if you need your site accesible, put your mind into it and implement things right (which is true for all technologies).
Also, disabilities don't only mean short-sighted or color-blindness, for example in my work we provide video on the web in sign language with syncronized text (not subtitles, a full wall-of-text) for deaf people and I really don't think it would be easier to implement using any other technology (and bear in mind I don't say it would be impossible).
- Mobile/Iphone:
To make things clear, it is just not true that Flash content does not run on mobile (that's what flashlite is there for, isn't it?). It is however true that, as for today, many systems (including the iphone) do not support Flash. Is this such a big problem? I don't think so, and please let me elaborate. If I build an awesome XHTML website optimized for 1024x720, with great javascript effects and pretty pictures, I assure you its going to show up horrible on a mobile device (if it even does). I attended a mobile web conference where it was said that the size of a website for mobile should never exceed 20kb... so good luck with that.
Most important websites implement an special site only for mobile, obviously in plain HTML... which is exactly the same you should do for a full Flash site. As for Flash on the iphone, when Flash CS5 comes out and suddenly Flash movies can be compiled into iphone applications, I really see no reason for apple to hold down the iphone flash player any longer. Although it doesn't really bother me, as I said, because I believe the way to go is a mobile-specific version of the web (or even iphone-specific).
To summarize: I find that most arguments aganist Flash are just grudges people hold aganist Flash, which are based on myths that have been around for years but really don't hold true anymore. Many of the arguments apply just the same to bad XHTML/Ajax sites, so most of the time, critics refer to just complains aganist poorly-built Flash sites, so sucky/lazy Flash developers are the ones to blame, not the technology (and the fact that there are many Flash developers out there that come from design and/or don't have a programming background doesn't help at all).
I'll now answer the proposed questions from my perspective (that of a Flash developer):
- What type of webapps should consider do all the frontend in
flash?
From the top of my head:
Sites to showcase or advertise a spectacular product, like a car, clothing etc. When you want to impact the user with awesome views and interactivity, Flash is by far the best.
Artists porfolios: webs for photographers, musicians, etc. where the artist's work has to be integrated in the site.
If you are a Flash developer/work for a Flash developing company, building a full Flash portfolio site makes a lot of sense doesn't it? ;)
In general, any site that is more about user experience than data. Please refer to the master Keith Peters from bit101: Flash, what is it good for?
Would it be easier? Yes/No, only if you suck at HTML+Ajax but you excel
at Flash?
Depending on your needs, Flash very well could be the only tool. Some of the things that are not complicated to build in Flash would be a nightmare to develop in XHTML. Anyways, if you suck at HTML+Ajax, you shouldn't be developing web apps, should you?
Hell no. Even I agree that a web consisting of only full Flash sites would be a horror for everyone (except for adobe, I guess).
- When it should not be used?
I would say that when the site you're building is none of the above :P Absolutely not when text (information) is the most important part of the site.
- I guess that an extra benefit is that you don't have
IE+FF+Opera+Chrome+Safari
compatibility problems
Yes, it really is, not only an "extra" benefit but a really huge one.
- Would this be the next programming model for webapps front end?
This is a tricky question. I really don't see this is a war between 100% Flash/Flex vs 100% XHTML+Ajax sites. Flash/Flex is not there to substitute HTML, but it is a great complement to it. Always use the right tool for the job, and use any technology (or mix) you need as long as you use it wisely. I find it would be equally foolish to implement the wikipedia or your personal blog in Flash, as to build some really spectacular theFWA-style site using XHTML+Ajax.
Sorry for the huge text, and thanks for reading! Looking forward hate comments ;)