What's wrong with Macromedia Flash?

CNET reported a new announcement from Macromedia a few days ago:

"For most Web surfers, Flash is the blinking, animated frosting on Web sites. Now Macromedia wants to make it the whole cake.

The software maker is pitching Flash MX, the new version of the software to be announced Monday, as a one-stop resource for designing entire Web pages and associated applications. The update signifies a greatly expanded role from Flash's initial function as animation software."

I think this is a terrible idea, and said so on GranneDev. Some people pushed back and wanted to know why I thought it was a bad idea. I think this table illustrates why building entire Web sites in Flash, or even injudicious use of Flash, is a bad idea.

HTML Flash
An open standard, approved by a standards-setting body. A closed, proprietary system created by a company out for profit (profit is not a bad thing; i'm just pointing out that a company's goals are very different from a standards body's).
Not owned by any one company, so there's no danger of HTML being withdrawn from the market. Owned and overseen by one company, who may go out of business, or be bought, or decide to change strategies at any time.
Open to viewing by anyone just by choosing "View Source", making it easy for people to learn. Not open to examination by anyone wanting to learn more.
Actually a text file, which makes working with it simplicity itself. Actually a binary file, which makes working with it far more difficult.
Easy to create with any text editor running on any operating system. Create-able only if you own Flash, which runs only on Mac or Windows, and costs 100s of dollars.
Degrades gracefully on almost any browser and any device (cell phone, Palm, etc.). Viewable only if you have the Flash plugin installed, and only then on your Web browser, not your cell phone or Palm.
Generally, extremely small downloads. Generally, larger downloads than straight HTML.
Cacheable on your hard drive, which means it's reloads quickly when you return to the page. Not cacheable on your hard drive, so you have to reload the Flash animation every single time you return to the page.
Allows for navigation using the Back and Forward buttons. Not navigable using the Back and Forward buttons on your browser, and therefore breaks one of the primary navigation mechanisms that all browser users learn and use.
The user controls what his browser displays; for instance, a user can choose to block ads or JavaScript or popup windows. The user has no control over what the Flash animation displays or does, and must view anything included in the Flash animation, and cannot stop the scripting language from doing what it wants to do.
Can copy text and images. Cannot copy text and images.
Easy for search engines to index. Not indexable by search engines.
Easy for people with disabilities to work with. Difficult for people with disabilities to work with.
Easy to internationalize: if necessary, a user can copy text & run it through an online translator. Difficult to internationalize; since a user cannot copy text, a user cannot run your content through an online translator.
Cannot spread viruses. Since it's binary and "active", can spread viruses (see http://securitytracker.com/alerts/2002/Jan/1003189.html).
Good for presenting an immense variety of information: narrative, informative, educational, and so on. Good only for presenting information dealing with processes (how to put together a bookshelf, or how to change a flat tire), time (timelines), and space (spatial layouts, panning & zooming); otherwise, it's eye-candy.

As a acquaintance of mine said when discussing the relative merits of Flash, "Note, I'm not saying you can't do cool, interesting, productive, or amazing things with Flash, just that given the primary purpose of the web is to disseminate information to the largest audience possible *irrespective of the technology* of the user, Flash is anathema to most of the purposes of the web." ~ M. K.


Just ask yourself this question: would the Web be where it is today if it had been created using Flash?

WebSanity Top Secret