May 30th 2008 | Scott Delamater
After almost 10 years of working with Flash, I sometimes make the mistake of assuming that everyone knows what Flash is. Most people can't succinctly define it - they have their perceptions, but it's vague. Maybe you're someone that can define it. Kudos to you, but ask your spouse, friends, or family. They may even know you as someone that "does Flash stuff." But ask them what Flash is and you get partial answers at best.
In a lot of minds (don't
underestimate how many) "Flash" is an ambiguous term. Sometimes that
ambiguity turns into hostility, especially among developers that turn
their noses up at Flash "faux-developers."
I'm no "Flash Evangelist" - if you want to use religious terminology,"Flash Apologist" is more appropriate. There are great apps out there built with other great tools and technologies. But Flash doesn't always get a fair shake.
The reason for some of the ambiguity is that when people talk about "Flash," they're usually talking about one of three things:
you get ambiguous questions like, "Do you have Flash?" Unless that
question is coming from another developer, the person is probably
really asking, "Do you have FlashPlayer?" It's not an easily answered
question like, "Do you have Firefox?"
Another classically ambiguous question: "is that a Flash site?" Here "Flash" really refers to the type of content being served up.
Throw in Flex and the terminology gets more confusing. Flex is a just different way to author Flash content (which still plays in FlashPlayer). If you're a Flex developer, a question like, "are you a Flash developer?" isn't an easy yes or no question. You still make Flash content, and it's still delivered via FlashPlayer, but you may not work with Flash the Authoring Tool. So you're answer is, "well yes, but..."
I think some of this is why Adobe started referring to the "Flash Platform," but that's just another ambiguous term. It's only relevant to those within the Flash/Flex development community.
I don't know how to demystify the terminology. Within the Flash community, it's not a problem. But for everyone else, the terms create ambiguity that drives perceptions...more on that later.
A whole lot of people hate Flash and Flex, and with good reason - they've been
heavily misused. Any good tool in the wrong hands makes a mess. Any
honest Flash developer has to admit that they've used Flash more than
once when they really didn't need to. But used well it's amazing.
The common exceptions:
"Flash is bad for search engines."
Yep, it is. There are good ways to compensate for some issues (and have been for some time - neither of those ideas are all that new). But for many people - not just developers, but project leads and management types - SEO is the thing you do later, so it never happens.
This is probably Flash's biggest constraint. That's not a reason to throw it out - constraints are good. The way around it? Don't use Flash to display big blocks of text. Obviously that doesn't cover every scenario (shopping carts come to mind...), but there's usually no need to show pages and pages of text via FlashPlayer.
The other big exception is for people developing SaaS products. If you've created a Flex app, for example, you probably don't need the actual app to be spiderable. Maybe the app generates content that you'd like to make searchable - but that's outside the scope of the actual application. What does Google need to know about the internal workings of a Flex application that it can't find out from plain text on your product website? If you're not going to explicitly plan for SEO in your Flash website, leave text out of Flash. That solves about 95% of this gripe.
"Flash is bad UI."
Actually, no. This is the equivalent of saying "hammers smash thumbs." It depends on the proficiency of the guy holding the tool.
Some people still really enjoy citing this classic as authoritative. Yes, people abused the tool. But in 2000 we were also still writing ActionScript using dropdown menus, and you could make $60k right out of high school working for a dotcom. People learn, and things change.
One point that Flash-haters often overlook at this point in the debate is that HTML is equally capable of creating some hideous UI. Give a bad designer any tool, and it's going to be garbage.
"Flash takes a long time to load."
Assuming that "Flash" here means "Flash content," the answer is also no, it doesn't. There's nothing inherently heavy about Flash. Ask anyone that's ever had to meet the bandwidth requirements for creating ad banners - you can cram a LOT into 30k.
The bloat comes in when a designer/developer disregards file size. You have to optimize any media, and the complexity of optimization grows with the capabilities of the media. Optimizing a static image is quick. Audio takes a little more attention. Video even more. Flash the most. So do you throw out the power tool because of the risk of injury? Sometimes, maybe. Other times you just work with care.
"You have to install a plugin."
Yes, but you probably already have it installed. You have to be pretty aggressive to avoid Flash anymore. In fact, you probably have to install a plugin to keep the evil Flash content away. Adobe has done an amazing job of making Flash updates almost seamless, hence the ridiculously high adoption rates. (Good luck, Silverlight.)
Perhaps I've overlooked something, but Flash is the most ubiquitous plugin in the world. More web users have FlashPlayer9 than have any one browser. More web users have FlashPlayer 9 than have Windows, even. It's arguably the most consistent way to deliver web content at all.
There are plenty of other gripes, but I'll have to hit those some other time. The bottom line: Flash does rich media. Applications, video and audio, games - even banners and animations - are Flash's niche. Yes, other things can do this stuff too, and if you like those, great. Remember, I'm not trying to make converts. But don't go on a rant about how much you hate Flash or Flex without giving it a fair shake. Remember that like any tool, there's a learning curve, so don't gripe if you make novice mistakes and something doesn't work.
If you're a Flash developer, this is all extremely important because perceptions drive what people think you do. I write code all day, but a lot of people (that know me well) think I'm an animator or designer of some sort. That's inconsequential maybe, but what if a project manager has some misconceptions? And what if that PM works for a potential client/employer? You could be talking about SaaS development with Flex, and they may blow you off because "Flash is for making games." Or worse, they may listen to your whole pitch and bring you on board to create banner ads. Blech.