A List Apart

Menu
Issue № 302

Flash and Standards: The Cold War of the Web

by Published in Industry, State of the Web, Interaction Design · 71 Comments

You’ve probably heard that Apple recently announced the iPad. The absence of Flash Player on the device seems to have awakened the HTML5 vs. Flash debate. Apparently, it’s the final nail in the coffin for Flash.

The arguments run wide, strong, and legitimate on both sides. Apple CEO Steve Jobs calls Flash Player buggy. John Gruber of Daring Fireball says that Apple wants to maintain their own ecosystem—a formula Adobe’s software doesn’t easily fit into. On the other end, Adobe CTO Kevin Lynch argues that Flash is a great content delivery vehicle. Mike Chambers, Principal Product Manager for Flash platform developer relations at Adobe, expresses his concerns over closed platforms. Interactive developer Grant Skinner reflects on the advantages of Flash.

              

However, the issue is larger than which one is better. It’s about preference and politics. It’s an arms race. This is the Cold War of the Web.

Ceasefire

Both the standards community and the Flash community are extremely good at sharing knowledge and supporting the people within their respective groups. The relationship across communities, however, isn’t nearly as cordial. Two things are happening: either the people within each camp stay to themselves, or one ignorantly hurls insults at the other.

As new technologies emerge, their following naturally starts small. An effective rallying cry is to find—or create—a common enemy. Huge strides such as Doug Bowman’s Wired redesign, Dave Shea’s CSS Zen Garden, and Jeffrey Zeldman’s Designing With Web Standards had a significant influence, not only on the standards community, but on the entire web design industry. They positioned standards as an alternative to Flash and table-based sites, not in conflict with them. However, less enlightened followers wrongly interpreted these champions’ examples as the first assault. As Adobe Photoshop Principal Product Manager John Nack says, “people want a certain ‘killer’ narrative.”

The same thing is happening today. Those pushing the HTML5 specification forward, such as Ian Hickson, Jeremy Keith, and the NYC gathering of geeks, are offering it as a new alternative with some major advantages over existing technologies. Yet again, some have dubbed it the harbinger of doom for Flash.

The antagonistic nature of this debate is destroying the industry. Designers and developers waste their time playing the “one-up” game, as opposed to collaborating. Specialization has its advantages, but only as a subset of a larger whole. Jamie Kosoy, my colleague and Associate Technical Director at Big Spaceship, says it well:

              

We don’t have a single “Flash developer” at Big Spaceship. In fact, we grimace at titles like that.…We happen to be good at (and love) Flash, but we also happen to be good at (and love) a couple trillion different other technologies.…We believe in strategic thinking and great design and pushing the limits. Nowhere do we say it has to be done in technology X or programming language Y in order to be a successful and engaging project, and we don’t believe the users who engage in the projects we put out there do either.

A line in the sand

The problem with rallying behind a technology is that it traps us within the confines of its constraints. We easily shift “don’t know” and “not sure” into “can’t” and “won’t.” Creativity is dictated by programming languages. How sad.

Technologies aren’t inherently bad or good. They’re only appropriate or inappropriate for certain circumstances. They’re a means to an end, not solutions within themselves. Each one is powerful in its own right to accomplish a certain goal. The responsibility to use an appropriate technology lies with the one who made the choice. Unfortunately, we’ve misinterpreted irresponsible development as inadequate technology.

Case in point: Loading. Flash provides powerful methods to track the download progress of every miniscule element. And what have we chosen to do with it? We load everything up front and make the user suffer through minutes of a loading sequence, instead of loading assets progresssively as they’re requested. The Flash platform does not deserve the blame for bloated websites—the developers who made these poor decisions do.

Until we realize the foolishness of faith in technology, we’ll see the same cycle repeated.

Doomed to repeat the past

JavaScript has grown exceedingly popular of late, with much credit due to easy-to-use libraries like jQuery and the rediscovered usefulness of Ajax. More and more, sites use JavaScript to provide great functionality for the people who visit. More so, many experiments—like Scott Schiller’s site and Browser Ball—push the boundaries of what JavaScript is typically used for. The same is true for HTML5, with amazing displays such as 9Elements’ HTML5 Canvas and Audio Experiment or Jilion’s more practical SublimeVideo player.

These new executions bring interesting questions, many related to user experience. If a feature needs a lot of code or graphics to power it, do we need to give the user progress indication (read: preloader) before they can use it? Once we use HTML5 video to interact with other videos, text, and graphics, will we need blending modes in HTML6 to create more seamless online environments? Will JavaScript developers realize the value that sound brings to an online experience and have to create ways to handle audio? Will we need a visual editor so that designers who don’t code can take advantage of <canvas>? Will heavily scripted web applications become intense processor hogs?

If this sounds familiar to you, it should. These are the kinds of questions the Flash community explored throughout its early years. Regardless of your opinion about Flash, it’s difficult to deny the tremendous growth it has experienced. From a simple drawing application, to a full-fledged scripting language, to powerful streaming video capabilities, and more, the Flash platform has expanded exponentially to respond to the needs of its users—the people who use it to create and the people who use the end result. For better or worse, Flash has shaped the way people absorb online content.

We now have the advantage of learning from that journey, and we’re already reaping the benefits. For instance, any interaction model that modifies the full page refresh breaks the browser’s back button functionality. While it took eight years from Flash’s inception to birth a solution such as SWFAddress, JavaScript developers have the benefit of hindsight and were able to implement a similar solution for JavaScript-based applications much faster.

I’ll go so far as to assert that most technological advances are born from something that would be good for people using it. When we put stock in technology and try to be creative for creativity’s sake, we almost always repeat our mistakes. When we try and solve problems instead, we force ourselves to care. Innovation is a natural side effect.

Worth fighting for

But we take pride in our technologies. If I’m not striving for my guru ranking in a particular programming language or design style, then what really matters? I’ve hinted at it throughout the whole article, but let me make it painfully obvious.

People.

People matter. Not users, but people. A user is a faceless entity, robotically performing tasks that we test and optimize. A person lives, laughs, cries, loves, hates—and uses the sites and applications we make. My mom. Your five-year-old. His grandfather. Her best friend. Their science class. They don’t tell us how much they appreciate our progressive enhancement or how we use the drawing API or our impeccable use of attribute selectors. They only say that a website was confusing or hard to read or fun to play with. That’s the real motivation for excellence: bringing ease, joy, and fun to the people around us.

We should be getting to the point where people can’t tell how a site was built. I love coming across a site where how it was made is not immediately apparent to me. That’s how it should be: Create something excellent where the technology is transparent, and allow only the curious to look under the hood to actually see what’s going on. JavaScript, Flash, HTML5, tables, Shockwave, Unity—no one cares when people using it can do what they’re supposed to. When something is broken—whether it’s functionality or the user experience—that’s when you’ll hear whining about platforms. Create a great experience for people and you’ll receive due praise, regardless of the technology.

We want you

The bickering is getting old. Here’s what we can do.

Start supporting initiatives instead of bashing them. Do you think Flash sucks? Don’t write a “Dear Adobe” rant on your blog; contact the Adobe team directly and tell them what you think could be improved. Think HTML5 is a joke? Get involved with the working group to make it better. Got a problem with how a certain site is built? Approach the creators with your concerns and suggestions, privately and humbly.

Agencies: Stop writing job listings for HTML5 designers or ActionScript gurus. You’re just fanning the flames. Instead, invest in creative people who know how to execute in a number of ways, people who prioritize learning new tools to solve a problem over honing their chops. Don’t sell (or discourage) Flash or standards to your clients; instead, sell creative brand extensions, accessible content, enjoyable experiences, and simple maintainability.

Allow technologies to die on their own. Macromedia Director is no longer popular because its usefulness decreased, not because we crucified it. The old way of writing JavaScript is fizzling out on its own, because we support unobtrusive and DOM-based methods.

Teach. Approach your local college (or high school!) web design program and offer to instruct the new generation of designers and developers. Web design education is stagnant; it will take dedicated people who are willing to challenge the status quo to change that. Get involved with the wonderful work that’s being done in the area of web design education, such as the WaSP InterAct program, Opera Web Standards curriculum, or Adobe Education Technologies.

Finally, remember what really matters: People. For everyone’s sake, it’s time we all learned to get along.

71 Reader Comments

Load Comments