Flash and the Cougar in the Car15 April 2011
Screen-shot-2011-04-15-at-12.41

At this year’s iteration of SXSW — and pretty much everywhere on the internet — HTML5 was the big buzz word. Any mention of CSS3 or HTML5 would seemingly result in long lines and full auditoriums at the festival. One of the questions on everyone’s mind seems to be, “What does this mean for Flash?” With the recent actions taken by Apple, where the platform is as good as banned from all iOS devices, which is a very large market for content developers, it seems as though Flash might be on its way out. Because, as a developer, this is a very important time to understand what the changing environment means for how I work, I was sure to attend one of the Flash panels at SXSW. Luckily, I managed to make it to one that promised to go into particular depth as to what the new HTML5 spec meant for Flash.

But, I’m not going to say anything profound really came to fruition throughout the discussion; it was mostly just fluff.

“Oh, but HTML5 can do this now!”

“But oh wait Flash can do it in all browsers!”

“But HTML5 can do it on your iPad!”

Thank you, gentlemen, for speaking through an hour-long discussion without saying a much of anything. But, then again, what is there to say?

In reality, there isn’t much to say. No, Adobe’s plugin isn’t going anywhere anytime soon. Flash’s niche is changing drastically, or rather, it should be. HTML5 is capable of doing a whole lot of what previously only Adobe’s platform was capable of. With developing technologies like WebGL, a 3D rendering engine manipulated through JavaScript APIs such as Three.js, and the introduction of new elements like the audio, video, and canvas tags, relying on embedded plug-ins on a website seems like a waste of resources. It is now possible to develop media rich content without the use of any ActionScript.

Back to where we started, and what seemed to be somewhat of a nail in Adobe’s particular coffin. One of Apple’s claims is that Flash is a huge strain on the end-user’s computer. But let’s speak realistically here. Have you run a WebGL HTML5 application on your Macbook? It will be just as CPU and GPU intensive, and like a 3D flash application, will kill your computer’s battery in about an hour. What has become more important is when you use these technologies.

Flash is an excellent platform for application development, and using it for a website can often be overkill.  The benefit is all the fancy animations and media you incorporate will work as far back as Internet Explorer 6. Alternatively, you can develop a site that uses embedded video and audio that will work on all platforms, but we’ll always have to deal with Microsoft, whom I’ve affectionately come to think of as the cougar in the car. You just have to play cool, and learn to deal with it, or else it will eat your face off, an excellent symbol of the fear we all have to overcome.

Right. So as developers, what do we do?

The intelligent and practical thing to do for a website that has all of these dynamic and rich media elements, is to build it so that it degrades elegantly. I personally believe, very strongly, that the best way to develop a website is in way that you can create a universal experience across all browsers and all platforms. This can be achieved, for example, by using technologies such as the HTML5 video tag to deliver content to devices that need it, and use Flash as a fall back to reach browsers that don’t support all of those fancy new HTML5 elements. Just be mindful of the the target audience and the limitations that may possibly exist based on how they are engaging the content.

And of course, it still makes sense to develop web applications entirely in Flash, but as with any programming language, whether it be one that is compiled like C#, Java, or Flash, or a script that is compiled at run time by the browser, it is important that you always use the right tool for the right job. At this point in time, you wouldn’t use HTML5 to create an online game, so why use ActionScript to make a simple site?