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:
- What can Atom Feed do that RSS 2.0 can’t?
- Why don’t Blogger and MT use RSS 2.0?
- Now that RSS 2.0 is under a CC licence, why not just make a fork that fixes its problems for Atom?
- Why is the Atom development model so slow and messy?
- 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.