Argument Distinctions

The Flash v. HTML5 argument comes down to 2 things for me: platforms, and time.

Programming for Platforms

Apple has restricted Flash from it’s “i*” platform. The reasons for this are (at the very least) business oriented: in order to monetize the web, you have to control the media (this has been true for any media, too – just look at the origins of movies and radio). Without giving an opinion about Apple’s choices, the result is that now there are 2 workflows necessary for developing apps – not HTML content, but applications that run on the web. For everything non-Apple i*, you could easily use Flash (I expect most other handhelds to adopt Flash); for Apple, it’s the i* SDK. This would not be an issue if the i* devices were not as popular as they are (no one needs to be concerned about developing for the MS Kin, for example).

Programming for Maintenance

What is actually developed in Flash is where the Flash v. HTML5 argument is somewhat misguided. You can develop apps in HTML5, but to monetize that app, you would have to go with i* SDK, or Flash. HTML5 (or, currently, Javascript, Java, PHP, etc.) will have to be maintained for each platform and/or browser, so the total lifetime costs of an HTML5 app will be much greater than one developed in Flash. I have experienced this enough times to know it is true on the smaller scale (in HTML4/CSS/JS, that is). The amount of time spent on a project is much less with Flash because the delivery vehicle is already in place.

The Two Arguments

So Flash v. HTML5 should really be two discussions:

  1. Development within both Flash app and Apple app workflows.
  2. Deciding whether to use a Flash workflow or an HTML (4 or 5) workflow based on the total costs for the lifetime of the content.

Addendum: Flash or HTML?

There is a final factor in this, too.  It’s how much time people are willing to wait for an app to load.  I find this is related to the amount of time someone is going to spend using the program.  For an online program, I call it the 10-second rule:  if a program will be used longer than 10 seconds, the user will be willing (that is, not become impatient, or call the app “badly designed”) to wait for it to load.  I find the amount of time to load is proportional after that point, at something like:

{time willing to wait for load} = ln(({time spent using program}/2) -4)*3

(Note: this is not a researched-based finding, just an estimate.)

Addendum: Apple’s Goal

Apple will be releasing an “app player” in the near future.  I would watch for it within the year, especially since the iPhone 4 has received so much flack, and will probably elicit a recall.  The app player will monetize for the whole web what Apple has monetized for it’s handheld.  This, of course, will be in direct contention with what Apple has accused Adobe of doing: making a proprietary player.  Even if the app player ends up being open source (I really doubt it), the apps will still have to be “certified” – purchased from Apple.  Definitely anti-open-source.

– 30 –