Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
57 lines (31 sloc) 9.54 KB
description: Game theory on BSD vs. GPL: partnership
# The Problem
Why are there so many[^osi] different & conflicting [FLOSS](!Wikipedia) licenses?
## One Answer
The obvious explanation is that many are just historical, or are copies in all but name of another license; others differ on how to handle the difficult issue of software patents; still others add idiosyncratic clauses (like the [T~e~X license](!Wikipedia "TeX license")) such as forbidding use by entities connected to the [United States Military](!Wikipedia). And some are there to make their mark, or they have commercially valuable incompatibilities with other licenses (such as the [CDDL](!Wikipedia)'s conflict with the GPL).
But those explanations can't explain why the fundamental divide in FLOSS licenses is that of [copyleft](!Wikipedia), licenses which require [derivatives](!Wikipedia "Derivative work") to be under the same license, and those which allow converting derivatives to other licenses (be they more or less restrictive). They can explain a number of instances and oddities, but why does the entire ecosystem^[the users, the justifications, & the licenses themselves] cleave down the middle so neatly?
Are such legal devices as copyleft needed or even desirable? Are [BSD licenses](!Wikipedia) 'more free' than the [GPL](!Wikipedia)? BSD licenses seem to work well enough - the [Haskell](!Wikipedia "Haskell (programming language)") community has practically standardized on BSD - so what good is the difficult[^compl] GPL?
We can look at it through standard economic models - [common-pool resource](!Wikipedia)s and [tragedy of the anticommons](!Wikipedia) are terms that come to mind. But you could think of it [evolutionarily](!Wikipedia "Natural selection").
## Frogs and Game Theory
Let us consider the case of poison-dart frogs. They famously store poison in themselves and have bright colors advertising this. Now, this is a good trick for them since it means the big predators will leave them alone. It's a good enough trick that warning coloration can be found all over the animal kingdom. But it's also bad because they might poison themselves, and besides they still have to pay to constantly produce those colors and poisons. The frogs would like to have their cake and eat it too.
So you get free-riders - frogs which cut out the poison and just wear the poison colors. Everything is gravy for these frogs: the predators leave them alone and they have a small edge over the genuine article. But of course, fake poison frogs aren't an [*evolutionarily stable strategy*](!Wikipedia "Evolutionarily stable strategy") (ESS). Predators do eat poison-colored frogs if they get hungry or stupid enough, and if they're all fake, then the predators will learn this & the poison colors cease to be a deterrent.
And then conditions are ripe for real poison-dart frogs to make a comeback! But just when they are triumphant and all the predators have learned to ignore them, along comes hopping a defective frog with poison-colors, but no actual poison...
So a 'pure' population of real or fakes is not stable. (This is a specific example of [Prisoner's dilemma](!Wikipedia "Prisoner's dilemma") thinking; a population of defecting players can be invaded by a few cooperators, and a population of cooperators can easily be infected by free-riders/defectors.)
What happens? Eventually things reach an equilibrium with enough real poison-dart frogs to keep the predators honest and a reasonable number of fakers. If things get out of kilter for a while, evolution will bring it back into whack.
### The Analogy
So for frogs, a mix of reals and fakes constitute the ESS. What insight does this give us into software licenses?
Well, remember that the stated purpose of the GPL is to prevent users and modifiers of a software package from not making their changes public. The GPL is trying to compel them to make their work public, just as the original was public. Instead of having a public domain of software, which is increasingly smaller than the private domain as the private domain always takes and never gives[^mickey], one has a public domain that grows. By and large, commercial users & modifiers do not want this. Consortiums like the OpenGL or commercial groups are rare and fractious. Even with the club of the GPL, companies may not contribute back very much at all - by one estimate, just [29.5%](,2817,2367829,00.asp) of companies which do development on FLOSS software even 'plan' to contribute back anything at all.
So in our analogy, let's consider frogs to be software projects. Our predators - snakes, spiders - are those who would copy a project and then contribute little or nothing back. (This is a hostile action because it can starve a project of interest and contributors, even if there is no 'direct' harm.) What evidence we have suggests the 'natural' ESS is one with mostly defectors and a very few rare cooperators.
So, suppose every project used the [Affero GPLv3](!Wikipedia). This license is poison to any company which doesn't want to release source, as it blocks [Tivoization](!Wikipedia "Tivoization") *and* it also plugs the 'services' hole in the GPL[^services]. This poison comes at a cost - even non-predators may fear the poison^[Erik Möller of the Wikimedia Foundation has written [an essay]( on how Creative Commons 'noncommercial' clause can damage perfectly benign uses besides the abusive multinationals most people choosing the NC clause are no doubt thinking of.], and contributors may be confused by the license or at philosophical odds with it.
In this scenario, every frog is producing poison, if you will. It is inefficient. (One wouldn't expect a country to train every citizen as a soldier; more efficient to just train a few well). But at least the frogs don't have to worry about predators, as the syllogism is simple for a predator - All FLOSS projects are poisoned; all poisoned projects are not prey; QED, all FLOSS projects are not prey.
Further, even existing BSD projects will be protected by the GPL projects; the large number of GPL users minimizes as much as possible the costs of using the GPL^[There are costs to using a novel license; if it's not OSI-approved, for example, a project might discover that no Linux distribution will carry no, nor any legal organization protect it or go after license infringers.]. Just the *possibility* of a BSD project switching to GPL will deter all but the largest predators.
If FreeBSD threatened to switch to GPL, Apple will laugh; they have, are, and will be, maintaining their own personal fork. But if the predator doesn't have enough resources, then it will be hobbled. Maintenance, the software engineers, make up the majority of the lifetime cost; the initial writing is cheaper! This threat is quite real; the [Wine](!Wikipedia "Wine (software)") project changed from non-copyleft to LGPL specifically to punish freeriders who were causing it ["some harm"](
People put off by the Affero GPLv3 or employed by those who dislike it, or just annoyed at the increased difficulty of contribution will set up projects of their own. Now the second step kicks in - of course they aren't going to use the Affero GPLv3. They're going to use public domain or BSD or some other non-copyleft license. And for a while, they'll be safe. The old conventional wisdom about FLOSS projects will take time to die. And they will prosper and grow with their slight edge over more encumbered projects.
But if no frog produced poison/copyleft, then sooner or later, all the snakes will slither in and start gulping as they please. If the project is lucky, maybe they'll even be tossed a few tiny tidbits as thanks (think [Apple's](!Wikipedia "Apple Computer") occasional contribution to [FreeBSD](!Wikipedia)).
But either way leads to suboptimal outcomes. The best is a mixture - some BSD, some GPL etc. It may be confusing, but it works.
[^osi]: The [Open Source Initiative](!Wikipedia) lists [over 70]( FLOSS licenses - and those are just the ones they have reviewed and approved of!
[^compl]: The GPL is admittedly much more difficult to understand than the BSD licenses. Even once you've grasped the elegant legal judo move at its heart, the details are many and niggling. Other copyleft licenses can be even more difficult to understand; it's the rare Wikipedian who fully understands the GFDL *and* Wikipedia's use of only part of the GFDL *and* the [FSF](!Wikipedia "Free Software Foundation") amendments to it that allow a one-time transfer of GFDL works to [Creative Commons](!Wikipedia)'s BY-SA license.
[^mickey]: When was the last time [Disney](!Wikipedia "The Walt Disney Company") gave anything to the public domain? Now, when was the last time Disney took from the public domain?
[^services]: The straight GPL license technically only requires public changes if the source code or compiled binaries are distributed. If the code & binaries always remain on one's own private servers, the GPL never applies. The paradigmatic example here is [Google](!Wikipedia): despite using & modifying millions of lines of GPL code, its FLOSS contributions are relatively small (yes, even counting things like the [Google Summer of Code](!Wikipedia)). This is because Google users always connect to Google's servers for searches or emails &etc., and never download '*the* Google search engine' or anything. With no public distribution of executables or libraries, the GPL doesn't apply, and so Google goes on its merry way complying with the letter (if not the spirit) of the GPL.