Yoz Grahame's Unresolvable Discrepancy

I came here to apologise and eat biscuits, and I'm all out of biscuits

Why Atom doesn’t use RSS 2.0

Posted: December 4th, 2003 | 5 Comments »

(Context references: Don Park, Diego Doval)

I’ll say from the outset that I don’t consider myself in either camp, as it were; I’m an external developer who wants a decent standard to code to, and these are my observations.

The questions that I keep seeing thrown around this discussion are:

  1. What can Atom Feed do that RSS 2.0 can’t?
  2. Why don’t Blogger and MT use RSS 2.0?
  3. Now that RSS 2.0 is under a CC licence, why not just make a fork that fixes its problems for Atom?
  4. Why is the Atom development model so slow and messy?
  5. This is all about politics, isn’t it?

1. What can Atom Feed do that RSS 2.0 can’t?

As has been previously pointed out in various areas, the point of Atom Feed is not so much to provide new features as to provide a feed format with considerably fewer areas of doubt and uncertainty than RSS 2.0 has, while still providing carefully-defined but still open room for extensibility in the vein of other well-behaved XML formats.

However, since you ask, here’s one particular feature that Atom’s developers would like:

To be able to specify dates in the most popular and widely-used format within the XML world, namely Dublin Core format.

And therein the whole problem lies.

I don’t really know why this is such a sticking point, since RSS has a date format already and it seems relatively unambiguous. On the other hand, anyone implementing a reasonably full-featured RSS consumer already has support for parsing dc:date, since RSS 1.0 uses it, and it’s much more widely-used in the XML world, thus providing an easy compatibility route with existing XML-consuming code that then wants to consume RSS.

The wish to use dc:date unearthed more problems with RSS 2.0 and that led to Atom.

According to the spec, RSS 2.0 lets you use dc:date instead of pubDate. Except, apparently, it doesn’t let you do it. Or it does, but it’s bad. In fact, I have yet to find a clear answer on whether using dc:date in an RSS 2.0 feed is valid or not. (This is one of those areas of doubt and uncertainty that I mentioned earlier)

2. Why don’t Blogger and MT use RSS 2.0?

I have no idea about Blogger, but MT has supported RSS 2.0 from the word go, as far as I can tell. There’s an RSS 2.0 feed template and it appears to validate just fine. However, the creator of RSS says that MT does not support RSS 2.0 properly. Eventually, after much handwaving and detective work (rather than, say, actually explaining from the start, which might have avoided some of the political problems that RSS and Atom are mired in), it transpired that this was due to its use of dc:date, despite this being valid according to the spec.

In short, the answer with regard to MT is one of the following:

a) MT supports RSS 2.0 in a valid manner and always has done.

b) MT does not support RSS 2.0 in a valid manner despite being considered valid according to the RSS 2.0 specification and therefore there is a problem with the specification as it stands.

(Update: In the comments to Diego’s post, Dave Winer clarifies: “Sure, their optional RSS 2.0 feed validates. It’s valid. You’re right about that. But it’s not supportive.” – using “supportive” in terms of RSS as a project rather than a spec.)

3. Now that RSS 2.0 is under a CC licence, why not just make a fork that fixes its problems for Atom?

Because it’ll break RSS 2.0 for everyone else. Putting a standard under a CC licence and thereby making it open for random rewriting does not fix a standard’s problems, it just makes them worse by encouraging people to change the standard a billion different ways, thus making the life of developers like me utter hell.

One of the (highly-admirable) aims of RSS was overt simplicity, encouraging users to look at the format, understand it instantly and reproduce it accordingly, in a similar way to HTML. Unfortunately, as anyone who has to implement an HTML consumer will tell you, doing it in a way that can comfortably parse even 50% of the web’s pages is damn hard work. RSS isn’t anywhere near as complex a problem, but inviting liberal rewriting and ambiguous interpretation of a spec takes things in a dangerous direction.

Were Atom to fork RSS as encouraged, it would merely be exacerbating the problem. Plus, there are no assurances that this would fix any of the disagreements that begat the Atom project in the first place.

4. Why is the Atom development model so slow and messy?

Because that’s what Internet standards development tends to look like. It’s not for nothing that the IETF has become known as The Organisation For Building The Internet Agonisingly Slowly. And just because the spec is still 0.x doesn’t necessarily indicate a massive problem, since RSS 0.91 was an active standard too.

However, Atom is going far slower than developers such as myself would like. If the spec doesn’t reach initial recommendation level soon and Blogger still uses it then it may end up having the same forking problems as RSS now does. I don’t take part in Atom development so I’ve no idea why it’s going so slowly, nor why Diego’s contributions were not used, and both of these disturb me.

5. This is all about politics, isn’t it?

Certainly, there’s far more ugly mud-throwing from both sides than is remotely necessary. This posting will probably be taken as mud-throwing too, though I certainly don’t mean it to be, as I don’t know any of the people involved personally, I’m sure they’re all quite lovely and I have no wish to offend anyone.

So, in order to state my own position in this I’d better go ahead and offend both sides at once from my middle ground:

I am an Internet code developer.

Right now, I refuse to use either Atom Feed or RSS 2.0.

I refuse to use Atom Feed because it’s not fully specced and attempting to implement it might do more harm than good. Also, certain things I’ve read about the Atom standards process (such as Diego’s post above) leave a bad taste in the mouth. Of course, Internet standards development, like democracy and sausage-making, is really not one of the things one should watch if one wants to keep one’s lunch.

I refuse to use RSS 2.0 because I still have no idea what valid RSS 2.0 is ever since the whole dc:date fiasco, and that word which everyone knows but I refuse to use because it’s utterly meaningless and makes me want to sling more mud. After being told by RSS’s highest authority that the RSS 2.0 my MT install was producing was wrong, yet valid (according to every validator out there) and that authority refused to divulge what the actual problem was, I threw it away. I wouldn’t use a compiler that just said “Your code is wrong” and didn’t tell me why, and this is no different. I have no time for that. (Hell, I don’t even have time for writing this, but I was always terrible at prioritisation, and the whole RSS vs Atom fight is as hard to look away from as a particularly gruesome car crash)

What both of the above have in common is that I’m impatient, which is one of the virtues of a programmer (according to Larry Wall). I don’t want to wait for Atom Feed and I don’t want to be left hanging around waiting to be told exactly what’s wrong with my RSS feed.

So I use RSS 1.0, because it’s utterly specified, unambiguous as far as I can see, it’s not going anywhere and everything supports it.
Were Atom to just take RSS 1.0 and rename it Atom Feed, that would be just fine with me, and then I could get on with producing useful code instead of feeding flame wars.


5 Comments on “Why Atom doesn’t use RSS 2.0”

  1. 1 Justin Mason said at 6:04 pm on December 4th, 2003:

    Yeah, same here, pretty much; RSS 1.0 works fine for me and is clearly specified, which is what I want to see in a “standard” after all. And I don’t mind namespaces.
    ‘According to the spec, RSS 2.0 lets you use dc:date instead of pubDate. Except, apparently, it doesn’t let you do it. Or it does, but it’s bad. In fact, I have yet to find a clear answer on whether using dc:date in an RSS 2.0 feed is valid or not. (This is one of those areas of doubt and uncertainty that I mentioned earlier).’
    Interesting. So is the use of dc:date bad because it uses a namespace, therefore “funky”, ie. see point 5? (I never bothered figuring all this stuff out.)

  2. 2 Yoz said at 6:29 pm on December 4th, 2003:

    Not quite – it eventually transpired that the problem was not namespaces (which are fine, and recommended by the spec for extensions) but replacing a functional part of RSS 2.0 (pubDate) with something different (dc:date) that does the same thing. The argument says (and I can kind of see this point) why bring in an external type when there’s an internal one that does the job already? Sure, it’s technically valid, but it’s not considered good behaviour. And the response to that… well, see point 1.
    What I’m wondering is whether use of *both* pubDate and dc:date is okay.

  3. 3 Phil Wilson said at 10:09 am on December 5th, 2003:

    and the point, of course, is that you shouldn’t even *have* to wonder. But as you (almost) say, who the fuck cares when you can use RSS 1.0 and everything just works?

  4. 4 Jim Hughes said at 2:53 pm on December 8th, 2003:

    Loud applause from the gallery
    I’m glad I’m not the only one who thinks RSS 2.0 is a naked emperor. RSS 1.0 is just so much saner.

  5. 5 Anonymous said at 2:17 am on March 15th, 2005:

    But Atom isn’t all that unambiguous itself… it’s still in 0.3

Archive

The complete list of posts lives here.

yoz's bookmarks

  • Lee Maguire – WikiLeaks and the future Hydra
    Lee on the similarities between WikiLeaks and comic-book villainous organisations.
  • WebGL Inspector
    Lovely Firebug/Web Inspector-alike for WebGL, usable either as an extension (for the top WebGL-enabled browsers) or embedded JS. Under rapid development.
  • ge.tt
    Gorgeous hack: web-based file sharing service where the link to your file works while it's still uploading. Instant, super simple and free. (via DMM)
  • Async.js (Caolan McMahon)
    One of the many flow-control packages for Javascript, of which at least 3 are called async.js. This one has some really nice tricks, especially auto() which fires off function calls as soon as their dependencies are met.
  • Adequately Good - JavaScript Module Pattern: In-Depth
    Really good explanations of several useful function and module patterns to use when building your own
  • News flash: Deadly terrorism existed before 9/11 - Ask the Pilot - Salon.com
    The quantity of air-travel-targeting terrorist attacks between 1985 and 1989 would be unthinkable today; yet the presented danger and precautions taken are far worse
  • 100 Free High Quality WordPress Themes: 2010 Edition - Smashing Magazine
    Some really nice minimal ones here, along with good theme tools and a bunch of things that I didn't know WordPress could do
  • Lenore Skenazy: 'Stranger Danger' and the Decline of Halloween - WSJ.com
    Despite American parents' increasing paranoia, Halloween may be the safest day of the year for kids. (via schneier)
  • becoming the alien: apartheid, racism and district 9 « a subtle knife
    Superb essay on District 9's relevance. "It confronts us with our complicity with racism, by making us identify with the perspective of the racist, inviting us to feel the revulsion of the xenophobe – and then pulling the carpet from under our feet." (via kevin marks)
  • Music Hack Day: The Uninterrupter - Andrew Shearer's Other Blog
    "For an increasing number of us, the same device we use to play music also handles email and GPS directions." The presented solutions are as brilliant as they are ludicrous. (via extensionfm blog)

yoz on twitter

    follow me on Twitter

    Meta

    • Log in
    • Entries RSS
    • Comments RSS
    • WordPress.org

    Content licensed under the Creative Commons (Attribution - Share Alike) | Theme based on Clean Room by Columbia, MO Web Design