Subject: The GPL and the Hacker's Ethics

From: Shlomi Fish <[email-masked]>
Date: Thu, 12 May 2005 15:59:49 +0300

This is continuation of the previous thread raised by Elad, which detoriated 
into a discussion of Israel's Constitutional Racism and then Nazis. I do not 
respond to Elad's previous reply to my reply, because it was full of evasions 
and non-sequitors and other improperly written arguments.

As Eric S. Raymond notes in "How to become a Hacker", a hacker sees the world 
as filled with fascinating problems that needs to be solved, and believes 
that no problems should ever be faced twice. They furthermore like the 
freedom to work on these problems, and detest anyone that tries to limit 
their freedom.

Working on free software is one way to do that. There are several types of 
licenses that one can choose:

1. Public-Domain licenes. These include the MIT X11 license, the various 
variation of BSD license, software distributed under the Public Domain (like 
SQLite or one implementation of LISP), etc.

2. Recursive licenses. These are licenses that must retain their original 
copyright. The prime example of this is the LGPL. On the other hand, they 
make no claim for code that links against it or makes use of it in any way.

Another example is the Mozilla Public License.

3. Recursive and "viral" licenses. Licenses like the GPL, the SleepyCat 
license etc. must remain free, and also pose some restrictions on their use 
within other programs.

The choice of the license should depend on what the software is supposed to 
do, and the intensions of the hacker.

My argument in favour of choosing a non-Public Domain license for one's 
software, is that if someone makes a proprietary software based on a software 
I wrote, then if I wish this software to be free then I have to re-implement 
the proprietary functionality, thus causing the violation of the rule that 
says that no problem has to be solved twice.

On the other hand, many times proprietary software that can be written on the 
basis of free software, is not something that is of my interest to write a 
free equivalent. A good example is many pieces of niche software, that is 
written for niche markets that are not distributed in such volumes or are not 
of general use to warrant making them free. In that case, writing software 
that is under the LGPL or a BSD-style license would be preferable. 

As for me, so far I distributed the software I originated with under Public 
Domain licenses. (Pure PD or MIT X11). Freecell Solver is such a case, and so 
far it has been integrated into one shareware app and two open-source ones, 
which I'm very proud of. It's also been used by another distributor or 
service provider, possibly without acknowledging me. Someone reported that to 
me as a copyright violation, and I said that they have every right to do so, 
and that I don't mind. (I still don't). If Freecell Solver were GPL, it would 
not have had half the popularity that it did.

I naturally have contributed to GPLed software, and actively use it. Even the 
BSDs are using gcc and other GPLed or LGPLed software. (Some proprietary UNIX 
vendors use gcc or other GPLed/LGPLed software as well, naturally).

One think positive that happened with BSD-style software is that it has been 
integrated into proprietary software. For example, the FreeBSD TCP/IP stack 
was incorporated into Microsoft Windows, and so enabled many people to 
download and install Linux, whose TCP/IP stack is GPLed.

Regards,

	Shlomi Fish

---------------------------------------------------------------------
Shlomi Fish      [email-masked]
Homepage:        http://www.shlomifish.org/

Tcl is LISP on drugs. Using strings instead of S-expressions for closures
is Evil with one of those gigantic E's you can find at the beginning of 
paragraphs.