(Note: I published this a couple months ago on 8bitrocket.com, but after a conversation I had earlier this week I realized that it still true today, so I'm reprinting it here).
More than two years ago we (at 8bitrocket.com) started taking a close look at HTML5. To us, the HTML5 features like canvas, audio, and video were the most compelling part of the HTML5 spec because they were poised to be a true replacements for Flash. Flash had been our tool of choice for over a decade because it worked....most of the time. For the corporate web, 'entertainment, media, gaming web sites, it was second to none. Sure, it had issues: security flaws, proprietary API walls, performance hang-ups, etc. but it was also a simple platform. Write your AS3, marry it to assets created by designers in .fla, export .swf, done. A simple process for a powerful technology.
All was right with the world.
Up until last November, it is our firm belief that most Flash Web developers were holding out for Flash support on mobile iOS browsers. "Apple will come around" we thought, "Flash will run in the iPad 3 and the iPhone 5" we fantasized. Not because we thought Flash was perfect, or because we did not like the idea of HTML5, but because, for more than decade we had tasted what a real "standard" might be like. We've heard about "web standards" for years, and they are a beautiful, poetic, amazing concept that never quite came to fruition because OS, browser and platform companies had their own ideas on what was standard and what was not. However, with Flash, we truly had ate from the "write once, run nearly everywhere" table we had been hearing about for so many years.
Then last October, Abobe gave up the mobile web, and all hell broke loose.
Web standard guys applauded it, and Flash guys continued the hand wringing operations they started back in 2010 when Apple announced the iPad would not have Flash support. Not too long after, It seemed, all at once, the rush was on for HTML5. Flash developers knew they needed to move on, and web standards people had their last stumbling block removed. The plug-in-less HTML Renaissance had begun.
So then what *is* HTML5? The W3C HTML5 FAQ says this about HTML5:
HTML5 is an open platform developed under royalty free licensing terms. People use the term HTML5 in two ways:
- to refer to a set of technologies that together form the future Open Web Platform. These technologies includeHTML5 specification, CSS3, SVG, MathML, Geolocation, XmlHttpRequest, Context 2D, Web Fonts (WOFF) and others. The boundary of this set of technologies is informal and changes over time.
- to refer to the HTML5 specification, which is, of course, also part of the Open Web Platform.
What we have learned through conversations and project work in the past few months is that, to the common person who does not follow this closely, (or more likely, the common customer who needs something done right away) it's all HTML5,and therefore they are really referring to the "Open Web Platform". In this way, HTML5 is just as much and "idea" as it is a strict specification, and that "idea" of the "Open Web Platform" has caught-on like wildfire, even if the borders that define what is actually included in "HTML5" have never been fuzzier. However, the one thing we do know is that at the kickoff party for the "Open Web Platform", the one technology that was definitely left of the invite list was Adobe Flash.
And then we need to mention the platforms and devices. Just a few years ago, we all wrote apps for Firefox, I.E. and maybe Safari, but only if you were a glutton for punishment. Now we have to consider multiple versions of Internet Explorer, Chrome, Safari, Mobile Safari, Firefox, Opera, Silk, the 30 or so combinations of iOS devices and operating systems, and 1000's of Android device and OS combinations. To further complicate matters the general consensus, at least among customers, is that web apps made with "HTML5 open Web Platform" should run perfectly across all of them. But they don't. In fact some of the snazzier HTML5 features such as audio and video don't work consistently on mobile browsers. It's the reason many HTML5 games targeted at mobile game portals have done away with sound altogether.
In the past couple months, an angsty zeitgeist has appeared to form like a cloud around the "HTML5 Open Web Platform". It's the feeling of technology burnout for developers, while at the same time they try to manage the expectations of customers who are clamoring for a one-size-fits-all solution to their web and mobile development needs. Our own cartoon on the subject was a minor hit for us:
And the feeling might be spreading. One of my favorite posts in the past few months, was the hilarious parody technology site HTML9ResponsiveBoilerStrapJS. It captures the feeling of HTML5 technology burnout perfectly and scored a sizable hit via twitter:
"H9RBS.js (v0.0001) is a flexible, dependency-free, lightweight, device-agnostic, modular, baked-in, component framework MVC library shoelacestrap to help you kickstart your responsive CSS-based app architecture backbone kitchensink tweetybirds."
To us, the buzzwords are flying left and right, and everyone seems to be trying to solve similar problems by creating multiple new technologies and tools. On one side, this is a very cool development. It's an evolution and revolution, and we are happy to be part of this mini-tech bubble that has moved-in to fill the gulf left by Adobe when they abandoned the mobile web. On the other had, the sheer amount of "new" around HTML5, be it ways to describe code, templates, technologies and platforms is dizzyingly overwhelming. The situation is confusing at best, and confounding at the worst. Furthermore, most " tech bubbles" are inevitably followed by a shake-out where dozens of also-rans fall by the way side (Remember when Flash put DHTML, Silverlight, Applets, JavaFX, VRML, Realplayer and Shockwave off the map?). For developers, this means being very careful to choose technologies that we believe will be around for the long-haul, or we run the risk of investing our limited time and resources into something we will never use again.
All we really know right now, is that when people ask for "HTML5", they don't always have a specific technology in mind and they probably have not read the W3C spec of what is actually in "HTML5". They might know a bit about things they perceive to be HTML5 like CSS3 or Webkit, Canvas or video, but that's not really important. What's important is the translation of the question. When they ask for "HTML5", they are probably saying they want a single web site or app that runs on all devices, mobile or otherwise and that then translates into this:
And to developers who were once comfortable using Flash as a cross platform silver bullet, that could mean wading through a whole lot of specs, tools, and APIs of the "Open Web Platform" before the proper solution is found for the project.
So, when you call us now and ask for a game, site, app, etc. in HTML5, and there is slight pause in the conversation before we give you an answer, it's not because we are bored, disinterested or distracted, it's because we have a few extra things to consider these days before we can formulate a proper response. If you give us a few minutes to catch our breath, we promise, the end result will be awesome.
We appreciate your patience.