This is a favorite topic of mine. To a large extent, all organizations are information processing systems, and hence an object of study in computer science.
Writing laws is hard in the same way as writing AI for complex sandbox games such as Civilization. On the other hand, laws are small and simple, when compared to any nontrivial piece of software. Additionally, even the strictest and most pedantic person interpreting a law is likely to apply a great deal of common sense, so there no need to handle every borderline case and detail beforehand.
Good law schools already teach logic, probability and game theory. Hence convincing the people writing and evaluating the laws to take a look at what they can learn from computer science should be entirely possible.
On the other hand, people generally judge politicians by their intents instead of results, and for a good reason. Elections are held so often that there is rarely time to evaluate how a new law changed the society. And when the evaluation is finally done, it is rarely possible to say with confidence what caused a particular change in the society. Even more so, if the issue is at all controversial.
Joansays:
Hi,
I think that you are simplifying the problem too much when comparing software programming and government: Software runs on deterministic machines, laws don’t. Or even better, software tipically runs for a couple of architectures, while laws have to “run” on millions of architectures (each human being), and the worst part is that we don’t know the specifications of the architectures. So, making good laws is much more difficult than writing software, unless you don’t care about getting your head cut off.
Personally, I’m more a pro-government guy (well, I don’t assume that regulations are bad or innefficient by default, at least no more than assuming that corporations are evil) but I agree with the core of all your proposals above. What I don’t like and can’t understand is that extreme simplification of the problem to support your beliefs. All the reasonament is basically a fallacy.
Keep posting, though I have to say that I preferred you CS posts 🙂
Rod Carvalhosays:
I wonder if a few decades from now we will have formal verification of legal documents. Does this new regulation contain any loopholes? This is a decision problem. Is there a decision procedure? If so, let the computer decide.
This is wildly optimistic, of course. Nonetheless, legal expert systems is not a new field.
As a slightly random side project, I started working on an idea a colleague had about putting state bills into a git repository, grabbing them from each stage. The advantage being that you’ve then got a clear indicator of changes that go along in the form of diffs.
It been an interesting little exercise but lack of fine detail from state makes it hard.
I’ll give you just one example. The war on drugs. What is the intent? To reduce the harm from dangerous drugs. What is the effect? Drugs are widely available, and lots of people end up in jail or otherwise harmed by criminality.
Instead of just accepting the intent of the laws as reason enough, shouldn’t we be pragmatic and verify whether the laws do what they mean to do?
Instead of judging intent, shouldn’t we measure effect?
That is what software programmers do. Nobody cares what your software is meant to do. People want to do what the software actual does.
I would argue that if your software runs on heterogeneous and unreliable hardware, it becomes more important, not less, to test, validate, patch, report bugs, and so on.
Do not worry, I will go back to harder Computer Science later.
Darf Ferrarasays:
Just to let you know, I’m a libertarian, and I consider you a libertarian. You might also be a pragmatist, but you are a libertarian.
I agree that the current regulation in most of the countries about drugs seems very few effective. In fact, I personally think that fighting against drugs is a waste of time. But that does not mean that they should be regulated, the same way medecines are regulated (any kind of consumer wants to know that whatever he or she is consuming has good quality).
And, absolutely: we should evaluate laws more often, test, debug and patch them. But that does not mean that the solution is to remove the regulation, because that does not solve the problem either. I think that new technologies can help here to bring new tools to citizens to be more participative on this process of debugging/creating regulations.
Finally, one big problem is that regulations sometimes have to be applied and watched by people who is against them, that also affects the effectiveness of the regulation, that you were mentioning (for instance: it is pretty usual, that when a Government changes, the new one un-does most of the changes of the previous one. And that is not productive at all).
Darf Ferrarasays:
I only wished to point out that not all libertarians consider you a socialist, and I would guess that the ones that do are the type who would consider anyone that doesn’t tow the line on every issue to be a socialist. I would put you in a similar category as Tyler Cowen and Scott Sumner as a pragmatic libertarian. As a libertarian I don’t require you to label yourself as such 🙂
With regard to your link, I agree that innovation is the key to growth. In fact Diedre McCloskey has written a few books about that, and she is about as libertarian as they come. If you have the time I’d recommend reading some of her recent books. Of course, I wouldn’t want you to reduce your frequency of posts on programming or mind hacks, or …
An interesting analysis. What I find even more difficult is the way laws get layered on top of one another. So, we have federal laws, state laws, city laws; and they do not always say the same thing. At the same time; the sheer number of laws means that with a high probability, we might be violating some law without knowing about it.
John Stossel had an interesting programme on Fox News where he discussed how laws can suddenly make ordinary folks “felons”.
Laws are like software: they are a set of rules that we must follow. The federal structure is somewhat like inheritance; and can often be buggy.
I so wish we had a compiler for laws. At least that would check the first set of errors! 🙂
Jean-Lou Dupontsays:
I think a basic system engineering notion could help somewhat: negative feedback loops are essential to the stability of any system.
What should be the first negative feedback loop in government? Accountability i.e. be accountable$ for your actions.
As my thesis advisor just pointed out, there exists a related work, that is in progress on this matter in UOttawa by Dr Luigi Logrippo published in 2009, you should definitely check it out: http://www.site.uottawa.ca/~luigi/papers/LegalLogicBlog.htm
I have no idea if it is actually feasible, but I like the idea of laws with expiration dates. The work of Congress would shift from passing new legislation to evaluating older legislation and determining if it is worth renewing. Now a bad law can be passed and exist indefinitely. It may be more likely to get rid of it, if it had to go up for debate and vote every X number of years.
Mehmet Suzensays:
Nice post indeed. Software development analogy to developing regulations are quite interesting. From Austrian school, that markets’ are self-regulatory might not be that bad after all i.e. your Linux Kernel development analogy – ok Trovalds is regulating there – but still. The problem on self-regulation is not that Markets are able to regulate themselves (for finance), but there is an fundamental issue on the assumption that our actions do not affect the entire system. Which I think is wrong.
Mehmet Suzensays:
@Joan: “Software runs on deterministic machines, laws don’t. ”
This is not entirely true. Machines do not write software by-themselves, humans does. So developing large complex software with many contributors is like writing a law/bill.
This is a favorite topic of mine. To a large extent, all organizations are information processing systems, and hence an object of study in computer science.
Writing laws is hard in the same way as writing AI for complex sandbox games such as Civilization. On the other hand, laws are small and simple, when compared to any nontrivial piece of software. Additionally, even the strictest and most pedantic person interpreting a law is likely to apply a great deal of common sense, so there no need to handle every borderline case and detail beforehand.
Good law schools already teach logic, probability and game theory. Hence convincing the people writing and evaluating the laws to take a look at what they can learn from computer science should be entirely possible.
On the other hand, people generally judge politicians by their intents instead of results, and for a good reason. Elections are held so often that there is rarely time to evaluate how a new law changed the society. And when the evaluation is finally done, it is rarely possible to say with confidence what caused a particular change in the society. Even more so, if the issue is at all controversial.
Hi,
I think that you are simplifying the problem too much when comparing software programming and government: Software runs on deterministic machines, laws don’t. Or even better, software tipically runs for a couple of architectures, while laws have to “run” on millions of architectures (each human being), and the worst part is that we don’t know the specifications of the architectures. So, making good laws is much more difficult than writing software, unless you don’t care about getting your head cut off.
Personally, I’m more a pro-government guy (well, I don’t assume that regulations are bad or innefficient by default, at least no more than assuming that corporations are evil) but I agree with the core of all your proposals above. What I don’t like and can’t understand is that extreme simplification of the problem to support your beliefs. All the reasonament is basically a fallacy.
Keep posting, though I have to say that I preferred you CS posts 🙂
I wonder if a few decades from now we will have formal verification of legal documents. Does this new regulation contain any loopholes? This is a decision problem. Is there a decision procedure? If so, let the computer decide.
This is wildly optimistic, of course. Nonetheless, legal expert systems is not a new field.
Related: Michael Littman (well known in the machine learning community) found a bug in the US Constitution:
http://www.cs.rutgers.edu/~mlittman/topics/bug.txt
As a slightly random side project, I started working on an idea a colleague had about putting state bills into a git repository, grabbing them from each stage. The advantage being that you’ve then got a clear indicator of changes that go along in the form of diffs.
It been an interesting little exercise but lack of fine detail from state makes it hard.
@Joan
I’ll give you just one example. The war on drugs. What is the intent? To reduce the harm from dangerous drugs. What is the effect? Drugs are widely available, and lots of people end up in jail or otherwise harmed by criminality.
Instead of just accepting the intent of the laws as reason enough, shouldn’t we be pragmatic and verify whether the laws do what they mean to do?
Instead of judging intent, shouldn’t we measure effect?
That is what software programmers do. Nobody cares what your software is meant to do. People want to do what the software actual does.
I would argue that if your software runs on heterogeneous and unreliable hardware, it becomes more important, not less, to test, validate, patch, report bugs, and so on.
Do not worry, I will go back to harder Computer Science later.
Just to let you know, I’m a libertarian, and I consider you a libertarian. You might also be a pragmatist, but you are a libertarian.
@Darf Ferrara
I discuss some of my concerns with capitalism elsewhere: Why is the free market letting us down?.
@Daniel Lemire
I agree that the current regulation in most of the countries about drugs seems very few effective. In fact, I personally think that fighting against drugs is a waste of time. But that does not mean that they should be regulated, the same way medecines are regulated (any kind of consumer wants to know that whatever he or she is consuming has good quality).
And, absolutely: we should evaluate laws more often, test, debug and patch them. But that does not mean that the solution is to remove the regulation, because that does not solve the problem either. I think that new technologies can help here to bring new tools to citizens to be more participative on this process of debugging/creating regulations.
Finally, one big problem is that regulations sometimes have to be applied and watched by people who is against them, that also affects the effectiveness of the regulation, that you were mentioning (for instance: it is pretty usual, that when a Government changes, the new one un-does most of the changes of the previous one. And that is not productive at all).
I only wished to point out that not all libertarians consider you a socialist, and I would guess that the ones that do are the type who would consider anyone that doesn’t tow the line on every issue to be a socialist. I would put you in a similar category as Tyler Cowen and Scott Sumner as a pragmatic libertarian. As a libertarian I don’t require you to label yourself as such 🙂
With regard to your link, I agree that innovation is the key to growth. In fact Diedre McCloskey has written a few books about that, and she is about as libertarian as they come. If you have the time I’d recommend reading some of her recent books. Of course, I wouldn’t want you to reduce your frequency of posts on programming or mind hacks, or …
@Joan
But that does not mean that the solution is to remove the regulation (…)
If a regulation does not make us better off, then we should remove it at once as it might have undesirable side-effects.
one big problem is that regulations sometimes have to be applied and watched by people who are against them
If a regulation is demonstrably beneficial, then it is much less likely that the regulators can get away without enforcing it.
An interesting analysis. What I find even more difficult is the way laws get layered on top of one another. So, we have federal laws, state laws, city laws; and they do not always say the same thing. At the same time; the sheer number of laws means that with a high probability, we might be violating some law without knowing about it.
John Stossel had an interesting programme on Fox News where he discussed how laws can suddenly make ordinary folks “felons”.
Laws are like software: they are a set of rules that we must follow. The federal structure is somewhat like inheritance; and can often be buggy.
I so wish we had a compiler for laws. At least that would check the first set of errors! 🙂
I think a basic system engineering notion could help somewhat: negative feedback loops are essential to the stability of any system.
What should be the first negative feedback loop in government? Accountability i.e. be accountable$ for your actions.
One doesn’t need to go very far to understand that this notion is sidestepped regularly: http://en.wikipedia.org/wiki/Inside_Job_(film)
As my thesis advisor just pointed out, there exists a related work, that is in progress on this matter in UOttawa by Dr Luigi Logrippo published in 2009, you should definitely check it out:
http://www.site.uottawa.ca/~luigi/papers/LegalLogicBlog.htm
I have no idea if it is actually feasible, but I like the idea of laws with expiration dates. The work of Congress would shift from passing new legislation to evaluating older legislation and determining if it is worth renewing. Now a bad law can be passed and exist indefinitely. It may be more likely to get rid of it, if it had to go up for debate and vote every X number of years.
Nice post indeed. Software development analogy to developing regulations are quite interesting. From Austrian school, that markets’ are self-regulatory might not be that bad after all i.e. your Linux Kernel development analogy – ok Trovalds is regulating there – but still. The problem on self-regulation is not that Markets are able to regulate themselves (for finance), but there is an fundamental issue on the assumption that our actions do not affect the entire system. Which I think is wrong.
@Joan: “Software runs on deterministic machines, laws don’t. ”
This is not entirely true. Machines do not write software by-themselves, humans does. So developing large complex software with many contributors is like writing a law/bill.