I’ve been growing more and more frustrated with folks who consider themselves tech-savvy insisting that HTML5 will kill Flash, and then proceeding to make a bunch of “points” that are supposed to be reasons why, but only prove to me that these people are not actually web developers at all.  I know that there’s a segment of the tech population that wants Flash to die so much that they will ignore any rational point made in this blog post, but I can live with that.

First things first: I understand the disdain for Flash.  It’s overused and abused in many places.  Believe me, I am with you on disliking obnoxious banner ads, terribly all-Flash websites that really have no need for ANY Flash, etc.  That being said, Flash is just a development platform, and in case you haven’t been paying attention it’s actually a pretty great one.  Actionscript 3 really changed the game for Flash.  Yes, lots of people make garbage with Flash, but lots of people make great stuff too.  Should HTML be discontinued because of sites like this one?

There are actually several things that bloggers and “tech journalists” are failing to understand in the barrage of “HTML5 vs Flash” arguments:

First and foremost, true support for HTML5 (and CSS3) is at least a couple years away.  Just because some of the more independent (and thus faster moving) browsers out there like Opera, Chrome and Safari are starting to support chunks of HTML5, you’re not going to see it in Internet Explorer for a good long while, and you’re not even going to see it in full in Firefox for a long time.  As fast as the rest of the technology world moves, the adoption of web standards within browsers moves at a glacial pace.

The next point is that as it is today, every browser has its own quirks when rendering HTML and CSS.  It’s the bane of web developers’ existence and getting sites to look the same (or just work at all) across multiple browsers can sometimes add as much as 20-30% to the time spent on a given project.  Do the anti-Flash zealots of the world really think that suddenly Microsoft, Mozilla Foundation, Apple, Google and Opera are all going to sit around a table and say “hey, let’s stop screwing around making our own little custom CSS parameters, choosing which parts of the HTML spec we really feel like implementing in our browsers, etc, and let’s just comply 100%!”   It’s not going to happen.  HTML5/CSS3 are going to be awesome tools, but I will be absolutely shocked if there aren’t still loads of cross-browser “hacks” that we web nerds need to learn and memorize to get sites and web apps working well across browsers.

The biggest laugher in my opinion is the argument that HTML5′s “video” tag is going to be the thing that kills Flash.  Like it or not, there’s still really only two major players in the browser market – those are IE and Firefox, and Firefox doesn’t (and won’t, for good reason) support H264 – the codec currently being used in HTML5 video sites like YouTube’s current demo.  Yes, the other browsers matter to me, and they’re significant from a technology perspective, but if you make your living building websites for companies who pay you to do so – IE and Firefox are the two you’re paid to care about because they cover the vast majority of the audience.

It seems t hat the biggest Flash-haters in the “HTML5 will kill Flash!” debate are the folks who decry Flash for not being an open format.  At the same time, the HTML5 video tag isn’t going to take off unless an open video codec is used to transmit the videos.  H.264 is not open, hence Firefox won’t play YouTube’s HTML5 demo.  There’s also, at least for now, a lot less power and flexibility and control than Flash gives you.

Ultimately, I believe that most of the people writing about how Flash will die because of HTML5 are writing it more because they want it to kill Flash than because they think it really will.

Next, there’s the people who have noticed that they can draw and animate things using the canvas tag, and arguing that this will kill Flash.  This is highly doubtful.  First of all, these animations are scripted with javascript – a language for which there are still cross-browser dependencies, and which performs at extremely variable efficiency across different browsers.  Add to that the aforementioned point about cross-browser CSS rendering issues, etc, and I just don’t see HTML5 giving designers the control they need – at least not any time soon.

Finally, let’s not forget about the workflow: There are a wide variety of people building websites – from hardcore programmers to designers who are far more well versed in Photoshop/Illustrator than they are in HTML/CSS.  The technology used to build a site is often chosen by the people building it, and for those building content (whether it’s a full site, a video player, or just a widget) in Flash, they’ve had the benefit of an IDE to store and manipulate assets, assign code to frames, assets or events, etc.  In order to transition to HTML5/CSS3, they’d have to become more along the lines of the hardcore programmer than the “interactive designer” that they are.  While this may happen in the industry over a period of time, it won’t take place overnight, or even over the course of a year or two.  During that year or two, Flash will keep advancing, as it is about to with the release of Flash 10.1 (which should supposedly allay a lot of concerns about its instability and slower performance on non-Windows platforms).

I do see HTML5 and CSS3 being hugely important additions to the web technology world.  I also see certain tasks that might currently be handled in Flash moving over to HTML5/CSS3.  jQuery is already taking care of that, to an extent, with things like the Galleria plugin, jCarousel, etc, and that’s without the use of the new functionality of HTML5/CSS3!

In the end, I see Flash continuing its life for a long time.  As much as people dislike Flash because of the garbage that some developers have made, they’re often overlooking some of the fantastic things out there that have been done with Flash – from games to video players to immersive interactive websites that utilize your webcam and microphone.

I wouldn’t mind being proven wrong here, by the way. I’d love it if all of the browsers ended up supporting and rendering HTML5/CSS3 equally, and if H.264 became open, or Ogg Theora took off as a video codec.  I just don’t see it happening.