Law Isn’t Code

So, Steve Yegge. Steve’s got an interesting post up, made no less interesting by the fact that its thinking is not only wrong-headed, but creepy and dangerous. Briefly – and I don’t think that I’m begin unfair here – Steve advances the analogy that law is to society as a program is to a process. Steve draws certain conclusions from this analogy, which I want to discuss tomorrow, but today I want to focus on a simple proposition: Law isn’t code.

The Role of Programs

When it comes to understanding the purpose of programs, I think we can do no better than turning to SICP, which describes them (by analogy!) thusly:

We are about to study the idea of a computational process. Computational processes are abstract beings that inhabit computers. As they evolve, processes manipulate other abstract things called data. The evolution of a process is directed by a pattern of rules called a program. People create programs to direct processes. In effect, we conjure the spirits of the computer with our spells.

A computational process is indeed much like a sorcerer’s idea of a spirit. It cannot be seen or touched. It is not composed of matter at all. However, it is very real. It can perform intellectual work. It can answer questions. It can affect the world by disbursing money at a bank or by controlling a robot arm in a factory. The programs we use to conjure processes are like a sorcerer’s spells. They are carefully composed from symbolic expressions in arcane and esoteric programming languages that prescribe the tasks we want our processes to perform.

Ok, a few things to note:

  • Processes have purposes; they are created to accomplish certain tasks
  • Programs exist to direct processes; they are judged by whether or not the processes they govern accomplish their tasks
  • Neither processes, programs, nor their constituent elements have any intrinsic value

None of these things is true of law and society. (This is a normative statement; I’ll defend it below.) These differences make Steve’s analogy a poor one.

(By the way – if you haven’t read SICP, go read it now. Or, hell, read it again. It’ll serve you better than reading me writing about Steve Yegge writing about why we should all give Obama more time.)

Means vs. Ends

Now it’s time to bring up Immanuel Kant. All discussions of the proper relationship between the individual, society, government, and so forth are always and everywhere based on judgment calls, and therefore subject to endless debate, so it’s helpful to invoke a Big Name associated with some pretty widely-accepted idea(l)s when discussing them. The idea(l) that’s relevant here is that men should be viewed as ends in themselves, and that it is evil to treat them as means to some other end.

It follows from this that the constituent elements of society (i.e. people) are not serving some larger purpose. They are not judged by their society’s GDP, or the number of scientific papers it publishes, or the number of plays that it produces. Society exists to serve people, not some other purpose to which it is directed by its masters. Law, in turn, exists to serve society, not to rule it.

Emergent Behaviour

In fact, law is only one of many mechanisms society has evolved to regulate itself. Custom, religion, honor, shame, habit, and family bonds are all at least equally important, and all of these pre-date law. This means that law need not address every question; it is perfectly fine for the law to remain silent on some matters, which the other mechanisms of society will cope with in their own way.

The permissible silence of law is a significant difference between it and a program. A program must give some answer to every question that might be raised during the execution of a process, on both a metaphysical level (a computational process cannot proceed unless its program gives some answer on what to do next; when the answer is gibberish, the process crashes) and a practical level (if a process isn’t doing what you want, it’s probably doing the wrong thing; it only exists to do what you want, after all). Law is entirely optional; if it provides no guidance on what to do in a situation, people can muddle through on their own.

Law Isn’t Code

Steve writes:

Because laws are pretty much like programs. You have to specify their behavior at almost (not quite, but almost) the same level of detail, using a language that’s almost as crappy as our programming languages today

To sum up my point so far: On the contrary, laws aren’t pretty much like programs. They don’t control society in the same way a program controls a process; they are only one of many mechanisms society has evolved to regulate itself. They aren’t essential to society in either the metaphysical or practical way that a program is essential to a process. They do not define the purpose of society (which has no goal) as a program defines the purpose of a process.

Laws and programs have certain superficial similarities, but profound and significant differences. The biggest one is that you can eliminate (or simplify) huge chunks of law, and society will get along just fine. The upshot of this is that you don’t need to make changes to the law with anything like the care required to make changes to a computer program; if a law is demonstrably stupid, it’s perfectly ok to just change it, and deal with the consequences of the change over time. Society won’t crash.

Tomorrow, we’ll revisit this latter point, with exciting historical examples.

Share and Enjoy:
  • Twitter
  • Facebook
  • Digg
  • Reddit
  • HackerNews
  • del.icio.us
  • Google Bookmarks
  • Slashdot
This entry was posted in Jack Handy. Bookmark the permalink.

Comments are closed.