uh, good god y'all... what is it good for?
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 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.