Ha!
Somewhere on Mt. Olympus, a great battle has raged between Athena and Dionysus over these questions for thousands of years. You are on the side of Athena, I am a partisan of Dionysus. Although in the end we remain siblings and lovers. (Gross.)
I agree that RSS is technically the shoddiest of all the feed standards. That is why it is the best. It’s not precious. You don’t need an IETF RFC to extend it, just a website you let document your namespace URL. RSS is for amateurs, not for experts. Atom is better thought out than, technically superior to, RSS. RSS is weird, quirky, full of vestiges no one cares about and choices that don’t really make sense. To properly support authors, you’ve got to bring in a whole new namespace and <dc:creator>
? Really?
Really.
If anyone does anything better than we do, we just steal it. You can find all kinds of Atom tags embedded in RSS documents.
RSS is a space for drunken play, a Bacchanal where it’s all fine because whatever you did last night, if it turns out it was a dumb idea, no one is going to be any worse for the wear. Its inauspicious start means you don’t have anything so precious to compete with. RSS’s Zeus literally says stuff like “Perfection is a waste of time” and “It totally doesn’t matter what we call it.” and “If practice deviates from the spec, change the spec”.
The spirit of RSS is the very opposite of high modernism. It’s “throw the kids on the quad and see where they walk, then we’ll pave sidewalks where the grass has worn away”. In our project, we propose simultaneously to be the kids and the steam-roller (or its sidewalk equivalent).
We have lots of metadata we want to add to RSS, because there are a bunch of things we want to do that its existing metadata won’t support. We don’t mean to think it out all that carefully. We just mean to add it, and make our things, and publicize it and hope other people walk the same sidewalks. Our one compunction, the one commandment that will slow our fervid play, is Zeus’ admoniton:
If you want to add a feature to a format, first carefully study the existing format and namespaces to be sure what you’re doing hasn’t already been done. If it has, use the original version. This is how you maximize interop.
We want to be sure there are sidewalks to everywhere we want to walk, but if there already are sidewalks, we don’t want to build alternative paths, because interaction with the humans is everything and we want to disperse that energy as little as possible.
Other than that, anything goes. Playfully, even a bit carelessly. It’s better, says Dionysus, to get it done half right, than to tarry on Athena’s counsel to get it truly right and end up getting nothing at all.
(Athena, of course, gets a great deal done. Dionysus would have no wine, or only very terrible wine, if it were not for her diligent inventiveness. But serving Athena well is not within the capacity of your neighborhood drunk. Hiccup. Dionysus’ knack is to make it possible for even the lowest drunk to be the life of the party sometimes. Since there are many more drunks than mathematicians, there is something to be said for that.)
Re XML, I agree that’s a big question mark. On the one hand, XML does have its advantages. JSON is a terrible format for anything but over-the-wire serialization in my view, even uglier than XML for humans to make sense of as text, very brittle, scornful of the most basic amenities like comments. But people do hate XML, and it is an ugly, overly corporate format. Its virtue is its very forgiving eXtensibility (if you don’t rigidify it with XSD or such monstrosities).
For that reason, I’m reluctant (but not decided certainly against) using very XML-specific technologies like XML signature. I’d rather keep the logical sematics of whatever metadata we define to a basic informal schema of
- element namespace
- element name
- key-value attributes
- enclosed-elements OR enclosed text (not mixed, embedded HTML is CDATA)
RSS has a lot of installed base and network effect around it already, in all its XML antiglory. I don’t see a shift to anything else anytime soon. I think JSON feeds were an awful idea.
But it would be nice if, somehow, someday, we could move to something much less horrible than XML. Consider, for example, something like KDL (pronounced “cuddle” i
it!)
The set of primitives listed above could easily be mapped to a format like that. And perhaps should, if it weren’t for those damned network effects.
Anyway, I agree with you, I’d like to leave open the possibility.