We had a screening of the new Joss Whedon movie Serenity in our screening room at Pixar. I have been awaiting the movie ever since I first heard of it, and was not disappointed. This movie is great, with superb performances, acting, dialogue, plot and action. I’m not going to spoil a minute of the movie by describing the plot, but if you are a fan of the original television show or not, go to see this movie. It’s great stuff.
Twice in one day…
Scoble responds to lots of criciticism that he’s evangelizing a crappy format, and really misses the forest for the trees. Actually, he misses the trees too. Earlier today I recorded this podcast, which I wasn’t going to post, but if Scoble’s going to go on, I think it actually merits it.
See, as a user, I really don’t care about the spec. I can’t read them. I don’t appreciate them. And, all they seem to do is lead to religious arguments one way or another.
I’m a user. Shoot me.
But what Dave did was give me an application. It works. And, as a user, I wonder “if the format is so crappy, how did Dave get it to work in his own application?”
And, as a user, I wonder “why can’t the developers just get their OPML to work with Dave’s application?”
The reason that developer’s just can’t get their OPML to work with Dave’s application is because the specification sucks. There is simply no way for anyone to tell if the OPML file generated by their application is really compliant with what Dave’s editor implements, or only just happens to never tickle a bug or an ambinguity which wasn’t specified.
It’s really not that hard to write an application: the trick comes from interoperability. To be useful, these files must be able to be routinely exchanged between applications written by different people, and that simply isn’t feasible without a clear, complete specification of what the format actually entails.
The crappy format is good enough until someone comes up with something better. And that’s what you’re all missing.
What Scoble is missing is that currently he’s in a position to help dictate what gets adopted and what users are going to be seeing for the next five, ten, or even more years, and if he had any concern for those users, he’d work to ensure that the technology underlying that growth is as robust and reasonable as possible. OPML doesn’t qualify. RSS doesn’t even qualify. Did we learn nothing from the whole HTML standards process?
Today’s Gutenberg Gem is a neat little astronomy book, published in 1873 by Richard A. Proctor. It lists a number of half hour tours of the sky, each highlighting either a set of constellations or planets. It’s pretty brief, and certainly better modern guides exist, but it’s still a neat little thing to peruse through, for perspective if nothing else.
James Robertson doesn’t much like OPML or RSS as file formats, and tells us why:
Ye gods, it’s time someone came out and said something. OPML is a really, really crappy format. Really crappy. I had massive headaches implementing OPML support for import/export in BottomFeeder. Why? Because there’s no real specification. Like everything Dave Winer has ever been involved with, the specs are all in his head, and it’s up to the rest of us to figure out wtf he actually meant. Here’s the “spec” – and look at all the meaningless crap in it (windowRight? Why is there something specifying the number of pixels for the margin?).
I had to add tons of hacks to the OPML support in order to support the export formats of various tools. The problem? Everyone implemented it a little differently, because the spec is incredibly unspecific – about just about everything.
I couldn’t agree more. Take for example Mark Pilgrim’s comments:
I just tested the 59 RSS feeds I subscribe to in my news aggregator; 5 were not well-formed XML. 2 of these were due to unescaped ampersands; 2 were illegal high-bit characters; and then there’s The Register (RSS), which publishes a feed with such a wide variety of problems that it’s typically well-formed only two days each month. (I actually tracked it for a month once to test this. 28 days off; 2 days on.) I also just tested the 100 most recently updated RSS feeds listed on blo.gs (a weblog tracking site); 14 were not well-formed XML.
The reason just isn’t that programmers are lazy (we are, but we also like stuff to work). The fact is that the specification itself is ambiguous and weak enough that nobody really knows what it means. As a result, there are all sorts of flavors of RSS out there, and parsing them is a big hassle.
The promise of XML was that you could ignore the format and manipulate data using standard off-the-shelf-tools. But that promise is largely negated by the ambiguity in the specification, which results in ill-formed RSS feeds, which cannot be parsed by standard XML feeds. Since Dave Winer himself managed to get it wrong as late as the date of the above article (probably due to an error that I myself have done, cutting and pasting unsafe text into WordPress) we really can’t say that it’s because people don’t understand the specification unless we are willing to state that Dave himself doesn’t understand the specification.
Here is another small example: there is genuine confusion to this day about the support for the
enclosure tag. Are you allowed to have more than one per
item or not? People do generate them. By default, WordPress creates enlosure links for every mp3 that you link to in a post. It’s probably wrong, but lots of things like it just fine. Occasionally someone complains and asks for clarification, but no one ever really reaches a definitive answer.
Scoble likes to champion first RSS and now OPML under the claim that they are good for users. What would be good for users is for the deficiencies of these formats to be absent, or at least invisible. They are not. They manifest themselves in all sorts of edge cases which prevent interoperability. I’ve spent a great deal of time reading RFCs for various networking protocols and formats, and by comparison the RSS and OPML “specifications” are scribbles on napkins.
Scoble’s attitude reflects what I think of as the Microsoft way: it doesn’t matter what’s underneath as long as what’s on top looks shiny. Sure, it will belch smoke, require servicing by a third party every three thousand miles and occasionally make strange sounds that will puzzle and worry the owner, but look how shiny it is.
I use RSS every day. It does fulfill a need. But it does suck, and we would be better off if we all recognized that and worked to something better.