The Adobe Flash Player is a multimedia application created by Macromedia (now a division of Adobe Systems). Flash Player features support for both vector and raster graphics, along with a scripting language and bidirectional streaming of video and audio content. The player is a virtual machine that runs Flash files, which are often embedded in websites to present animations, games, GUIs, or other visual interestingness. If you’re reading this website, you probably know all of this. What you might not know is that Flash sucks. It is the bane of the Internet, and it needs to go away.

Usability and Accessibility

The ironic thing about Flash is that its use is so frequently self-defeating. Flash is often used in an attempt to make sites more user friendly. But replacing familiar browser components with custom Flash garbage only hurts usability. Consistency is imperative for a UI — users learn how to do something once, and can apply that knowledge in tons of places. But with Flash, overzealous designers try to “fix” what they see as bad interface models by creating custom Flash crap. This sucks.

While we’re on usability, let’s talk about people who are disabled. Flash sucks at accessibility. Though Flash has some features that are supposed to improve accessibility, they’re weak and almost never used. The fact of the matter is that Flash is pretty much inherently inaccessible. If you want to use Flash, and remain accessible (and indexable — web spiders can’t understand Flash binaries either), your only real option is to create a second version of your site that uses standard technologies. That sucks.

Technically, the accessibility and usability issues apply only to poorly designed Flash sites. Someone could (and probably will) counter that it’s not Flash that sucks, but people who are using Flash the wrong way. I’d argue that a tool that encourages suckiness is itself inherently sucky, but I’ll spare you that schpeel and move on to the one thing that makes Flash incontrovertibly sucky, regardless of how you use it.

Closed Specification

Call me idealistic, but I hate companies that use closed specifications to stifle competition. And that may be my biggest issue with Flash. Sure, Adobe provides the SWF and FLV Specifications to developers who want to create Flash content. But first you have to agree to the SWF File Format Specification License where you promise that you will “not use the Specification in any way to create or develop a runtime, client, player, executable or other program that reads or renders SWF files.” That sucks.

Don’t care about the closed specification issues? Well, you should. As more and more content is stored in Adobe’s proprietary format, the company is gaining a tremendous amount of power. They’ve already announced a version of Flash that includes DRM support, allowing “copyright holders” to prevent users from skipping advertisements and restrict copying. Heck, digital rights management (DRM), combined with the overly restrictive anti-circumvention legislation in the DMCA, could make it illegal to download and save your own damned YouTube videos! That would definitely suck.

Glad to see Adobe has it’s priorities straight. While they rushed to include DRM support, the company has been dragging it’s feet on Flash support for 64-bit operating systems (there is none). This problem is years old. And it’s not like the advent of 64-bit CPUs was a surprise. They should have been working on 64-bit Flash in the late 1990s — or they should have at least given it some thought! And, seriously, it’s taken a team of coders more than two years to port a plugin from 32-bit to 64-bit? Christ, Apple ported an entire operating system from a RISC to a CISC chipset in less time than that. Sounds like the Flash code-base sucks too.

So what’s the alternative?

Yea, you got me. That’s what really sucks. Microsoft Silverlight might provide a viable alternative once it’s released. But chances are it will suck at least as much as Flash. Maybe if the W3C standards for SVG and SMIL are ever fully implemented a decent open solution will exist and the problem will go away (if you’re in Firefox, check out some of the SVG samples, they’re pretty cool). But until then, we’re stuck with Adobe’s crap. So I implore you: use it right, and only when absolutely, positively, unquestionably and undeniably necessary.

Grafted from ImMike