
Steve Yegge: Have you ever legalized marijuana? - dmytton
http://steve-yegge.blogspot.com/2009/04/have-you-ever-legalized-marijuana.html
======
EliAndrewC
One important difference between credit card buckets and marijuana
legalization is that the latter can be done in increments. With credit card
buckets, you'd have to produce a complete working system before it benefits a
single person. With marijuana legalization, you can make relatively minor
changes to the law with immediate benefits which don't have far-reaching
repercussions.

For example, the federal government can stop making raids on places that
provide medical marijuana to cancer patients. Eric Holder has already
announced this, and he's not even in favor of legalization. This has immediate
benefit without interfering overly much with the other systems mentioned.

Also, many (though not all) of the issues described are state issues rather
than federal ones. Whether you can smoke cigarettes in bars varies by
locality, and presumably this would be the same for marijuana.

Ultimately, many of these issues would be decided by the courts rather than
the legislature. We have a common law system that thrives on vague laws being
interpreted and refined by rulings on specific instances of conflicts between
different laws, principles, and common sense.

Obviously I'm hand-waving, and the essay is 100% correct about how difficult
this would all be. I've thought about some of these issues before, but others
were mentioned that had never occurred to me, and I don't have good answers
for many of them.

Still, we can legalize incrementally, let states and localities handle the
minutia, and allow the courts as always to hammer out a set of standards over
time. This legalization a lot more doable than the impossible-once-you-really-
think-about-it credit card buckets.

~~~
decode
I think it's a key insight that we can incrementally improve the law, but a
credit-card bucket system must be fully implemented before anyone uses it. We
can and do use this feature of the US legal system on a near daily basis to
make meaningful improvements over time.

However, I think this point is significant: "People will die. It's a
certainty. Some people are going to die as a direct consequence of
legalization of marijuana." It's okay to release a crappy messaging website
and iterate it into goodness, but it's irresponsible to do the same with
medical software. In the same way, when people's lives are at stake, we have a
responsibility to produce good laws from the start, so even if we don't get it
perfectly right immediately, all of the complicated details that Steve brings
up have to be thought through, or else there could be major negative
consequences during the stabilization period.

~~~
jamesbritt
'However, I think this point is significant: "People will die. It's a
certainty. Some people are going to die as a direct consequence of
legalization of marijuana." '

People are already dying as a result of current marijuana laws.

If your current medical software is buggy and causing deaths, you want the
replacement to be solid but you also can't wait until you are 100% sure. You
need to be sure enough that the consequences, bugs and all, are an
improvement.

------
jodrellblank
The recent post by Daniel Tanner on how to be relentlessly resourceful, and
Joel's long favoured essay on "smart and gets things done" seems fine when
resourceful means "smile and make a couple of phonecalls", but it fails
somewhere on the gradient up to where this post discusses changes at Amazon.
Steve Yegge seems both 'smart' and 'gets things done', yet he wrote this post
on how difficult changes can be, and how many they regularly turned away at
Amazon. I think the "smart and gets things done" meme is really saying don't
stop so soon.

Our laws grandfather in certain accepted behaviours which would be enormously
difficult to retro-fit. Can you imagine trying to get gas (petrol)-fuelled
vehicles going if they weren't allowed already? Driving tankers full of
explosive fuel on public roads to gas stations on every corner where it will
be kept in big tanks underground and pumped by untrained people into vehicles
easily up to 25 years old maintained on an ad-hoc basis...

Our systems and businesses behave in the same way, too. As a startup you can
get away with anything you can get away with. Had no backups for the first
year? Ha ha, that was lucky, eh? Ran on a friend's server for 6 months? Left
some customer details on a laptop that was stolen? Good thing you were small
enough that nobody picked up on it and it made no scandal and caused no
problems. Billing done mostly from one person's head? When you get bigger, you
can't do that. Which means just starting a project becomes many times harder.

I think we overlook this effect quite a lot on dicussions on HN, where big
companies are considered slow moving because they are inefficient and
bureaucratic, whereas really, a lot of said "bureaucracy" covers things we
want the companies we deal with to handle properly.

As Daniel's post said, as a consultant his task was to 'do the impossible'. I
suspect quite a bit of this comes from being able to drop enough "important"
"must have" requirements to be able to get moving again.

------
dkarl
Lawmaking is not programming. In case you haven't noticed, Congress can pass
vague, incomplete, and self-contradictory legislation, and it won't generate a
compiler error or crash the system. Steve Yegge underestimates four things:

1\. How vague, illogical, and incomplete most of our laws are.

2\. The capacity of lobbyists and congressional aides to generate thousands of
pages of detailed (though absurd, incomplete, and self-contradictory)
legislation.

3\. The capacity of lobbyists and regulators to generate thousands of pages of
regulations specifying how legislation should be interpreted in concrete
situations.

4\. How well this apparent clusterfuck actually works in practice.

Is it a problem of "vast, unimaginable complexity?" Sure. Can we commit to an
underspecified version of it and let the chips fall where they may? YES. It's
the only way we get anything done in the US, and probably the only way to get
anything done in _any_ democracy.

~~~
stcredzero
Actually, by law, no California law can unintentionally contradict another
California law. (You can repeal laws or parts of them, however.) They have an
entire state agency whose job it is to make sure that this never happens. I
have no idea how successful they are.

------
systemtrigger
On the credit card question, these already exist - they're called Corporate
Purchasing Cards. The reason credit card companies don't do buckets is, as
Steve alluded, the merchant data isn't granular enough and in order to place
restrictions on what cardholders can buy you have to know the bucket type of
every item that merchants sell. That's a huge problem which even the best
Corporate Card companies have trouble solving. American Express is #1 in terms
of data but the cardholder often still needs to explain which bucket the
purchase goes into. (One reason you need a special POS cardreader for Amex is
to inform the Purchasing Card transactions which bucket to use.)

------
lucumo
Just some information about the legality of marijuana in The Netherlands. I
know very little about this, but the knowledge I have by virtue of living
there and the discussions that are going on about it is probably more than
that of some other people here.

Basically, Steve is right: shit's not easy.

Also, it's not legal here. What actually happens is that the laws regarding
possessing pot aren't enforced when you have less than a few grams. You can
smoke it on the streets and in your home. It may offend or annoy some people
when you do it on the streets, but it's generally accepted. I'm not sure what
would happen if you "walk into a restaurant, roll a joint and start puffin'
away", I've never seen it happen, but I suppose you would be asked to put it
out. (Like you would be if you were smoking tobacco.)

There are shops - we call them "coffee shops", an interesting story of
euphemisms - where you can buy some pot. Not too much. And you have to show
some ID and be older than 18 years. (Beer and wine, by comparison, can be
legally bought at age 16. Spirits are also available from age 18.) These shops
are checked quite well and will be closed when there's even a minor thing
"off".

Now, here comes the interesting part. They're allowed to buy and sell, but
there's no one that can legally sell to them. It's illegal to import the stuff
and it's illegal to grow more than a few plants. There are crackdowns on pot
growers. It's an interesting case of double-think that leads to some minor
discussions.

A big issue is international pressure, mostly from Belgium. Border
municipalities on our side of the border do have pot bars and drug tourism
happens. This actually attracts a lot of criminals on both sides of the
border. In Belgium people going to The Netherlands are stopped by drug
"salesmen" looking to make a sale.

These border municipalities also have a lot of hindrance from the drug
tourists who generally cause a lot of disturbances of the peace.

International treaties (ranked above the constitution in the hierarchy of law
here) prohibit most of the inconsistencies to be solved and gives other
countries a bit of a bat to hit us with. The whole issue is pretty fragile
here. The current largest party is slowly moving it's position to oppose the
current policy of "tolerating" soft drugs. At present, it's unlikely that
they'll get a majority in parliament. I don't think it will become illegal
again anytime soon, but there will probably be additional restrictions on the
use and sale of marijuana. As for the long-term future, I don't know what it
will bring. Currently the country is getting more conservative every day, but
there's also a bit of a backlash growing.

So, yeah, Shit's NOT Easy.

~~~
derefr
> It's illegal to import the stuff and it's illegal to grow more than a few
> plants.

Say that a thousand people each grew one plant, and then sold them all to a
single person, serially, so that that person only owned one at a time, but was
constantly "in stock" when anyone else wanted to buy from him. It sounds like
that particular situation would be perfectly legal.

~~~
jerf
It's important to remember that legal systems have humans in them, too. It's
one thing to read a law, spot a loophole, and exploit it relative to what a
hypothetical law computer[1] would say the law is. It's another to see a
loophole, exploit it, and _convince a human_ that what you did is not covered
by the law.

Yeah, sometimes it happens, but I think we hear about it when it does because
it's _news_. Much more likely, somebody's going to jail anyhow with your
scheme. Judges are not stupid, in general.

1: You know, this guy: <http://futurama.wikia.com/wiki/Computer_Judge>

------
jdminhbg
Steve has a giant Obama button at the top right of his site. One of Obama's
core platform issues is universal health coverage in the United States.

Which do you think is easier: Ceasing to incarcerate marijuana users, or
running a giant new universal entitlement? This post reads less like a serious
inquiry into the complications of legalization and more like an apology for
the administration's maintenance of the status quo.

~~~
ewjordan
Difficulty must be weighed against importance - far more people care deeply
about universal health coverage than legalization of marijuana, so the same
amount of effort provides a far greater return in the former case.

~~~
mattmcknight
Do you mean a far greater return in terms of votes? ("far more people care
deeply...") I care fairly deeply about UHC, but mostly that they put some
sensible cost ceilings on it.

------
trjordan
Shit's hard, sure, but that's why we have a full-time government and all their
associated aides to do it.

Complexity is not something that should be carte blanche ignored, but it also
should not be the determining factor for any major decision. Prohibition,
repealing prohibition, abolishing slavery, women's suffrage, and desegregating
schools were also hard, but that wasn't a reason for not doing it. In the
software world, search engines, networking protocols, transaction programming,
and email were also much more complicated than their simple descriptions
imply, but that doesn't mean they didn't get done.

My point is this: everything has a cost, but that doesn't mean it's not worth
that cost. The reason VPs and others think at that level of abstraction is so
they can clearly see the benefits without having to immediately balance it
against the cost. If they can sell these benefits to the implementers, stuff
gets done. If not, it doesn't. They're not living in a dream world where
anything is possible; they're doing the "benefit" part of a cost/benefit
analysis, because benefits are not always as tangible as the costs.

Complexity is just another cost to be considered, and it can be overcome with
hard work.

------
lionheart
How about this idea, for a start?

Legalize possession.

Then create a single government-owned company that will be the only entity
legally allowed to sell marijuana.

That way everything stays under control. It solves the quality issues, and all
of the current sellers and distributors of marijuana are still illegal so the
DEA can keep doing what they were doing.

It seems to me like this option would require very minimal legal changes.

Afterwards, if it is successful, we can slowly expand. Have the government
slowly issues licenses to sell marijuana to some of the larger pharmaceutical
companies, slowly legalize some advertising of the product, etc.

You don't need to completely legalize it and make it a free-for-all on the
first day.

~~~
jdminhbg
> Then create a single government-owned company that will be the only entity
> legally allowed to sell marijuana.

Just in case you've never been to Pennsylvania, we still have to buy wine and
liquor from the single government-owned entity legally allowed to sell them
that was set up at the end of (alcohol) Prohibition. These monsters have a
habit of taking on lives of their own.

~~~
rsheridan6
I don't think the government will see that as a problem. The point is to end
the drug trade, not provide the best weed at the best price to the most
people.

------
geebee
Definitely another entertaining rant, both about the difficulty of legalizing
marijuana and the dangers of equating obvious with easy.

My big problem with his rant about the difficulty of legalization is that
people are suffering badly, right now, and you have to weigh that against the
challenges of "the project".

There's "stop the bleeding" and "cure the disease." Sometimes, you can't wait
for a full plan on the cure. In my opinion, denying cancer patients a drug
reduces pain and improves appetite counts as bleeding. At some point, you have
to deal with the consequences later.

Which we do - California's medical marijuana facilities have been raided by
federal police, product was seized, product was returned, appeals were filed,
etc...

Sure, I suppose this would have gone more smoothly if we'd denied cancer
patients 10 years of relief so a profoundly inept and corrupt bureaucracy
could catch up with morality.

------
TravisLS
If states can do it, so can the nation. Yeah it's HARD, but it's not that
hard. Practically every piece of legislation is this much of a hassle. So call
me a VP.

------
anthonyrubin
<http://www.salon.com/opinion/greenwald/2009/03/14/portugal/>

<http://www.cato.org/pub_display.php?pub_id=10080>

------
dschobel
That's why the legislative process is amendable. You don't have to get it all
right the first time through, just mostly right.

A lot more complex legislation than legalization of marijuana passes on a
regular basis.

I'm glad more people don't think like Yegge, they'd be too paralyzed by fear
to ever get _anything_ done.

------
JabavuAdams
This kind of specification and scenario-planning sounds like a job for a pro-
legalization think-tank.

Be like the lobbyists. Write the legislation you want, with options and
choices, then present law-makers with a menu. Basically, do their work for
them, then get them to rubber-stamp it.

~~~
andreyf
A pro-legalization think-tank, like the Cato institute?

<http://www.cato.org/pub_display.php?pub_id=10080>

------
david927
Not Steve's best. I love the guy, but this wasn't well thought out.

1\. Everything is complex, some things more than others, but you can't not
start a change because it's complex.

2\. This change MUST happen. Period. We have to free up the criminal justice
system from the silliness and waste. It costs taxpayers billions and only
results in destroyed lives. This (legalization or simply decriminalization)
has to happen, and it has to happen now.

3\. Other countries have successfully implemented this. We can use them as a
template. I live in the Czech Republic and it's a combination of
legalized/decriminalized here. It works great. Find out what they do and copy
it.

I've never tried marijuana and have no intention to, but watching all the
lives and resources wasted on a non-problem sickens me.

------
alecco
His part of the payment buckets has a clear definition problem. He is making a
_hard_ system instead of a _soft_ system. A soft system solution could be on
the customer side, perhaps some JavaScript add-on warning on bucket watermark
levels.

    
    
      I have more respect for The Average Reddit Commenter than I have for, well, the average
      commenter in any other forum, period, assuming that "period" is stevey-legalese
      for "except for LTU, news.ycombinator and their ilk, mumble mumble."
    

Lately, it getting more and more like that :-/

~~~
jodrellblank
But you can already do it yourself customer side - keep track of what you
spend per category, either in a text file, spreadsheet or dedicated budgeting
program (Quicken, MS Money, etc).

~~~
alecco
Of course, but it is a PITA and a small minority does it. Still, my point is
the complexity problem he addresses in that example is due to the monolithic
nature of the solutions he envisioned.

~~~
ph0rque
Mint.com reduces the PITA level by 99% (for me, at least).

~~~
alecco
The security and privacy trade-off is way too much for me.

~~~
jrockway
Presumably anyone could just go through your trash and get as much information
about you as mint.com has.

~~~
raintrees
It would seem to me that forcing said person(s) to relocate geographically to
carry out that work would cut down a large percentage of the actual exploits.
Not an all or nothing result, but largely beneficial, nonetheless.

------
tokenadult
"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 --
English."

A very important point. This is why writing a new law to regulate behavior on
some controversial issue doesn't do the whole job of resolving the issue.

~~~
dschobel
Well you could start by undoing the existing laws. Say, just repeal the
federal laws and defer to the states. See how that goes for a while.

Rather than creating some grand new plan, how about just undoing the broken
old thing for a start.

~~~
koningrobot
I agree with this wholeheartedly. The credit bucket thing is something that
needs to be _done_. The legalization thing is something that needs to be
_undone_. Shit may not be easy, but tearing shit down is a lot easier than
building shit up.

Then, after tearing shit down, you can build up the corners of life where it
makes sense to regulate marijuana, such as on the job, in traffic, et cetera.

------
sketerpot
Part of what the courts and congresses are for is to handle the lazy
evaluation of questions like these. We don't have to figure all this stuff out
up front; most of it can keep for a while, so we can figure out what's
actually a problem and what isn't, and base the policies on empirical data
rather than speculation.

------
d0mine
On the credit card question, banks could just provide some sort of
standardized (e.g., RESTful) API to read credit card history. That's all.

The rest of bucketing functionality could be provided by iPhone apps, web-
services, etc.

disclaimer: I know nothing about credit card processing.

~~~
silentbicycle
There are _huge_ privacy implications to that sort of thing, and very likely
several laws or risks of serious liability that make it a thoroughly
unappetizing business plan.

~~~
elai
Why oh why can't banks just make an api version of their banking websites?
SSL, login, password, server, voila!

------
azgolfer
What everyone seems to forget is that drugs WERE basically legal prior to
1914. We had lots of laudanum addicts,Seems that there should be plenty of
evidence on how workable legal drugs are from that period.

------
wastedbrains
How is it more complicated than ending prohibition?

I agree with all the comments on things being done iteratively and slowly
makes sense as well.

------
blahblahblah
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
I 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.

------
JesseAldridge
So make a crappy version 1 and then iterate.

------
dkarl
Have you ever legalized marijuanua... _on weeeeed?_

