HTML5 — chances are, if you have been following any tech/web news for the past year or more you have heard about it. But, the question is… just what is HTML5 and what does it mean for the future of the web? Let’s start with a little bit of history.

Ever since the birth of the visual world wide web as we know it, web sites have been a fairly static form of media. Sure, there were a few fads that came and went: Java applets showcasing useless water ripple effects and laughably clunky menus being the most memorable for me, and some that stayed the course and went on to evolve into nearly ubiquitous status across the world wide web — the most notable of these being Flash.

Through the evolution of Flash we began to see more and more interactivity on the web, but there was a price to pay. First and foremost being the abuse of Flash by advertisers. Blinking, flashing, and just plain obstructive ads became commonplace and this led many users to not installing Flash or disabling it completely to get rid of them. Unfortunately, if you are a Flash developer or a company that uses a Flash based website, by requiring the Flash plug-in you have just potentially eliminated a score of visitors to your site. But, as the only viable way of adding a truly interactive and multimedia experience to the web it almost became a necessary sacrifice to create the content you wanted to convey to your audience.

As an insult to injury of sorts, as internet connection speeds increased the demand for streaming video on the web increased with it exponentially. Flash eventually became the method of choice for delivering this content, beating out earlier (terrible) technologies like RealPlayer. So now we have a situation where the web as we know it is severely limited without a third party plug-in, and that is where we stand to this day.

However, with the rise of smartphones and more and more problems with the Flash plug-in and its cross-platform performance and compatibility, a movement is growing and a new standard is being drafted to (possibly) replace Flash and other similar plug-ins like Microsoft’s Silverlight for good. This new standard is HTML5.

HTML5 is the next major revision of the ubiquitous HTML standard. And, even though the buzz around HTML5 has only started in the past year or so, work on the specification actually began way back in 2004 — ages ago in the tech world. In its current state (HTML5 is still a work in progress, and is expected to be for some years to come) HTML5 adds APIs to native HTML that give it many of the features you may find in Flash such as 2D graphics APIs through the <canvas> tag, timed video playback via the <video> tag, offline storage databases, drag and drop, and more. But, that’s not all HTML5 adds to the table.

HTML5 is also designed to enable web developers/designers to more naturally describe what the content on their pages actually represent. Tags for layout (which can all be styled via CSS, of course) such as <header>, <footer>, and <aside> were added, <nav> for navigation, and true support for all world languages with additions such as the <ruby> tag for adding ruby annotations used in East Asian typography to name just a few. Thus, the full potential of HTML5 comes from the combination of writing actual HTML5 markup combined with CSS3 for styling and Javascript for adding interactivity and dynamic events to these elements. This is why we are seeing such concentrated focus on improving Javascript performance from all major browsers, including adding native hardware acceleration to the browser for accelerated graphics display. Unfortunately, the performance is still not quite on par with Flash, but with time Javascript execution will almost certainly meet if not surpass that of Flash.

So, now that you know what HTML5 is… why should you care? Flash works right? Why do we need a replacement? If you have ever tried to visit a Flash website on your iPhone, Android, or other smartphone you will know that Flash doesn’t work on these devices. There is at least one mobile browser that I know of (SkyFire) that attempts to bring the full web experience (including Flash) to the mobile world, but from my experience using it on Windows Mobile I must say that the performance very much left something to desire.

However, I can run native HTML5 apps and games on my iPhone with great performance and usability using no third party plug-ins, browsers, or other software at all. It just works. And that’s the allure of HTML5. Write an app or a game in HTML5 and you can successfully market it to all platforms with access to a HTML5-compatible browser. That means, your app will run on the iPhone, iPad, Android, Symbian, desktops… you get my point. In fact, there are already two HTML5 based app frameworks designed specifically for mobile devices out in the wild, and I am sure there are even more in the works. One is called SproutCore and the other is Sencha Touch.

SproutCore is designed more with desktop-class application building in mind, but it seems like they are in the process of adding a subset of features for mobile, touchscreen based devices as well. However, Sencha Touch is being designed from the ground up as a web/HTML5 based platform for mobile devices, specifically modeled after the iPhone’s UI and design methodologies. I have toyed with both of these frameworks and hands down Sencha Touch is much more polished for developing on mobile devices (although SproutCore is very nice if you want to build desktop-like web applications).

Unfortunately, even though Sencha Touch is more polished it is still in beta and it shows. Many of the examples it distributes with are mighty impressive (click here if you are on a mobile device and want to see the demos first-hand) but they still lack in the responsiveness and smoothness found in native applications. Some of the operations, such as drag and drop, also seemed fairly buggy and Google Maps performance was very sluggish when scrolling and zooming for me on my iPhone 4. Overall, however, there is nothing stopping you from making a full-scale mobile application using the APIs and widgets it provides. I think that as time goes on and all the technologies involved are fleshed out, become more established, and mobile internet connection speeds increase (or wi-fi availability becomes ubiquitous) we will see a vast movement to applications and games being websites instead of actual natively compiled software packages.

In summary, HTML5 is a work in progress but it is already exhibiting an impressive feature set that rivals that of currently existing third party technologies while introducing even more revolutionary concepts to the world wide web. With the adoption of HTML5 we will begin to have access to our apps and data from any device, anywhere as the software that we run on those devices moves away from the devices themselves and onto the cloud. The internet as we know it is about to change, and change big… hopefully for the betterment of all its users.