Sunday, March 25, 2012

HTML5 Can't Come Soon Enough

I'm always deeply cynical about the HTML standards. They aren't so much standards as they are ... suggestions. Each vendor seems to have slightly different ideas of how those standards should be implemented.

Take for example what should be fairly simple: including one html page within another. Why would you want to do this? Fairly simple - you may find you want to use one html file for your header and navigation and another for the content. This would make consistency a breeze across a site.

Frames can do this but each frame is then a separate instance i.e. scrolling in one frame doesn't scroll down the other frames. It's no longer just one web page.

There are ways of doing this according to the html standard... though you still can't do it... consistently. The problem is that each of the different clients have a different way of implementing these "features". Whether it's a limitation on defining the size of such an element, the risk of ending up with scroll bars within your content or it just plain doesn't work.

So we're stuck with having to do it "server side". That is, when the server serves up the webpage, rewrite the code so that to the client, it looks no different from a static page.

This isn't a solution. It's a workaround. And all because a standard isn't really a standard until it's implemented. HTML leaves a lot to be desired. CSS only solved a few issues - it just plain didn't go far enough. See this page for an interesting instance of where:

  1. Standards aren't really standards.
  2. CSS just isn't the standard everyone was hoping for.

I'm finding myself increasingly frustrated by multimedia in a web environment.

For a long time the darling on the Internet has been Flash. It made possible youtube for one. However, it's in a decline. Various apple devices (the iPad being one) never supported flash. The Linux Adobe Flashplayer isn't being supported past 11.2. The latest version of Android is the last that will have support from Adobe. There are various other implementations of flash players out there, but no where near as complete as the Adobe implementation. Furthermore, it's encumbered by a license agreement which makes it hard to distribute on free software implementations (requiring an EULA that's 8 or 9 A4 pages long).

Enter Silverlight/Moonlight. So while Adobe are dropping Flash in favour of working on HTML 5, Microsoft came to the party with their own similar product. However, they've entered the fray in amongst patent issues. For video codecs, they have the MS Media Pack which allows you to play video and audio. However, it can't be distributed i.e. you MUST download it from the MS site and agree to the EULA.

This isn't the first time this has happened. During discussions around HTML5 there were a series of debates around the standard codec for video - a split between H.264 and Ogg Theora. H.264 offers great quality at low bit rates (less data needing to be sent to the client) - and also requires a lot of client resources to uncompress and play - BUT is encumbered by patents. Ogg Theora isn't encumbered by patents but doesn't offer the same quality.

So even HTML5 might not be the saviour we're all looking for. To resolve the debate they chose to simply not include a standard codec.

In Linux, you'll find that you have varying degrees of support for codecs. For example, converting an avi file to a mov file (for use in iMovie for example) isn't possible on Ubuntu using the official codecs (included in ffmpeg - you can decode but not encode). You'd instead have to use unofficial ffmpeg binaries or compile it yourself.

So while HTML5 might be a step in the right direction (and we need this direction now as other difficulties face us such as creating online interactive multimedia rich applications becomes more difficult) it's probably going to be a great big pain to get cross-browser compatibility.

This is a huge argument against software patents. While I was commenting last year during the Rugby World Chalice-like-thing (there were issues with using the three words together) and the state of streaming, I termed the problem as a technical one. Surely we've got the technology to do this by now? But it's not technical. It's a legal problem. One which seems to have resulted in stalled development. While the individual codecs get better, they're still being developed in isolation.

I thought this line was interesting from the MS Media Pack EULA:

You also may not: ... work around any technical limitations in the software.

While working around technical limitations has the potential of improving the software...

So back to the original question.... which I haven't really stated up till now:
"What is the future of multimedia rich content on the Internet that is accessible to everyone?"

HTML5 is nowhere near perfect and definitely needs fixing, but it's at the very least a step in the right direction.

No comments:

Post a Comment