Just read an interesting article: Refactoring the Law: Reformulating Legal Ontologies, by Garret Wilson, which was quite interesting. Wilson, presumably a nerd turned lawyer or vice versa, makes the case that the understanding and practice of law have been evolving in that style of punctuated equilibrium that those of us in software development call “refactoring.” That is the law too, creates categories, accretes case law onto those categories until the number of special cases and exceptions overwhelm things at which time the pile gets turned again and we have a new way of thinking about law. He leads off with an example of how in the 1850’s courts had developed case law around liability and what was considered to be “inherently dangerous” items. By the turn of hte 1900’s the court had categorized as “dangerous in themselves” a loaded gun, mislabeled poison, defective hair wash and “not dangerous” as a defective carriage or a defective boiler. In MacPherson v. Buick the court finally had to decide whether a horseless carriage was morelike a locomotive (dangerous) or carraige (not dangerous) and the whole categorization scheme got reshuffled. He goes on in a wide ranging set of analogies tracing back to the greek and roman models of law and forming parallels with procedural, object oriented and agile software development methodologies. Fun read and educational.