Why I Hate Flash

OK, I've gotten too many requests as to why I dislike Flash as much as I do, so I'm going to put it on record now.When Macromedia Flash 1.0 appeared on the market in 1996, it was heralded as a ingenious format for putting up rich graphics to the web which was dogged by slow modems and huge GIF and JPEG graphics. Flash was vector-based, and thus, only contained the coordinates to draw the shapes, and the browser plugin would do all the work rendering that into something visible. Flash SWF files were smaller than bitmap formats drawing the same objects. So far so good, in concept. But then sites like 2advanced.com and gabocorp.com came by and wowed us all by doing then-unimaginable things with this humble piece of vector animation software, combining animation, graphics, text, and sound for a full multimedia experience, on the web. But, my goodness, didn't it take a long time to load? Remember these were the pre-broadband days, and these guys were saying sites like this were 'the future' when there's a broadband pipe into every home. Well, in response, just to keep use modem-users occupied, they created a fast loading intro, which entertained us while they cached the rest of the site and showed a 'loading...' progress bar. And thus, the infamous Flash Intro was born. I do not have statistics on hand, but I personally go straight for the 'Skip Intro' button (God bless the soul of the Flash designer/developer who first thought of putting that in and making it standard practice!) and I'm sure many people are the same. Most Introductory splash pages, particularly ones delivered using Flash are just gratuitous use of eye candy, with no real content or message to deliver. I just want to get to your real web site, pronto! Worse than Flash intros are entire sites made using Flash. You know the ones that have nothing more than a single button or link that says 'Launch site' which will popup a fix-sized window without any browser chrome, sometimes taking over your entire screen, then proceeding with a (drumroll...) Intro/loader screen which will tell you to wait for another 20 minutes while it downloads another 10MB of graphics, sounds and video and you cannot see any of it until it completes, so don't you dare close this window or switch to another application until it's done. Is it annoying that this supposedly lean and optimized format has been misused to create highly bloated media files, which still takes a long time to load over broadband lines. But not only that, there are accessibility and usability issues as well. First and foremost, Flash files are not a natively support file format in all browsers. It relies on a plugin, which if is not installed, you won't be able to view any Flash content. Earlier versions of Windows and MacOS didn't come with the plugin pre-installed, and you'd have to download it from the Macromedia web site. Not something you'd want to ask your mother to do when she tries to see your new web site and all see sees is a 'broken image' icon. So the workaround for these poor, deprived Flash-less people? The developers create an identical site done in HTML. Why bother doing double the work? Maybe I'm one in a million but even when I have Flash on my computer, I still go for the HTML version, if given a choice, just because it loads faster. Also, since it's a 3rd party plugin and not universally supported, development of the plugin relies on Macromedia themselves. Thus it's not available on all possible computing platforms and operating systems. Want to surf on your new WiFi-enabled PalmOS-based PDA? oops, need a Flash plugin? sorry mate, none for you. What about my Symbian-based smartphone then? Or my ancient, but still working fine Apple Newton? Nope, wrong answer. There's no way Macromedia will allocate the time and resources to port their proprietary code to every single platform, past, present and future. Only the most commercially viable ones. Because Flash is rendered through a plugin, it bypasses your browsers normal controls. Everything you know about using your web browser can be thrown out the window when you visit a full-Flash web site... the Back button doesn't take you back to the previous page anymore. It goes back to the last _site_ you visited. Likewise, the Stop button doesn't stop anything, and the Text-zoom buttons don't affect the font size. This would be a big hindrance for people with visibility impairments. You also cannot print anything displayed on a Flash page. Text-selection seems to be possible now with a newer version of the plugin, as is element navigation using the keyboard via the 'tab' key, but it's still a long way to go for full accessibility. When an entire site is created in flash, it would have to create it's own navigational widgets to provide the functions already present in the browser. Reinventing the wheel? Not only that, but some overzealous interface designers will go all out and create their own funky designs which look great, but ultimately fail because people don't know how to use them. Is that chicken scratch icon supposed to mean 'home' or 'exit'? Do we want to force people to learn a new interface every time they visit a different site? They have enough trouble enough learning how to use Windows (or MacOS), judging from the number of "Windows for Dummies" and "Mac for Dummies" books. At the time Flash came into the market, Macromedia already had a time-based animation and multimedia authoring package called Director, which had been well established particularly for it's simple yet powerful programming language, Lingo. The early versions of Flash had a very rudimentary programming interface called ActionScript which was no match for Lingo. Even today, as powerful as ActionScript has evolved to, there are still some things better done in Director, which in turn has added vector-based graphics and even a 3D rendering engine into the format. Director also has a plugin for web browsers which goes by the name Shockwave. Many Flash developers aren't even aware of Director and how to choose the right tool for the right job. One particular pet peeve is the use of Flash to show a slideshow of bitmap images. Remember Flash is a _vector_ format? When you import a bitmap into Flash, it's not going to magically transform it into a vector graphic. It'll retain it as it is, and when you try to animate it, the quality drops dramatically because bitmaps don't scale well dynamically. You'd get jaggies or blurred edges. Not only that, you don't get any benefit of smaller file sizes just because you're using SWF instead of JPEG. Why are you using Flash for a bitmap slideshow in the first place? You'd be better off using Director, or even just a Javascript to swap the images in-place. Granted, there are genuinely good uses of Flash on the web, some of which warrant the long loading times. Traditional cel-based ('flat') animation (as opposed to 3D animation) has had a revival of sorts with Flash now becoming a standard piece of software for indie animators carving their niche on the web. Flash isn't going away anytime soon, but with the shift towards standards-based coding and design, accessibility is becoming an issue. The way I see it, sites should be constructed using clean, semantically correct XHTML, styled with CSS, and complemented with Flash for those able to view it. No critical or important information, not even your site's primary navigation should be done in Flash, unless you have an alternative means for your viewers to navigate your site. Full Flash-only sites are definitely on the way out, for the reasons stated above, and additionally, they are harder to maintain because any changes or updates would requite manipulation of the entire Flash file, not just individual HTML pages. And for all you search-engine optimization fans out there, Google doesn't understand Flash, so any content you have in there won't be indexed. So there, those are a few of the reasons why shy away from using Flash in my work, despite the demand for it from some clients who think it is a 'must-have' for any successful web site. I don't think so.