url URL date NUMBER NUMBER NUMBERtNUMBER NUMBER NUMBER NUMBER NUMBER _clay shirky_ in praise of evolvable systems NUMBER this entire article could be rewritten to explain rss in fact let s do that if it were april fool s day the net s only official holiday and you wanted to design a NUMBER novelty format NUMBER to slip by the wNUMBERc as a joke it might look something like rss NUMBER NUMBERx NUMBER NUMBER it would specify limits on data values then remove them then specify required elements then make them optional thus silently breaking an unknown number of parsers around the world it would encourage use of entity encoded html in its most important element thus ensuring both security risks and unpredictable display for the end user it would ignore years of standards work in other fields committing such egregious sins as defining a guid element that wasn t a guid and using an obsolete date format that couldn t easily be sorted by date its primary method of extensibility would be to add new elements to the core namespace without telling anyone or documenting them thus making it wholely resistant to dtd schema or validation of any kind after years of worldwide deployment it would completely reverse its add whatever you want extensibility rules in favor of namespaces which the spec would neither define nor elaborate on after adopting namespaces it would fail to deprecate any existing elements semantically identical to namespace elements already in wide use it would also fail to provide precedence rules in cases where a document attempted to say the same thing in two different ways thus ensuring mass confusion among producers and inconsistent behavior across consumers rss NUMBER NUMBERx and NUMBER NUMBER are the whoopee cushion and joy buzzer of syndication formats for anyone who has tried to accomplish anything serious with metadata it s pretty obvious that of the various implementations of a worldwide syndication format we have the worst one possible except of course for all the others the problem with that list of rss deficiencies is that it is also a list of necessities NUMBER rss has flourished in a way that no other syndication format has not despite many of these qualities but because of them the very weaknesses that make rss so infuriating to serious practitioners also make it possible in the first place removing length limitations on description and making title optional opened up rss to a whole new category of producer the weblogger allowing encoded html in description let publishers reuse both their existing content and the existing rss infrastructure without requiring them to produce valid xhtml which could be embedded directly into an xml document social mores rather than technical rules prevent producers from intentionally introducing security risks through malicious script tags or unpredictable display through unclosed html elements few publishing tools can produce real conforming guids and it doesn t matter because virtually all rss parsers are written in high level languages where handling strings is more efficient than converting strings to bytecodes and handling bytecodes as for dates by convention an rss document is laid out in reverse chronological order and no one seems to be clamoring for more flexibility furthermore its almost babyish xml syntax so far from any serious computational framework where are the namespaces where is the document type description why is the aggregators enforcement of conformity so lax made it possible for anyone wanting an rss feed to write one the effects of this ease of implementation only become clear when you compare it to the attempts over the years to NUMBER do rss right NUMBER NUMBER most notably rss NUMBER NUMBER in the year NUMBER rss NUMBER NUMBER had three main benefits backward compatible with rss NUMBER NUMBER which was never widely deployed and which fell into obscurity as soon as the much simpler rss NUMBER NUMBER was introduced based on rdf specifically a serialization called rdf xml a spec which at the time and to this day continues to change or threaten to change two years later there are no major languages or development platforms that ship with parsers to consume rdf although many perl python net have third party rdf parsers in various states of development and conformance the release version is generally out of date cvs access is recommended you get the idea meanwhile rdf xml production tools are so inconsistent that even rdf experts recommend not using rdf tools to produce an rss NUMBER NUMBER feed if you want it to actually be read by any major rss aggregator despite the two year old promise of better tools NUMBER it is now the year NUMBER and i built my rss NUMBER NUMBER feed NUMBER in the most sophisticated personal publishing system in the world NUMBER by manually typing a mishmash of template tags and angle brackets into a textarea of an html form extensible through namespaces which as mentioned above have been haphazardly and poorly incorporated into rss NUMBER NUMBER where they appear to be flourishing evolvable formats NUMBER those that proceed by being adapted and extended in a thousand small ways NUMBER have three main characteristics that are germane to their eventual victories over strong centrally designed formats only solutions that produce partial results with imperfect tools can succeed my rss feed is an xml document produced by a template that i built in a textarea and consumed by hundreds of parsers around the world that know nothing of xml and hack apart my feed with regular expressions the world is littered with formats that would have worked if only everyone had better tools if everyone in the world had a perfect rdf parser at their disposal it would be trivial to produce and consume all the world s metadata in rdf without such perfect tools both production and consumption instantly become nightmares there is no middle ground what is is wrong because evolvable formats have always been adapted to earlier conditions and are always being further adapted to present conditions they are always behind the times rss was being stretched with long descriptions optional titles and entity encoded html even before such practices were codified in the spec and long before all consumers could handle them no evolving format is ever perfectly in sync with the challenges it faces finally orgel s rule named for the evolutionary biologist leslie orgel NUMBER NUMBER evolution is cleverer than you are NUMBER as with the list of rss s obvious deficiencies above it is easy to point out what is wrong with any evolvable system at any point in its life no one seeing rss NUMBER NUMBER and rss NUMBER NUMBER side by side could doubt that rss NUMBER NUMBER had the superior technology that it NUMBER did things right NUMBER however the ability to understand what is missing at any given moment does not mean that one person or a small central group can design a better system in the long haul designed formats start out strong and improve logarithmically evolvable formats start out weak and improve exponentially rss NUMBER NUMBER is not the perfect syndication format just the best one that s also currently practical infrastructure built on evolvable formats will always be partially incomplete partially wrong and ultimately better designed than its competition NUMBER URL NUMBER URL 