The USS Quad Damage

Flash

uh, good god y'all... what is it good for?

Screwing the disabled is another great boon for flash

I think the whole arguement between the Apple and Adobe guys about Flash is a somewhat hilarious one. Each side makes fair points about the other, then enters a fantasy land where they talk about their own product, then is quickly set straight by their opponent. Both sides must realise that this sort of shit flinging is going to stick on both ends, not only due to the sheer amount of available shit, but also that the cracks in both arguements are both deep and plentiful. However, I’m not here to talk about Flash as an arguement between two parties. Rather, I’m here to talk about Flash (and similarly Silverlight, Java, etc.) from a technical standpoint, and what we stand to gain or lose by having them.

The first thing to notice is that the biggest benefit of Flash is also it’s biggest drawback. That is, the fact that you have a tiny square on your screen which is sandboxed, but otherwise has no accountability to the outside system, is both a boon and a curse. It is a boon because you no longer need people to agree on things before implementing them. One such example is that integrated fonts have been available on flash for ages, something that is only now possible in HTML, after a lot of jibber jabber. I could also sheepishly mention video at this point. The fact that flash renders the same on every platform is great for web designers who yearn for a easier past, before they had to consider people on mobile devices, or the blind.

Screwing the disabled is another great boon for flash. Inconsiderate and generally incompetent web designers can make gigantic interactive monstrosities which can now be navigated to by a lucky few people with the bandwidth and exact hardware configuration to view it correctly. They can also integrate other bandwidth sucking measures such as video and intrusively put it on advertising on pages which are otherwise perfectly reasonable. It looks like the mole on Claudia Schif... sc.. her, except there are a whole lot of moles. Also it’s Claudia now when she’s old, not when she was pretty.

The fact is, its hard to write HTML and CSS because it is generally considerate of other devices and ways of interacting, disabilities (although javascript can ruin this), and other such things. Many graphics designers are only now coming up with the language and toolset to deal with the web effectively. The crappier ones who wanted to make a buck have always been writing their garbage in flash. To be fair, the total lack of accountability, stable base, and innovation without the years-long agreement between vendors is an advantage that makes flash an excellent platform for gaming.

The problem with a system being not accountable to it’s container has bigger problems for the applications which encapsulate the system. One of the biggest benefits of Chrome is that it can deal well with a “plugin” crashing. If there was no flash, people might be scratching their heads at exactly why this was a good idea. Another big issue is a tabbed browser with many flash apps running needs all of it’s flash threads running. It cannot suspend a thread when a user switches tabs, simply because it does not know what the application wants, and whether it can cope with being suspended.

A lot of newer models of web browsing — heavy caching and state persistence, means that new web pages can keep their state and yet be unloaded by the browser. Similarly, switching tabs might mean the page is suspended to disk and all of the resources are unloaded. For the mobile space in particular, this trick is used heavily to keep memory usage under control. Web pages can be encapsulated using similar techniques (meaning searchability, mashups, analytics, etc). The only exception here is flash, because the state of a flash app is unclear to the browser.

So, while on the one hand flash can allow a website to use tricks which aren’t available on the web, it does so while crippling the flexibility of the web in the first place (I fear javascript will take it’s place soon). Further, it reduces the ability for the applications which encapsulate flash to deal with the flash VM in a sensible way. This has caused new browsers to be created, and features which would otherwise be unnecessary. It’s also stopped new features from being implemented. The only people who’ve gotten away with innovating on the web despite flash have been in the mobile space — the very people who don’t support flash.