Today I want to take the discussion of syndication a step farther and look at the two main types of feeds used in blogging today – Atom and RSS. I say two, but that’s really a misnomer. Mark Pilgrim counted 9 different flavors of RSS and there are 2 different variants on the Atom specification. Specifically, we’ll look at Atom 1.0 and RSS 2.0.
Really, there is much to say about the various formats. I can pass along what I’ve learned myself, though I’ll never hold myself up as an expert on them.. There are certainly people more qualified to deal with feeds. What I can say about feeds though is that they are mutually important to providing a third dimension to a blog and the differences between the two are mainly semantic and not critical differences – unless you’re Dave Winer, of course.
RSS 2.0 has the widest acceptance of any feed format. Much of that has to do with the defacto use of it by WordPress, but it is also the one variety of RSS format that seems to have solved some of the problems presented by earlier versions. Of the two feed types, RSS is most widley used but also has signifigant downfalls.
For one, RSS does not allow any well-formed XML markup in it’s content. This is very bad when it comes to using RSS-syndicated content elsewhere. In fact, it only supports plain text or escaped HTML which, without getting into the technical issues surrounding that, simply means it’s very difficult to work with.
RSS has only three required fields on a per item basis- title, link and description. There are a variety of optional fields but some key features, such as a “last updated” field are missing.
Atom is a relatively recent spec and is much more robust and feature-rich than RSS. For instance, where RSS requires descriptive fields such as title and link only in item breakdowns, Atom requires these things for both items and the full feed.
And my favorite – Atom feeds provide an “updated” field which means that any feeds that are modified have a timestamp associated with them. Trust me when I say I find this useful.
A cool feature of Atom has to do with autodiscovery. Most of the time, if you point your browser to a feed-enabled website, autodiscovery kicks in and the browser alerts you in its own unique way to the presence of a feed. The same thing happens when you point a feed reader to a feed-enabled website as opposed to the specific feed itself. While feed autodiscovery has been around for a long time, Atom feeds actually contain a self pointer autodiscovery URL which is highly unique from RSS itself.
There’s quite a lot different in terms of the two specs. If you’re really interested in discovering the technical differences between the two, I encourage you to read Tim Bray’s comparison piece. He really nails it very well.