Cook Computing

Dave Winer Specifications

January 11, 2006 Written by Charles Cook

It seems to me that a Dave Winer specification is often seen an invitation to free-for-all improvisation rather than a definition of how a protocol should be implemented. Dave and Sam Ruby have posted about the photocasting feed format that Apple introduced this week, pointing out its not valid RSS 2.0. Similarly over the years working on XML-RPC.NET I've seen many incorrect implementations of XML-RPC. For example, in XML-RPC an integer value can be either an <i4> or an <int> element; I recently came across a server which would only accept <int>. There are two ways of including string values; I've seen several cases where an implementation would only accept one of them. <fault> structs contain a <faultCode> member with an integer value; another implementation decides that this should be a string value. Maybe its the informal style of the specifications which lure people into thinking that they don't have to pay attention to what the document says. This and the areas of vagueness in these specifications have convinced me of the need for very precise formal specification if you're going to avoid a lot of wasted time fixing problems caused by incompatibility.