Some comments on software and law (was: Humanity and Criminalization)
Mon, 28 May 2001 19:20:49 -0500
Lisa Dusseault writes:
> But we don't actually try to write software anywhere
> near as complex as our laws ..
What is the law, but software to be executed by human
processes? And like a lot of large software systems, it
was created by different groups, working at different
times. You're right, of course, that it is larger and more
complex than any software system. And like Jeff, I
think it would benefit from simplification and refactoring.
Better partitioning might also help. People tend to view
the entirety of law and say "How can *anyone* be
expected to know this?" I suspect, though, that most
parts of it are irrelevant to most people. Unless you
operate a boat, you never bother to learn COLREGS,
nor anything about admiralty law. These portions of law
operate much like an importable module, whose existence
is irrelevant -- and maybe unknown -- to most people,
much as most Python programmers never learn about the
Python module that manipulates audio data.
One candidate for further decomposition is to require
each law to separately explain what needs to be known
by the different parties involved. For example, we all
know that we're not supposed to commit murder.
But few people except criminal lawyers will understand
the different degrees of murder, the elements of each,
punishments provided for these, and any special
probative rules for this crime. I suspect the law on
murder consumes quite a few pages in the law books,
most of which is completely irrelevant to the ordinary
person. So why not require laws to be written with this
decomposition in mind? In essence, this requires
parallel law books: "what people must know to obey
the law," "what police must know to investigate crimes
and arrest criminals," "what judges and lawyers must
know to prosecute, defend, and judge cases." Of
course, the first volume should be slim, and it should
trump in any conflict.