As someone who had to suffer through the brower wars of the mid-1990's I am becoming increasingly concerned about the move to HTML 5. Many organisations have announced moves to HTML5 and many pundits are extolling its virtues and recommending use. I strongly disagree.
Let's be clear - HTML 5 is great and will make many things much easier. However, HTML 5 is not finished, and is in many respects years from completion.
STAGES IN HTML DEVELOPMENT
From conception to completion, all versions of HTML5 have to go through a distinct set of stages:
- Working Draft: After first development by a private group of W3C members, the standard becomes a Working Draft. This means it is open to comment and suggestions for changes from almost everyone. Most versions of HTML have undergone huge changes at this stage. Standards can remain at Working Draft stage for literally years, until some form of general consensus is achieved about how it should look.
- Candidate Recommendation: At this stage, the W3C group creating the standard are happy it does what it should and that there are no serious glitches in it. At this stage the focus is on feedback from developers about how practical - how implementable - the standard is. At this stage most significant features are locked, but the design of those features can still change due to feedback from implementors. Minor aspects, such as syntax, may still change. Even changes in such minor aspects can kill any code developed for earlier versions. In other words, at Candidate Recommendation stage, it is still not safe to implement. Candidate Recommendation stage does not usually last as long as Working Draft stage, but can still take a year or so.
- Proposed Recommendation: At this stage, the document has been submitted to the W3C Advisory Council for final approval on the basis everyone is happy with it. It is very rare, but not impossible, to see any significant changes at this stage. This stage can take a few months to a year. The primary concern, as far as I can see, is whether the standard will conflict with other W3C standards in development.
- W3C Recommendation: The standard is now endorsed by the W3C and is safe to use.
CURRENT STATE OF HTML5
W3C started work on HTML5 in June 2004. As of June 2010 it is has reached Working Draft stage. This means it has been published for peer review. Comments by almost anyone will be accepted and may be implemented, so the final version may be very different from the current version. Previous versions of HTML and some XML dialects have, in my experience, emerged very different from their working draft versions.
This means if you work with HTML 5 now, it is almost certain your developments will not work when HTML5 is finished.
How long will HTML5 remain in Working Draft? Well, it's been in Working Draft for over TWO YEARS, since Jan 2008, and it's running late. It was supposed to be in Working Draft by mid 2007, and reach Candidate Recommendation stage by 2009. W3C say they now hope to have it to Candidate Recommendation by the end of this year, but they're always over-optimistic.
Ian Hickson (of Google) is editor of the HTML5 specification. He says he expects HTML5 to reach the Candidate Recommendation stage during 2012. He has been quoted as saying he does not expect HTML5 to become a W3C Recommendation until 2022, but I haven't been able to confirm that. Even so, let's be clear - people won't be able to start providing feedback about how to make HTML5 actually work for another two years, so I can't see it being finished before 2014.
Some people have said that parts are "fairly stable" and can be used now, but "fairly" is not "completely" and means any HTML5 development is risky. Here's the situation as Ian described it;
"People are starting to use parts of HTML5 today. It depends really on what fraction of browsers you want to target. If you only care about Opera, Firefox, Safari, and Chrome, you can use the “canvas” element today without any trouble… but IE doesn’t support it. If you only care about IE, you can use onhashchange… but the other browsers don’t support it. I would give it a few years before the majority of the features are implemented everywhere, but who knows."
(SOURCE: The Chrome Source)
Do you really want to return to the days of having to detect the browser before sending out browser-specific code, all the while knowing that at some unpredictable point in the future you'll probably have to rewrite it all?
HTML5 is a great idea, but it's still just an idea. It's not a standard, it's not finished, and - in my opinion - using it now is just plain stupid.
Thank you for explaining the facts about HTML5! Yes, I love new technology and all, but it is just way too early to even adopt HTML5 for any major sites. And if you think it takes forever to kill IE6 support, getting the rest of world to move to full HTML5 spec browser will be even longer.
Let's just take a breath and relax, HTML5 will come, just not now.
"Do you really want to return to the days of having to detect the browser before sending out browser-specific code, all the while knowing that at some unpredictable point in the future you’ll probably have to rewrite it all?"
What makes you think you don't have to write browser-specific code today? As a professional web developer, I'd love to not have to, but browser-specific tweaks are still the reality for serious websites.
"W3C Recommendation: The standard is now endorsed by the W3C and is safe to use."
An HTML standard is never 'safe to use' - you always have to take into account browser idiosyncrasies. The idea that a finished HTML recommendation would magically allow future-proof code to be written without paying attention to browser implementations is a total fantasy.
"HTML5 is a great idea, but it’s still just an idea. It’s not a standard, it’s not finished, and – in my opinion – using it now is just plain stupid."
HTML standards generally (excluding the failed XHTML) have always been more of a summary of the state-of-the-art, rather than iron-clad laws from a central planning authority.
Whether or not you subscribe to HTML5 as a buzzword, ignoring these new browser technologies, if they are relevant to your business, is a recipe for obsolescence.
most parts of HTML5 are not usable yet.
However modern web developers often rely on libraries as their historical job is to leverage the differences between browsers and to offer to the developer a stable API. For HTML5, their new job will be to also provide fallback when they detect that the HTML5 feature is not available, most of the time via a piece of Flash (localStorage, Web Socket, video ...) or of JS codes that already run today (drag&drop, Forms2, geolocation, history, onHashChange ...)
Even Canvas has a library that falls back to VML for IE. Trancoders like this are obviously limitative but in some cases, it's enough.
so yes, HTML5 has a long way to go before 95% of our user can use it natively, but with the proper JS libraries (small ones are already there, we are waiting for the majors), we web developer already start developing with it
So I guess we shouldn't use Flash or any other technology on the web too because there not standards either, your argument is rather silly.
@NICK: I think you've missed the point. It's not about standards, it's about it being finished, which it isn't. If Flash was in beta I'd say the same thing. If you develop for technology which is still incomplete and subject to further change it is inevitable your work will become useless once the technology is completed.
Sir,
HTML5 will better support IE6 than XHTML even though nobody should be using that annoying browser.
How can new technology progress and learn if everyone acts like a republican.
"Don't use it yet, its not ready!"
Come on!
Seriously 2022, that's when HTML5 will get fully approved?