This post originated from an RSS feed registered with Agile Buzz
by James Robertson.
Original Post: Not exactly
Feed Title: Cincom Smalltalk Blog - Smalltalk with Rants
Feed URL: http://www.cincomsmalltalk.com/rssBlog/rssBlogView.xml
Feed Description: James Robertson comments on Cincom Smalltalk, the Smalltalk development community, and IT trends and issues in general.
Postel's Law has two parts. This is something a lot of people don't want you to look at, they only want you to think about the first part, the part which XML says is not a great idea -- be liberal in what you accept. This tends to favor the big guys who have the resources to catch up, and then the chutzpah to throw a big fat hairball into the middle of the market, one that no one else can handle. Maybe Postel didn't live in a world where these big companies could create such big messes, but I have had to deal with them, many times in my career, and they usually end competitive markets. A lot of well-intentioned people in the syndication community don't have the benefit of this experience, and we may have to learn this once again for their benefit. I hope not.
I'm not so sure that being liberal in what you accept favors "the big guys". They are all using sealed, immovable XML frameworks - which means that they have to hack up their own parser to deal with things rejected by the library parser. I've mentioned before that I don't have to do that. See, Smalltalk doesn't have bad ideas like "final" classes. To deal with malformed XML, I simply subclassed the VW XML parser. In the methods where fatal errors were being raised due to bad characters (and such like), I simply have the parser "move on", and flag an error (so that the 3 people who care can report it). This required virtually no effort on my part, and I haven't so much as touched that parser code in 6 months (possibly more; it was awhile ago). The people who say that this is a lot of effort do so from the perspective of the kinds of effort that is required with the mainstream tools. Look outside the mainstream a little and you'll find that the "hard" things just aren't as hard as you thought (not that VW is without flaws... like any other language/library platform, it has its own set of issues).
Bottom line - the "rules" for how to deal with malformed content are going to differ based on context. In a consumer context (most aggregator usage), you'll favor the accept almost everything idea. In a business context, you'll favor the reject anything malformed idea.