lesscode.org


The Zen of Microformats  

By Ryan Tomayko under First they ignore you.., microformats on 28. October 2005

For some time now, I’ve wanted to increase my understanding of microformats. If you’re unfamilar with the term or want to understand the basic purpose of this technology better, I suggest reading Phil Windley’s Microformats: Paving the Cowpaths. I read it some time ago and was intrigued but had very little time to do further research.

I have had a chance to dive in a bit more over the past few weeks and am excited at what I’ve found. I’ve trawled the mailing list archives, spent some time on the wiki, and read what people are saying on the blogs. I have yet to spend a lot of time in the guts of the individual specifications (e.g., hCard, XOXO, hCalendar, etc.) because, frankly, the nitty-gritty is a very small potion of what’s really grabbing my interest here.

There seems to be a bit of confussion around what “microformats” actually are and I think I know why. From what I’m seeing, the term “microformats” has two separate meanings - one is obvious and one comes after interacting with the community a bit.

  1. “Microformats” are a set of specifications describing interoperable machine formats that work on the web.

  2. “Microformats” is a process for arriving at interoperable machine formats that work on the web.

In general, when someone says “microformats”, they are most likely talking about the specifications. What I’ve found after lurking on the mailing list and watching the community is that when someone very close to the project says “microformats”, they are more often talking about the process that is evolving there. This is much harder to explain but it’s definitely worth trying because the core values, the Zen, these guys are carving out have very strong parallels to those of the less code movement, I think.

Luckily, I don’t think I’ll have to do much explaining myself because there are some gems from the microformats-discuss mailing list that I think go a long way in describing what’s going on there:

Mark Pilgrim in RE: Educating Others:

The regulars on this list grok this intuitively, or at least have accepted it for so long that they’ve forgotten how to articulate it. We simply don’t care about the general case.

Some people (Scott, Lisa, others) look at this and say “what about this edge case?” or “how do you combine them?” or “I need something with rigid structure” or “how do you validate them” or whatever. And these are all obvious questions that form interesting permathreads on mailing lists around the world. And we just don’t care. Not because we’re lazy or sloppy or naive — in fact, just the opposite. Our apathy towards the edge case is born out of bitter experience. We all bear the scars of drawn-out battles over edge cases that satisfied someone’s sense of “completeness” or “aesthetics” or “perfection”, but ultimately made the common cases harder and solved no real problem.

Ryan said microformats are all about 80/20. He’s right, but unless you’ve share [sic] our common experience, he may as well be speaking in Zen koans. Most standards go like this:

  1. Solve 80% of the problem in a matter of weeks.
  2. Spend two years arguing about the last 20%. (cough Atom cough)
  3. Implement the 80% in a matter of weeks. Wonder why everything is so hard.
  4. Spend months implementing the last 20%. Realize why the first 80% was so hard. Curse a lot.
  5. Discover that the last 20% wasn’t really worth all the time spent arguing about it or implementing it.

Microformats, on the other hand, go like this:

  1. Solve the 80% in a matter of weeks.
  2. Promise (wink wink) to tackle the 20% “later”.
  3. Implement the 80% in a matter of days.
  4. Watch people use it for a few months. Maybe tweak a little here and there.
  5. Discover that the last 20% wasn’t really necessary after all. Breathe a sigh of relief that you never bothered. Move on to the next problem.

The regulars on this list have all been through the full standards cycle many times. We know about edge cases, we know about validators, we know about standards. We know. We’ve been there. We’ve all decided that this way is better. Not because it’s easier or faster or sloppier, but because it leads to a better result. Really. The fact that it happens to be easier and faster is just a karmic coincidence.

Mark’s description of the mainstream standardization process vs. that of microformats could easily be used to describe the difference in technique employed by the mainstream software industry vs. that of the less code crowd.

Ryan King in RE: Educating Others:

… we’ve proven that microformats (at least, the ones developed so far) work in practice, we just need to show that they work in theory.

The arguments in this thread are theoretical–in theory there’s no difference between theory and practice, but in practice there is.

Luke Arno in Evolution vs. Intelligent Design:

It’s evolution not “intelligent design.”

Tantek Çelik in Microformats and the Semantic Web:

Microformats essentially ask:

Can we do more (practical use and applications) with less (logical formalism, formats, namespaces, etc.)?

Tantek Çelik in Microformats and the Semantic Web , and this one’s a gem:

I hardly ever look at PDF docs.

Without even looking at the actual technical specifications, I think these quotes say a lot about microformats’ potential.

To me, what’s exciting about microformats is the same thing that’s exciting about dynamic languages, REST, F/OSS, and other seemingly unconnected technologies and concepts: they are all evolving under the fundamental principle that you cannot adequately plan/design large systems upfront and expect them to be successful. That we don’t know anything until we’ve observed it. Respect for this simple truth leads to dramatic changes in how one builds and evaluates technology and you can see this happening to great effect (and with equally great results) in each of these communities.

More…

13 Responses to “The Zen of Microformats”

  1. hxa:

    Yes, it’s not purely evolution. It’s a hybrid with design/abstraction: ‘lazy abstraction’ perhaps. And that combination gives more than either. Evolution only makes unmodifiable things.

    comment at 28. October 2005

  2. Cam McVey:

    Ryan, I just wanted to say that I thought this was an excellent, well-considered post that has cleared up my confusion re Microformats. Thank you.

    comment at 28. October 2005

  3. Tantek Çelik:

    Great post Ryan. You’ve clearly grokked the Zen of Microformats. Thanks for writing up an excellent step-by-step explanation. Please consider contributing some of this explanation to the microformats wiki, perhaps on a page like this.

    Thanks!

    Tantek

    comment at 28. October 2005

  4. Ryan Tomayko:

    hxa: May evolution isn’t a perfectly accurate term but the point is that the community is interested in an iterative, feedback dominated standardization process.

    Tantek: sure will.

    comment at 28. October 2005

  5. Jon Miller:

    That we don’t know anything until we’ve observed it. Respect for this simple truth leads to dramatic changes in how one builds and evaluates technology and you can see this happening to great effect (and with equally great results) in each of these communities.

    I agree with this principle in all innovative, novel endeavores. I also particularlly agree with the leave the 20% out, if I can phrase it that way.

    I just wanted to point out that occationally we don’t need to “wait until we’ve observed it”, when there can be proper and addequate market research done before the implementation phase.

    So, where possible, do the research and hit the 80% of the proposed features which really meet the market well. And where not possible, get something out there and “see what happens” when there is no good research to be done. Programmers, I believe, too often don’t understand or think the same way as the eventual end user.

    I do hope that microformats gains more and more momentum.

    comment at 28. October 2005

  6. grumpY!:

    oh god save us from the bored web2 gurus who dream up ad-hoc transmission standards one after the other with no useful audience, no toolchain, no REASON. take a look around the web at who is placing these formats on webpages. anyone? bueller, bueller, bueller…

    do even the microformats gurus publish microformats?

    this is web2 doing what is does best - answering questions no one is asking.

    comment at 28. October 2005

  7. ryan:

    grumpY!-

    do even the microformats gurus publish microformats?

    I publish microformats. Tantek does. Kevin does, Brian does, Many others do, but I’m sure you knew that.

    comment at 30. October 2005

  8. warpedvisions.org » Blog Archive » Link: Zen of Microformats:

    […] October 30th, 2005 in Links The Zen of Microformats, an approach to make things work together better. […]

    pingback at 30. October 2005

  9. Kevin Marks:

    Grumpy, you don’t need god for that; that’s what microformats are for. They need to have a reason, they have an audience (anyone with a browser), and we’re building toolchains.
    Well over a million blogs use rel=”tag”; every Avon lady has an hCard.

    comment at 31. October 2005

  10. Marc’s Voice » Blog Archive » Turkey links or ‘leftovers’ for everyone:

    […] The Zen of Microformats […]

    pingback at 25. November 2005

  11. microformats | weblog | AJAX vs. AHAH:

    […] Perhaps another could be rephrased: Why bother with parsing/transforming when you can just get the data in a presentable format? After all, we all know that less code is better. […]

    pingback at 18. December 2005

  12. Breyten’s Dev Blog » Blog Archive » links for 2005-10-29:

    […] The Zen of Microformats [@lesscode.org] “What I’ve found after lurking on the mailing list and watching the community is that when someone very close to the project says “microformats”, they are more often talking about the process that is evolving there.” (tags: microformats web programming) […]

    pingback at 08. April 2006

  13. Ethical Software by Alex Bunardzic » ROA and Microformats:

    […] The so-called Zen of Microformats states that it only makes sense to cope with the 80% of the problem space, and leave the remaining 20% of the unsolved portion to take care of itself. […]

    pingback at 11. August 2006