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.
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
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.
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.
I highly recommend you read an online document called Dive into HTML5. Better yet, but the book from O'Reilly or subscribe to it on Safari. It's a great read and goes into specific issues, especially when it comes to Audio and Video encoding. I'm going to write a lot more articles on HTML5 and WebApp development and be on the lookout for my series of iOS WebApp Development with HTML5 and CSS3 from Lynda.com.blog comments powered by Disqus