Subject: Re: EROS license
From: Ian Lance Taylor <ian@airs.com>
Date: 26 Jun 1999 16:28:57 -0400

   From: Russell Nelson <nelson@crynwr.com>
   Date: Sat, 26 Jun 1999 15:30:50 -0400 (EDT)

   Ian Lance Taylor writes:
    > Another person made the same comment in private mail, so clearly I
    > should not have mentioned payment, as that is merely a side issue.

   I'll make the same point, then, without referring to payment.  You
   didn't address my suggestion of creating a "poison pill" contribution.

I guess I didn't think it was relevant.  Just to comment on it, I
think sending in a contribution which can not be used is merely
obnoxious.  It would be easier and more polite to just not bother to
send in the patch at all.

    > My true objection, as I stated later in the message, is not that I
    > am not getting paid; it is that somebody else has special
    > privileges to my work which I do not have. [...]  I don't mind
    > letting other people use my code, but I'm not comfortable if they
    > get to use it in ways that I can't.

   When someone writes a program, they own it.  They hold complete
   control over it.  If they choose to make that program freely copyable, 
   they are giving up many ways they could use that program.  You get to
   use it in ways they can't control.

True.

   Now you, the ingrate, are saying that you refuse to contribute because
   they can use it in some ways you can't.  Sure, I can see how you might
   feel that way, but our feelings are often irrational.  (Many people
   feel that a minimum wage is fair, but those people probably didn't
   become unhirable because their labor is no longer worth the minimum
   wage).

True.  (I believe the minimum wage issue is quite a bit more subtle
than that, but I don't see any need to get into it here.)

   I'm not trying to deny your feelings.  I'm pointing out that they're
   not rational.  You got a gift; the gift has no strings attached.  If
   you tell the creator how to improve the gift, the creator will
   incorporate them into further gifts.  Who is hurt if the creator
   sometimes sells the same thing he gives?

I'm going to respond in four ways.

First:

What difference does it make if my feelings aren't rational?

I'm presenting myself as an example of a class of software developers,
those who are uncomfortable with dual licenses.  I know I'm not the
only member of that class.  If many developers belong to that class,
and if the goal of the source license is to encourage contributions,
then it is best to avoid dual licensing.  If few developers belong to
that class, or if the goal of the license is not to encourage
contributions, then dual licensing is appropriate.

Whether it is rational for me to belong to that class is not terribly
relevant.  As you say, our feelings are often irrational.  The
interesting question is how large that class of developers is.  I
don't have an answer for that.  I don't know anybody who agrees with
me on every issue, and it's hard for me to speculate on how many agree
with me on this one.

Second:

If I, as a company, want to encourage people to contribute to my
software, I want to make them feel welcome and comfortable, and I want
to make them feel like part of the team.  The best way to make them
feel like part of a team is to make it seem like we are all pulling
together in the same boat.

When I explicitly reserve the right to gather up everybody's
contributions and use them in ways that nobody else can, it's pretty
clear that some of us are more equal than others.  The concept of the
team is lost.

Most people prefer to be part of a team, even in cases where it isn't
rational.  Therefore, I argue that a company which wants to encourage
contributions should foster team spirit, and I argue that a dual
license inhibits it.

Third:

A key privilege in any free software project is the ability to fork.
While a dual license need not prohibit a fork, it certainly gives it a
weird conceptual complexity, another cause for concern, albeit
arguably irrational.

Fourth:

Now that I've argued that whether or not my decision is rational is
irrelevant, let me present an argument to show that I'm actually
acting rationally.  (I'm not going to claim that every step in this
argument actually holds for me; I'm only going to claim that every
step could hold for a rational person.)

I believe that we should all be free to fix problems in our software,
which among other things means having the source code.  I believe that
people who withhold the source code from us are acting against the
best interests of society.

Therefore, I believe it is in my best interests, as a member of
society, to encourage people to always provide source code to
everybody.  In particular, I should use my abilities as a developer to
do so.  Therefore, it is in my best interests to only contribute to
projects which promise to always provide source code to everybody,
while simultaneously encouraging other projects to make that promise.

(This is parallel to the argument which says that I should only buy
from companies which use recycled and recyclable packaging materials,
or no packaging materials at all, as in fact I try to do.)


Finally, let me mention that the decision whether a company should
dual-license is basically an economic decision based on how other
people will act.  The belief that people make economic decisions
rationally is the fundamental flaw in most economic analyses.  People
do not make rational economic decisions, except under weird
definitions of rationality (ones which try to approximate the way that
people actually think, namely irrationally).  People only approach
rationality in the aggregate--even then they rarely achieve it--and
since we are talking about software developers here the pool of people
involved is not currently large enough to make economic aggregate
arguments.


   I view dual-licensing as critical to the success of many free software 
   businesses.

I think that businesses that rely on third party contributions would
be best advised to avoid dual licensing.

I guess we'll find out which of us is correct over time.

Of course, not all FSBs are the same.  For example, I think it was a
reasonable business decision for Cygnus to release eCos under a dual
license.  I don't think the goal of eCos is to encourage third party
contributions (although no doubt Cygnus will happily accept them); I
think the goal is to blow away royalty based RTOSes, such as those
sold by Cygnus's competitors, via an extreme form of price-dumping.
(I could be wrong about Cygnus's thinking here--I was never part of
the eCos project and have no special insight into the decisions that
were made.)

Ian