Flash is Dead… Long Live Flash

Ordinarily I limit my posts about Flash here to its usage and just kind of sit on the sidelines when it comes to debates about its future. After all, though I make my living with the Flash Platform, I’m not an Adobe employee and they’re big enough boys to stand up for themselves amidst all the hullabaloo. And I’ve been working and playing with Flash since about 1999/2000 and if, during that time, I had a dollar for every time a new technology was the alleged “killer of Flash”, well, I’d have at least 10 or 20 bucks. Yet here it is 2010 and Flash is still here and as strong as ever. Recently, though, the whole HTML5 debacle has really reached the point where I thought I’d throw in my opinion. So here’s my 2 cents on the already way over capacity topic:

Everything is Propietary

One of the biggest divisions between Flash (and other plugins) and HTML5 is that one is proprietary while the other is an open standard. What I always ask myself though is where do these open standards come from – they don’t just appear? The answer, of course, is open standards are proposed, shaped, created, guided, and governed by committees. The committee, in essence, is the owner, or proprietor if you will, of an “open standard”. And who is it that sits on these committees creating the open standards? It ain’t Joe Developer making a living writing code for the web. It’s representatives of all the corporations who make the WWW possible – Adobe, Microsoft, Apple, Mozilla, Google, etc. Do you really think that these corporate reps are there trying to make the World Wide Web a shinier place for developers and users? To an extent, sure they are. But to a larger extent they’re doing what every corporation by its very nature does – following money.

Just look at what happened to ECMAscript 4. The language’s creator, Brendan Eich, himself welcomed the proposed changes. The language’s proprietor though, i.e. the committee, voted the changes down. Not because they wouldn’t have been welcomed by the developer community or because the changes were “unsound for the web”- but because they were financially unsound for certain groups within the committee. That’s the way things go with proprietors – they do what’s in their best interest. Supporters/developers of browser plugins are not out to undermine the web anymore than standards committees. Both exist to find a nice balance between making money and benefiting the community simultaneously. Neither are ipso facto evil.

On a personal note, I often find it rather humorous that many of the people who jump on the “Flash is evil because it’s proprietary” bandwagon come from the Mac community. Now if you want to rail against the Flash Player because it performs like crap on a Mac, well, fine, I can understand that and see your point. But to complain about the Flash Player because it’s a proprietary piece of software while at the same time supporting a company that makes Microsoft look like Google by comparison – well, I just have to laugh at them in the same way I laugh at vegetarians who say that eating meat is cruel to animals while sporting a stylish suede jacket…

Standards Aren’t

The word standard when applied to web development is a really misleading misnomer. It somehow implies that a single bit of code written for the web will run “standardly” in every browser on every platform. Obviously anyone who has ever done any bit of web programming knows that just ain’t the case. In this instance, HTML5 is barely out the door in beta form and is already being implemented differently on different browsers. Eventually (2012, 2014, or maybe not even until 2022 according to various sources), HTML5 might just settle down and assume a lowest common denominator standardization across most, if not all, browsers. Will the rest of the world rest on its laurels waiting for this though? Of course not. “Proprietary” plugins will continue making leaps and bounds while HTML5 slowly catches up to where the plugins are now. And let’s face it – HTML5 by itself is little more than a glorified video player without the addition of javascript to make it “do stuff”. Will javascript become “standardized” in every browser as well? Or will it still require checks and hacks to run regularly across the board? And, assuming it is implemented in a standard way, what will it take – another 2 to 10 years?

I’ll be the first to admit, Flash is not the end all be all of the web. As you may have noticed, this blog is not created in Flash. Why? Well, strictly speaking the Flash Platform sucks for blogs and for many other things as well. Flash has its place on the good ol’ www and it ain’t everywhere. Honestly though, right at this moment, Flash (Actionscript) is the closest thing there is to the programmers philosopher’s stone of  “write once, run everywhere”. Who knows – in 2 to 10 years time, HTML5 and javascript might have a similar distinction. But where will the Flash Player be at that time? It’s hard to say, but I’m guessing HTML6 will be running to catch up just as HTML5 is now.

Nothing Lasts Forever

Another argument against the use of Flash I frequently seen thrown around is that, because the software is proprietary, you’ll never know how long it will be supported. This to me is so patently absurd, it hardly calls for a comment. Is anyone out there still developing in HTML 1.0? Hell, at work we find ourselves in a strange (but I expect not uncommon) predicament. Our server is still installed with the open source PHP 4.something. Of course we would love to upgrade to PHP 5, but we first have to weigh the costs and benefits of having to repair the several apps that are liable to break when we do so. Meanwhile I can still view Flash sites from the late 90’s in Flash Player 10 (not that I’d want to, but that’s another story). I hate to be the one to break the news to anyone, but in this industry the one constant you can count on is change. Technologies both “open” and “proprietary” come and go and programming languages fall to the wayside like latin. To suggest to someone they shouldn’t develop for a specific proprietary platform because it has an uncertain future is like telling that same someone there’s no sense in learning HTML5 because it’ll eventually be replaced by HTML6 and you’ll have to dump your entire code base and learn something new. If absolute certainty in a specific field is that important to you, good luck in today’s world. Maybe plumbing would be a more suitable profession. There’ll probably always be pipes around and you’ll more than likely get paid more.

Code Breeds Bugs

Yet another argument I see against Flash is that Flash apps are often buggy and can lead to browser crashes or what have you. As has been pointed out time and time again this is a developer problem – not a platform problem. Who hasn’t been to a site where a database connection could not be made, a javascript error was thrown, or CSS wouldn’t render properly in the browser? Christ, even google.com doesn’t validate properly according to W3C standards. Does that mean that PHP, javascript, CSS, and HTML are all “bad”? Of course not. You’d have to be a drooling imbecile to even think so. And yet, for some reason, people who say things like “Flash crashed my browser, I’m getting a Flash blocker [plugin, mind you] and never looking at another Flash site” are taken seriously on a regular basis (well, at least by others who dislike Flash just as much). This line of “reasoning” makes absolutely no sense to me.

CPU usage is another item often held against the Flash plugin, yet there have been complaints of recent FWA winner 100 Tweets leading to 100% CPU usage on some machines. The more complicated systems get, the more error prone they become. If you really want a bug free web, let’s just go back to 100% static text and be done with it. But if you want images, animation, video, and interactivity expect the unexpected – whether you’re looking at these things in Flash, HTML, or anything else.

Time Will Tell

Here’s a little Sufi parable for you paraphrased from the wonderful Principia Discordia (fnord):

Malaclypse the Younger was once imprisoned and sentenced to death by the Shah for saying a few less than savory things. He went before the Shah and pleaded that if the Shah would just let him live one more year, Mal would teach his horse to fly. Well, no shah can turn up his nose at a flying horse, so he agreed to spare Mal for another year  under these conditions. Later, a fellow prisoner asked Malaclypse what this business with the flying horse was all about. “Well,” answered Mal, “A year is a very long time and lot can happen. The shah may have a change of heart, he may be overthrown, or he may just die of natural causes. And, if worse comes to worst, who knows, I might actually teach that damn horse to fly.”

The point being, HTML5 is still at least 2 years from being implemented in a widely usable fashion. By that time we should be on Flash Player 12 or 13, and who knows – the damn thing might just have flying horses. To declare Flash dead at this point is just silly. And for Steve Jobs to call Adobe lazy is being just plain childish. As Joa Ebert pointed out on Twitter today, Adobe is wrapping up a crosscompiler capable of creating iPhone apps with the Flash IDE while Apple just released a big iPod. Which of those is more interesting/less lazy?

Don’t get me wrong, I’m not anti Apple (I love my iPod) and I’m not anti-HTML5 (looking forward to learning and using it. And come to think of it, I haven’t heard a single person say they are against it. Interesting how willing Flash devs are to embrace new technology) and I’m no Adobe fan-boy (they’re a corporation looking to make money like any other and have plenty of room for improvement), I’m simply sick and tired of the rampant anti-Flash sentiments that have been circulating like wild fire lately.

When you can show me sites such as GE’s Smart Grid, or North Kingdom’s old Get the Glass (require the Flash Player plugin), or the Rexona Shopping Cart Race game (requires the both Flash and Unity3D plugins) built entirely on “open standards” then we can have a realistic discussion about the demise of browser plugin technology. Until that time, can’t we just say there is room enough for more than one technology in today’s web world and let them all advance as they may?