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:
So,
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.
Stay current on what's happening in Flash business. Sign up now for the Flashzine newsletter.
Balsamiq Mockups - a solid case for AIR