Epeus' epigone

Edifying exquisite equine entrapments

Monday, 3 October 2005

Resilient File Formats

On the question of which file formats succeed, the answer is those that are resilient. The ones that provide a method for expansion, and a way for multiple versions to coexist safely.Backwards compatibility is a necessary part of this, but it is not sufficient - forwards compatibility is what wins out.
I see 3 big generations of file format here:
  1. RFC 822 style (ASCII key:value, as in Mail headers and HTTP headers)

  2. IFF style (keyed binary blobs with length offsets) (IFF, AIFF, TIFF, QuickTime, WAV, AVI, MPEG4)

  3. SGML style (ASCII <tag> </tag> model) (SGML, HTML, XML, XHTML)

In each case, these define a way for different versions of the same format to coexist by defining that it is OK to discard elements you don't understand.
This provides baseline compatibility (old parsers generally don't crash on new data, unlike more naive formats), but still requires work to define the sub elements of the format to interoperate.
It provides for graceful degradation, with older or less-featured clients able to display the subset they understand, rather than balking completely.
If you replace an element with a more general one, you may need to continue to include the old version for the previous generation of parsers.
Having worked at Apple on QuickTime for 5 years, and spent 10 years before that tracking it, I've seen that it does take some care to adapt and update in a way that will not break old clients, but the benefits for users of your format are immense (the unofficial motto there was 'no movie left behind'). Of course, if your users are happy, this helps your adoption.
HTML took this from SGML, and in many ways expanded it further due to the toleration of sloppy markup from user-agents, to the point where people writing parsers had a bit of tough time of it.
XML was an over-reaction to this - it instituted draconian parsing by design, and effectively gave the green light for everyone to make up their own format without consideration for others at all (with namespaces as a figleaf to cover this, and coerce coexistence post hoc).
Microformats build on the older model of backward compatibility through selective enhancement. This is a bit more work for the parser and format designer, but much less for those creating data using the format, who can readily pick up the latest version to enhance their existing HTML without harming their other uses.
Working within XHTML does impose constraints on how you can express things, but as Cory Doctorow put it last week:
"It's like this: engineering is all about constraint. Given a span of foo feet and materials of tensile strength of bar, build a bridge that doesn't go all fubared. Write a fun video-game for an eight-bit console that'll fit in 32K. Build the fastest airplane, or the one with the largest carrying capacity... But these days, there's not much traditional constraint. I've got the engineer's most dangerous luxury: plenty. All the computational cycles I'll ever need. Easy and rapid prototyping. Precision tools.


Working with constraints is what makes for good Art, and good Engineering, whether the constraints are cultural or structural.
Without shared meaning there can be no communication. Microformats work to converge shared meaning without disrupting other uses, and to enhance rather than replace what you are doing already.


Technorati Tags: meme, microformats, tags

Posted by Kevin Marks at 16:34

No comments:

Post a Comment

Newer Post Older Post Home
Subscribe to: Post Comments (Atom)

This is my personal blog. Any views you read here are mine, and not my employers'.

Atom Feed

Support the Open Rights Group
My photoKevin Marks Me on Twitter
Me on G+

People's thoughts I read:

Daily

Rosie
San Jose Young People's Theatre
Dave Weinberger
Doc Searls
Gonzo Engaged
AKMA
Cory & friends
Denise Howell
Charles Wiltgen
Shelley Powers
James Lileks
Suw Charman
Halley Suitt

Weekly

Andrew Marks
Blogsisters
Arts & Letters Daily
Bricklin, Frankston & Reed
Steve Yost
Jeneane Sessum
Brian Micklethwait et al
Tom Matrullo
Gary Turner

Sporadically

Small Pieces
Stuart Cheshire
RageBoy
Nonzero
Neil Gaiman
Thomas Vincent
Brad deLong
Andrew Odlyzko
ProSUA

No to Mickey Mouse Computers

powered by blogger

Blog Archive

  • ►  2023 (1)
    • ►  September (1)
  • ►  2017 (2)
    • ►  May (1)
    • ►  April (1)
  • ►  2015 (7)
    • ►  November (2)
    • ►  May (3)
    • ►  April (1)
    • ►  January (1)
  • ►  2014 (3)
    • ►  October (1)
    • ►  April (2)
  • ►  2013 (5)
    • ►  June (1)
    • ►  May (1)
    • ►  April (2)
    • ►  March (1)
  • ►  2012 (8)
    • ►  December (1)
    • ►  May (1)
    • ►  April (1)
    • ►  March (1)
    • ►  January (4)
  • ►  2011 (11)
    • ►  December (1)
    • ►  November (1)
    • ►  September (2)
    • ►  August (2)
    • ►  July (1)
    • ►  April (2)
    • ►  January (2)
  • ►  2010 (16)
    • ►  November (1)
    • ►  October (1)
    • ►  September (3)
    • ►  June (1)
    • ►  May (2)
    • ►  April (2)
    • ►  March (2)
    • ►  February (2)
    • ►  January (2)
  • ►  2009 (22)
    • ►  November (2)
    • ►  October (2)
    • ►  September (2)
    • ►  August (3)
    • ►  July (2)
    • ►  June (2)
    • ►  May (2)
    • ►  April (1)
    • ►  February (2)
    • ►  January (4)
  • ►  2008 (29)
    • ►  December (2)
    • ►  November (3)
    • ►  August (1)
    • ►  July (3)
    • ►  June (3)
    • ►  May (5)
    • ►  April (2)
    • ►  February (3)
    • ►  January (7)
  • ►  2007 (45)
    • ►  November (3)
    • ►  October (4)
    • ►  September (4)
    • ►  August (10)
    • ►  July (3)
    • ►  June (8)
    • ►  April (2)
    • ►  March (6)
    • ►  February (3)
    • ►  January (2)
  • ►  2006 (119)
    • ►  December (13)
    • ►  November (8)
    • ►  October (16)
    • ►  September (10)
    • ►  August (3)
    • ►  July (6)
    • ►  June (24)
    • ►  May (3)
    • ►  April (10)
    • ►  March (7)
    • ►  February (8)
    • ►  January (11)
  • ▼  2005 (101)
    • ►  December (10)
    • ►  November (13)
    • ▼  October (9)
      • Technology should be amoral
      • 20 million served
      • Tags and cognitive load
      • In honour of Nelson, 1758-1805
      • Armando Ianucci explains how to combat deceitful r...
      • Typing URLs now Illegal in England
      • At web 2.0 conference
      • Five business blogging questions
      • Resilient File Formats
    • ►  September (8)
    • ►  August (7)
    • ►  July (7)
    • ►  June (8)
    • ►  May (12)
    • ►  April (7)
    • ►  March (6)
    • ►  February (1)
    • ►  January (13)
  • ►  2004 (53)
    • ►  December (8)
    • ►  November (5)
    • ►  October (6)
    • ►  September (7)
    • ►  July (5)
    • ►  June (3)
    • ►  May (2)
    • ►  March (3)
    • ►  February (7)
    • ►  January (7)
  • ►  2003 (196)
    • ►  December (12)
    • ►  November (14)
    • ►  October (21)
    • ►  September (23)
    • ►  August (19)
    • ►  July (11)
    • ►  June (14)
    • ►  May (9)
    • ►  April (22)
    • ►  March (20)
    • ►  February (16)
    • ►  January (15)
  • ►  2002 (224)
    • ►  December (15)
    • ►  November (21)
    • ►  October (22)
    • ►  September (12)
    • ►  August (11)
    • ►  July (28)
    • ►  June (19)
    • ►  May (29)
    • ►  April (18)
    • ►  March (19)
    • ►  February (16)
    • ►  January (14)
  • ►  2001 (13)
    • ►  December (2)
    • ►  November (11)

Contributors

  • Kevin Marks
  • Kevin marks