The Trouble with RSS

Often the question of why do we need Atom comes up? Well, to be honest, we don’t…

Often the question of why do we need Atom comes up? Well, to be honest, we don’t. I mean, we don’t need RSS either, do we? But it is nice to have. Why? It makes our lives easier right? Well, it should. As an end user it can, but as a developer it can often make you bang your head against your desk because you long for the simplicity and ease that the users get.

Don’t get me wrong, I’m all in favor of user-centered design, and putting usability first. In fact, usability should be provided to developers as well as end users. Meaning? Meaning that I want to use standard XML tools to deal with XML. I want XML to actually be XML. RSS is supposed to be XML, but isn’t always XML. Atom is proposed to be XML, and will hopefully be XML. (See Also: Liberal XML parsing related to personality?)

Dave mentions that Borland has an RSS howto, and points to it. In reading The BDN Guide to RSS I find this:

RSS is more or less an XML dialect. I say “more or less” because there is no official XSD for it (although some
have tried) and because a number of sites produces RSS that follows the rules of neither RSS nor XML. This means
that if your application intends to consume RSS generated by persons unknown in the wilds of the internet, you
must be prepared to deal with some less-than-compliant documents. Since non-well-formed documents may be summarily
rejected by an off-the-shelf DOM, some authors resort to writing their own parsers.

Imagine if someone said “Hey, there’s this thing called HTML and you can probably view it in your web browser, but if not, some people resort to writing their own web browsers…” Thing is, 10 years ago that statement would not have seemed that far out there. Today though, I think we’ve made progress, and should continue to move forward.

Here’s what a software engineer has to say when faced with learning about RSS:

RSS is deeply splintered among two competing visions. One says RSS Stands for “RDF Site Summary”, the other says RSS stands for “Really Simple Syndication”. Within these factions, you’ll find numerous minor specification revisions. Most are similar, but differences remain. Writing parsers must be a nightmare.

The specs are really bad. I would have expected to find an official DTD or Schema, but they don’t exist. The
official RSS 2.0 specification is written using some really lousy HTML so it is impossible to print in a decent
way. I spent the last 20 minutes stripping out the garbage (like hardcoded fonts and extra HTML tables) so I could
print a legible version.

Deeply splitered between RDF and RSS? This poor soul doesn’t even know about Atom yet, when he does he’ll start to weep quitely to himself… Well, at least he’s already figured out that writing parsers is a nightmare.

Honestly I see RSS as somewhat equivalent to HTML 4.01, where you could use tables for layout and font tags, and it’s more or less ok, while I see Atom as being more like XHTML 1.0 where things are at least a little more clean and strict, and people try their best to avoid using tables unless they have tabular data to display, and wouldn’t think of throwing a font tag into the mix.

Yes, RSS is growing in popularity. It only took 4 years or so, which on the Internet is a really long time. Companies are choosing to implement RSS feeds. Why not? Everyone else is doing it? And it’s usually safe for Mr. Safe to do what everyone else is doing… Right?