Friday 18 June 2010

HTML 5 - the conversation continues

The web seems to be saturated with talk about HTML 5. Many people know what HTML 5 is – it’s the next big thing! It’s a new technology that does everything and destroys Adobe Flash! It makes computers run faster and does the tea run - a-mazing! Unfortunately, this isn’t all necessarily quite true (although I still have hopes the tea run can get sorted in a later revision of the spec).

There is no doubt that there is a lot of anticipation for what HTML 5 will bring, with Google, Microsoft and Apple all touting it as the way forward; however the term is being increasingly misused leading to it “becoming the next overloaded term” as Michael Mullany describes it here.

If one were to be pedantic about it, as our blog has touched on before, HTML 5 is simply a revision of the HTML spec. The core HTML 5 changes that will be user-visible include the canvas (allowing graphics to be rendered to the screen), audio and video tags. Under the hood, there are also a number of semantic additions and new mark-up to make html code cleaner, accessibility features, a drag and drop API, user-editable content and content caching directives.
It is also necessary to combine a number of other tools that fall within what some are calling the HTML 5 family in order to produce all of the demonstrations that have been emerging from proponents of the technology. Chief among these is CSS3, which is again not yet a completed specification (it is in fact a number of developing sub-specifications). As well as the expected improvements (like rounded corners, improved layout control, borders and backgrounds), CSS3 also includes a number of features such as 2D and 3D animations for boxed content; in fact a lot of what some people think is HTML 5 is actually CSS3.

Another technology that is instrumental in building up the HTML 5 family portfolio is Web Storage. As the name suggests, this basically offers both temporary and persistent local storage allowing for the development of sites that can continue to function even if connection is lost.

Other technologies that fall within the HTML 5 family include Geolocation (i.e. making the users location more accurately available by using WiFi towers and GPS to augment existing IP address detection), Web Workers (allowing the web site to become threaded to better allow the browser to schedule rendering while taking advantage of multi-core CPUs), and Web Sockets (allowing asynchronous client/server communication). More about these technologies can be found in Michael Mullany’s article linked to above.

Most of these specs are in various stages of development, meaning that features can be dropped as well as added before they are finalised (for example, a file upload progress component is currently on thin ice). In spite of this, there are web pages being built using the latest draft versions of the spec (links to which can be found here).

There are also a number of technical demos that are being released. One series of demonstrations recently released by Apple displaying what can be achieved via the HTML 5 suite of technologies can be found here.

As impressive as these demos are, some feel this is misleading the public with regards to the HTML 5 browser availability – upon attempting to view one of the Apple demonstrations, unless you are running Apple's own Safari 5, an error message is displayed stating the necessity of this browser. The reason this has been divisive is that rather than necessarily being a true indication of ability (or lack thereof) of your browser, it is something that is artificially enforced by the site simply by checking your browser agent.

Part of this may be due to the presence of vendor prefixes (browser specific versions of the implementation), meaning that this open standard is not yet truly open. However all is not lost - most recent browser releases support the HTML 5 family to varying degrees, as detailed here, or perhaps a bit more recently and simply here. As the specification is more firmly established, these vender specific implementations will disappear and the open implementation that is envisioned will emerge.

So with the use of javascript (or jQuery if you prefer) making far more sophisticated interaction possible, does this mean we no longer need Adobe Flash? While this may well change over time, right now Flash is still a useful way to get rich content to the many people who already have the plug-in installed – advanced effects or intricate interactive web apps are more easily constructed in Flash.

Also, some features such as multiple file uploads are just not yet available (hence Google's Gmail still relying on Flash for its file upload feature). Hulu, who recently released the US equivalent of the BBC’s iPlayer, opted to use Flash saying that HTML 5 was just not ready to meet their requirements (read more here).

Nevertheless, HTML 5 is a convenient shorthand for a very powerful and exciting family of technologies, and while it is not yet suitable for every project it is something we are all considering, and one for which we have high hopes!

Nick Nawrattel
Lead Multimedia Developer

No comments: