HTML5 vs Flash Platform

Everyday I seem to run across numerous articles that cover the topic of _____ killer; it’s usually about iPhones or the Flash Platform.  For well over a decade I have had different job titles: webmaster, web developer, user interface developer; now, user experience developer.  While the job title has changed my core responsibilities have not.  I build user interfaces for applications, hand held mobile or web based.  Because of this core responsibility I have to use all sorts of tools to create the appropriate experience that meets the customers requirements.  With that being said lets get started.

HTML5 is an ‘open standard’ attempt to utilize richer html based interface controls that fit a committees guidelines.  The Flash Platform is a proprietary technology produced by Adobe that leverages the use of a browser plug-in or standalone Flash Player to create a rich user experience.  Is this fair enough for everyone?

The problem that I keep running across is the religious battle that ensues when members of each camp encounter one another.  The HTML5 sect claims that Flash is evil because: it’s not open, it’s not a standard, it’s not safe, it’s for lazy developers, only used for animation and banner ads, and on and on.  The Flash sect view HTML5 as an upstart that will never come to fruition; another standard that falls short on adoption; a complete waste of time and effort to develop with; etc…

My personal take is as follows (warning – I am a Flash Platform – Adobe User Group Manager and I work with it everyday).  I understand the need for open standards; I get the need for having a rich tool set to work with, but I don’t believe that the web is a nail and the tool in my hand is a hammer.  I have been using the HTML/CSS/Javascript tool set far longer than the Flash Platform.

Given the option I will choose Flash when the requirement is to develop a rich interface with complex application features for a browser or desktop app (using AIR) running on a non-hand held mobile device.  Or, if the interface requires large datasets as well as intense visualization.   If the requirements don’t fall into that category then I will consider the HTML/CSS/Javascript (HaCJac) stack.

The features of the Flash Player allow a developer to really leverage OO strategies through Actionscript.  Actionscript is based on ECMA script and is very powerful for application development.  Actionscript is also compiled and that gives me some sanity checking. Javascript is not close to OO and is hard to enforce.  The Flash Platform offers some powerful development IDEs,  Javascript still falls short in this area.  Flash also allows me to use design patters such as IOC or MVC to name a few.  I make the comparisons to Javascript as this is the only widely adopted alternative.  HTML5 says it will cover some of these things, but not today.

Now, HTML5 is offering a lot of promises in regards to creating rich user experiences.  Does this mean that it is a Flash killer?  No, but what it does mean is that as a professional I better be aware of and know how to leverage it when the day comes.  Apple has pretty much shunned the Flash Player from it’s iPhone, iTouch, and now iPad.  So if a client asks me to develop an application for these specific devices then I will have to turn to HaCJac and try and leverage some of the HTML5 features that are supported by Webkit.

I am a professional and I am paid to find solutions for clients application needs, not convert them to a technology.  I do prefer the Flash Platform, but I will not discount HTML5 as it develops.  But right now none of my clients can afford to build only HTML5 web apps, as their customers do not have the browsers that support it (plus most browsers that do support it are very inconsistent and only offer partial support at best. here is a support list).  But I can give them the rich features and the application abilities they desire right now using the Flash Platform.

There is going to be a future where Flash and HTML5 live together, hopefully you will be able to offer both solutions or even a hybrid when the time comes.

Other arguments:

Flash is too slow – uhm, please define slow?  Speed could be described as user perception, this argument was the same C folks used against Java, but there has been so many improvements to the VM that those arguments don’t hold as much weight.

Plug-ins are not standard – define what a standard really is.  Is it something a few agree on and state as such, or does a standard evolve because of what people gravitate to using/doing?  Isn’t it considered standard to use a hammer on a nail?  No group of people documented that, that I am aware of… the tool made sense for the task.

Flash developers are lazy – oh really… care to sit down and build a Flex app, a real app not a hello world poc?

HTML5 will never happen – uh, yes it will.

HTML5 will kill Flash – no it won’t, Flash will continue to evolve as well.  Just like the Droid is not an iPhone killer, both will live in the same ecosystem and thrive.

So keep me out of your religious arguments, I see the value in both and I will probably end up using both.  A friend of mine always reminds me “Standards are always good, but at the end of the day you should choose the best technology for the situation you are in.”

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>