4 ms·
The way I see it, the flaw with the argument here is that Steve is assuming that writing law is like writing working production code in a modern imperative or o
by blahblahblah 18y ago
The way I see it, the flaw with the argument here is that Steve is assuming that writing law is like writing working production code in a modern imperative or object-oriented language. It isn't. If the law is like code, it's fundamentally different from most computer code you've ever seen before. The closest analogue in the domain of programming languages would perhaps be Prolog and even that is stretching the analogy beyond the breaking point.
The legislature doesn't write complete code or even a complete specification of anything. They just write top level stubs and the stubs are executable because the "programming language" for the law supports intelligent code generation agents (government agencies), an agent-based pattern recognition engine (law enforcement), and an intelligent agent-based JIT conflict resolution engine (the courts) to evaluate the performance of the pattern recognition engine and throw exceptions as needed. The law enforcement part of the system is the only part that even remotely resembles the sort of deterministic computation that we're used to (i.e. if your behavior fits the pattern for an illegal act, the police will probably follow the rule and arrest you).
If the law were code, a legalization law for marijuana would look something like the following:
pattern_rule_class(a : person, b : marijuana)
def_rule_maker(USDOT; {a.transport(b), a.operate(c : motor_vehicle) && a.consume(b)})
def_rule_maker(USDA; {a.advertise(b), a.produce(b)})
def_rule_maker(ATF; {a.sell(b, c : person), a.consume(b, c : location)}
def_rule_enforcer(FBI; {a.transport(b, c : jurisdiction::interstate), a.sell(b, c : jurisdiction::interstate)})
def_rule_enforcer(select_agent using state_ruleset; {a.transport(b, c : jurisdiction::intrastate), a.sell(b, c : jurisdiction::intrastate})
def_rule_resolver(judiciary)
ifndef ruleset by_date '1/1/2010'
use default_ruleset
define default_ruleset
(a : person, b : marijuana) : {
a.consume(b)->legal where location(a)==home(a),
a.produce(b)->legal where quantity(b) <= unit_plants(PLANT_LIMIT),
a.possess(b)->legal where quantity(b) <= unit_mass_ounces(POSSESSION_LIMIT),
a.sell(b)->illegal,
a.operate(c : motor_vehicle) && a.consume(b)->illegal,
a.transport(b, c : jurisdiction::intrastate)->illegal,
else _default->illegal
}
define default_penalty_ruleset
.... etc., etc., etc. and so on
- blahblahblah 18y agoI kind of lost my train of thought writing pseudo-code and failed to emphasize the key point. The law does not require a complete specification of all implementation details in order to develop working "production code". The law is a system that supports incremental refinement on-the-fly. The legislature need only designate the appropriate rule-making agents, define the scope of their rule-making authority, designate an implementation timeframe, and define only a very limited incremental change of the status quo rules to be applied if the designated rule-making authorities should fail to generate a complete set of rules to implement the law within the designated timeframe.