Wednesday, February 03, 2010

The Flash Haters

The iPad announcement had lots of subtleties to it. One of them was that the iPad browser, presumably Safari, does not include a Flash plugin. This has lead to a lot of people from Adobe getting upset. What has amazed me through all of this, is that there is even more hate for Flash than ever before. As somebody who has done a fair amount of Flash development in my career, this has really struck me as odd. Why all of the hate for Flash?

In some ways, I can actually understand why Apple would hate Flash. The Flash plugin on OSX is nowhere near as good as the Flash plugin on Windows. Now Adobe will counter they spend a disproportionate amount of money on Flash for OSX, i.e. they spend more money per OSX user than they do per Windows user. So what? There are a lot of other technologies out there that work equally well on both Windows and OSX. Just focussing on web technologies, Firefox and Chrome on the Mac are very comparable to their Windows versions. So is the Java plugin. Some other products, like Opera and Skype, tend to trail in terms of features on OSX, but not in terms of quality. If these other companies can do this, why can't Adobe? It's obviously either lack of ability or prioritization. My guess is the latter, and hence you must expect hate from Mac users. And from Apple. So it should not be so surprising that Flash is left off the iPad, iPhone, etc. If Adobe really wanted to get Flash on those devices, an obvious first step would be to make Flash on OSX as good as Flash on Windows. That is something that Adobe can do all by themselves. Instead it seems like they would rather publicly bemoan their exclusion on the iPad. Now is there a guarantee that if they improved Flash on OSX, Apple would care? No, of course not. However, there is no way they will get on those devices without this first step, IMO.

Ok, so Mac user hate for Flash is understandable. Along the same lines, I would guess that Linux user hate is also understandable. That is, if there were actually any Linux users out there. I digress. I see a lot of hate from developers. What about that? That one is not so easy for me to understand. As a web developer, Flash has been opening doorways for me for a long time. Need to cache 30 KB of data on the client? For a long time this was impossible unless you used Flash (or maybe Java.) Need to make a cross-domain call? That is still generally impossible from the browser, unless you use Flash. Need to show 2D/3D graphs and visualizations? Again, this is still generally impossible, except through Flash. Oh and video... The only way to show a video that can be played on all of the top five web browsers (IE8, IE7, Firefox 3.5, IE6, Firefox 3.0) is to use Flash.

But, but, but, what about HTML 5? Many people think it will kill/replace/maim Flash. Apparently this list includes a certain Steve Jobs. As I have said before, I hate web standards. I mean, I love them, too. But I hate them mostly. Standards are the opposite of innovation, and perhaps its enemy. However, they are the engineer's best friend. Flash has provided a lot of innovation, that HTML 5 will simply copy and standardize. That is the best possible function of standards. However, the story is not so simple. Some things, like local storage,  are already supported by IE8, Firefox 3.5, and Safari 4. This is like Flash's SharedObjects, though slightly less powerful (but good enough.) Not everything is so rosy; canvas and video playback immediately come to mind. Canvas is particularly a hot topic. You can do some amazing things with it, but it requires payment in blood. I cannot imagine what it would be like to program Farmville in JavaScript using Canvas. Maybe somebody will come up with tools for that. In fact, I would be surprised if Adobe did not do this. Of course, we still need to hope and pray that canvas is supported in IE9...

So back to the original point. Why do developers hate Flash? It certainly enables them to do more stuff in web applications. Even if that list of extra features is being shrunk by the HTML 5 monster, it's still there. So shouldn't they love it? Well, you would think so, but they don't. Here are some guesses as to why:

1. Expensive tools -- Most of the tools used by a lot of developers are free. The Flash authoring tools are far from it. That can be annoying. You have to throw down a lot of money just learn something. That's not cool.
2. Bad tools -- At least from a developer perspective. The Flash authoring tools have historically been aimed at designers. That changed with Flex Builder/Flash Builder, but the damage was done. Also, those tools were aimed more at application development, which largely seemed like a waste of Flash.
3. Back to the Mac  -- A lot of developers use Macs, and we all know about Flash on OSX...
4. Accessibility -- Unfortunately this doesn't mean much to most developers. But it should. I must admit, that a year ago I probably wouldn't have listed this. However, as I have learned more, I have learned how Flash is such a huge problem for accessibility. This is actually one area where HTML 5 really shines, with the inclusion of the ARIA standards.
5. Design envy -- This kind of goes back to #2. Flash has had all the awesome capabilities for years, but they have largely gone untapped in web applications. Maybe by playing to designers all of those years, Flash has earned enemies. Imagine a developer being asked to scope some radical web feature. They give a typically large scope for it. His manager turns around and gets a designer, a freakin' designer, to do it in half the time.

What have I missed? Why do web developers hate Flash so much?


Michael Neale said...

Taste? Things build in flex seem to appear "taste-less" - I can't really describe it finer grained than that.

Maybe it is the embarrassing font rendering, the grainy chrome it uses in various places... who knows. But no taste. Just like Java applets used to be.

Pace said...

HTML and Javascript are universal and do not require plugins. Flash plugins are annoying as are Flash videos. If something is worth watching, it is worth watching via quality media like Xvid, Divx, H254(?). HTML5 is building on that feature which is a positive move and doubtless could get even better.

Flash is much harder to adblock and so you have to Flashblock everything and guess at relevance. Until Chrome got adblocker and flashblocker it was not a fully functional browser.

One cannot deny the quality of applications which run on Flash. It completely destroys javascript in both range of functionality and, well, flashiness.

The fundamental problem with flash is this: CLOSED SOURCE.

I am relatively certain that it is Apple's fault there is no Flash on iPhone nor iMaxiPad. I think it could be summarised as Apple trying to extort money from Adobe. Android allegedly is working on implementing Flash.

If there were an open source and open framework implementation of Flash such that it could be ported over to something I speak like Java and if people could compile their own Flash kernels and Adobe plugins were not required, then believe me I would have nothing bad to say about Flash.

In a way I feel bad for you that you have invested in learning Flash because I really do hope flash would kindly disappear.

Good post though, and it does remind me why I subscribe to you in Google Reader.

Pace said...

Oh and if something is in any way comparable to a Java plugin, then it definitely sucks.

Unknown said...

I think it’s because the dev tools historically been more design and video production-centric than developer centric.

Having said that, it appears that is a strength. The contrast in what a non-programmer can do with flash vs HTML/Javascript/CSS is stark.

Unknown said...

This blog is really interesting, actually i must to say i prefer flash because is a fast program and easy to use. I don´t like the complex program. I just looking for one that be eficient all the time and flash it is. that is why i prefer to buy viagra because i always have a great result in my sexual life.

Anonymous said...

I honestly never got to know why there are so many flash haters out there, I'd say a website fully designed in flash could outperform HTML in terms of performance and of course design, bypassing dozens of RTT issues and preloading chunks of text and using the client's CPU to put things in order, it's just that everyone is stuck with the so called standards, and btw apple was trying to build up it's money collecting store at the time, that said free flash games or apps - online or standalone - did not sound right.