The Advantages
and Disadvantages of HTML5
HTML5 is the hottest thing in web
development. In this article, I wanted to discuss the background surrounding
HTML5 development and point to the advantages and disadvantages to using the
language today. I'm going to write a more detailed series in the future,
detailing specific elements of the language as well as practical examples of
the language.
What
is HTML5?
HTML5 is the newest version of the
HyperText Markup Language that was developed in the late 80's in order to
describe documents that linked to each other. In it's early days, HTML's role
was simple...to help describe a document's structure and to allow cross-linking
of documents.
The language is a Markup Language...a
way to enhance a text file with bits of code (markup) that describes the
structure of the document. Think of it as what your teachers did to your
english schoolpapers. When they corrected it, they marked it up...probably in
red to tell you what things needed to change to hopefully make your documents
better.
Today the language has grown
substantially and it's gained two allies that are closely associated with it. CSS
(Cascading Style Sheets) is supposed to help HTML look great by describing the
way that the document is supposed to look. JavaScript is supposed to
build interactivity.
What's
so different about HTML5?
There's a couple of great new
approaches that are taking place in the HTML5 description.
The
Rise of WebApps
First, the language is being built
around WebApps...small focused applications that can run on a browser or
as a mobile application. The new version of HTML has features like offline
storage or the ability to handle data even when the app is no longer
connected to the internet, geo-location or the ability to detect and
work with the location of the user as well as excellent rich media
support...providing easy to implement audio and video elements.
More
descriptive semantics
The original goal of HTML was to
develop a language that could describe the structure of a document. As the web
grew, developers realized that oftentimes they were describing the same types
of elements. For example...a header, a footer, nav, articles,
sections, etc. HTML5 recognizes where the language has developed and
incorporates those elements into the language with new tags for that type of
content.
Richer
Media Elements
One of the great new improvments in
HTML5 is the development of rich media tags like audio and video.
Fully programmable with JavaScript, these tags offer incredible ease of use
while also offering powerful flexibility through extensive access to media
elements through programming
Why
not HTML5?
I wish we could all be using HTML5
today, but the reality is that there's a few problems that prevent the language
from use in modern websites.
Browser
Support
The main problem with HTML5's
acceptance is that only modern browsers support it. By modern, I mean almost
everything except for Internet Explorer. The new version...IE9 offers excellent
support, but as of this writing it's not quite out of beta. Even if it were,
the majority of people will still use older versions of IE for quite some time.
There are things you can do to make the language play nice with older browsers,
but none of them are perfect.
The
Language is a Spec
Another problem is that although
parts of the language are very stable, the language itself is considered a work
in progress, so technically, any of the elements could change at any time. The
language is not expected to be completed for several years, which complicates
things further. Thankfully, a lot of the language is considered stable and
ready to use. I think it's such a great move forward, that you should develop a
Graceful Degradation approach to writing your HTML. That simply means
writing HTML that will work with older browsers, but will offer users with more
modern browsers an enhanced experience.
Media
Licensing Issues
Another ugly fact about HTML5 is
that because of licensing issues, rich media has to be compressed in multiple
formats in order to be compatible with most browsers. So you'll probably use
something like mp3 audio for webkit browsers (safari, chrome), and ogg for
mozilla (firefox) browsers. It involves a bit more work and it is a pain, but
hopefully those issues will be resolved soon.