Evolutionary Software Licenses

Game theory on BSD vs. GPL: partnership? Is GPL an evolutionary stable strategy against invasion by proprietary copyright strategies?
politics, computer-science
2009-01-272013-10-31 in progress certainty: possible importance: 4


soft­ware like Unix has been whose ease of copy­ing en­sures such soft­ware suc­cess as it spreads and is mod­i­fied by users. “Vi­ral” is a bit pe­jo­ra­tive (and in­deed, that’s why the GPL’s foes em­ploy the ter­m), and it might be bet­ter to call it “evo­lu­tion­ar­ily fit­ter”; it’s easy to see why coined “Free­dom 0”:

In the long run, the util­ity of all non-Free soft­ware ap­proaches ze­ro. All non-Free soft­ware is a dead end.

A closed-source pro­gram or li­brary can, by de­fi­n­i­tion, only be worked on by its own­ers and those the own­ers per­mit; while a FLOSS pro­gram can be worked on by its own­ers and any­one in the world with bare ac­cess to the source. A closed pro­gram de­vel­oped by a firm dies when the firm dies, and busi­nesses lose in­ter­est or die all the time (FLOSS pro­gram­mers may lose in­ter­est, of course, but they die less—hu­mans out­liv­ing cor­po­ra­tions is vastly more com­mon than the con­verse, es­pe­cially in the tech­nol­ogy in­dus­try). A FLOSS pro­gram can be re­vived from bit-rot at any time, and is much more likely to be us­ing stan­dard­ized and open for­mats for its da­ta. The lack of fric­tion of FLOSS li­censes & cul­tural prac­tices means it can be used by more peo­ple and stored in more places (“lots of copies keeps stuff safe” as the archivists say). For all these rea­sons and more, we can ex­pect that (in a sta­tis­ti­cal sense) the older and more sta­ble an area of com­put­ing is, the more in­roads FLOSS can make in it; en­tire ar­eas of en­deav­our slowly be­come ei­ther free or Free. When was the last time most pro­gram­mers paid for their com­piler or text ed­i­tor? When was the last time any­one paid for DOS? Closed soft­ware, to jus­tify its con­tin­ued main­te­nance (and hence ex­is­tence), must at every point be able to cap­ture enough value from its con­sumers that it is worth more than the ex­pen­sive pro­gram­mer main­tain­ing it costs (a­long with all the over­head of such or­ga­ni­za­tions, a de­cent profit, etc.); hence, it al­ways is in a slip­pery slide to obliv­ion, com­bined with the in­ex­orable com­pe­ti­tion from the very-s­low­ly-catch­ing-up FLOSS equiv­a­lents:

The fos­sil record–the La Brea Tar Pit–of soft­ware tech­nol­ogy is the In­ter­net. Any­thing that shows up there is free for the tak­ing (pos­si­bly il­le­gal, but free). Ex­ec­u­tives at com­pa­nies like Mi­crosoft must get used to the ex­pe­ri­ence–un­think­able in other in­dus­tries–of throw­ing mil­lions of dol­lars into the de­vel­op­ment of new tech­nolo­gies, such as Web browsers, and then see­ing the same or equiv­a­lent soft­ware show up on the In­ter­net two years, or a year, or even just a few months, lat­er…N­ever mind how Mi­crosoft used to make mon­ey; to­day, it is mak­ing its money on a kind of tem­po­ral ar­bi­trage. “Ar­bi­trage”, in the usual sense, means to make money by tak­ing ad­van­tage of differ­ences in the price of some­thing be­tween differ­ent mar­kets. It is spa­tial, in other words, and hinges on the ar­bi­trageur know­ing what is go­ing on si­mul­ta­ne­ously in differ­ent places. Mi­crosoft is mak­ing money by tak­ing ad­van­tage of differ­ences in the price of tech­nol­ogy in differ­ent times. Tem­po­ral ar­bi­trage, if I may coin a phrase, hinges on the ar­bi­trageur know­ing what tech­nolo­gies peo­ple will pay money for next year, and how soon after­wards those same tech­nolo­gies will be­come free. What spa­tial and tem­po­ral ar­bi­trage have in com­mon is that both hinge on the ar­bi­trageur’s be­ing ex­tremely well-in­formed; one about price gra­di­ents across space at a given time, and the other about price gra­di­ents over time in a given place. So Apple/Microsoft shower new fea­tures upon their users al­most dai­ly, in the hopes that a steady stream of gen­uine tech­ni­cal in­no­va­tions, com­bined with the “I want to be­lieve” phe­nom­e­non, will pre­vent their cus­tomers from look­ing across the road to­wards the cheaper and bet­ter OSes that are avail­able to them. The ques­tion is whether this makes sense in the long run. If Mi­crosoft is ad­dicted to OSes as Ap­ple is to hard­ware, then they will bet the whole farm on their OS­es, and tie all of their new ap­pli­ca­tions and tech­nolo­gies to them. Their con­tin­ued sur­vival will then de­pend on these two things: adding more fea­tures to their OSes so that cus­tomers will not switch to the cheaper al­ter­na­tives, and main­tain­ing the im­age that, in some mys­te­ri­ous way, gives those cus­tomers the feel­ing that they are get­ting some­thing for their mon­ey.1

But be­sides the slow sto­chas­tic ex­pan­sion of the FLOSS suc­cess sto­ry, there’s a use of evo­lu­tion­ary metaphors I haven’t seen be­fore: to ex­plain the mul­ti­-decade frag­men­ta­tion of FLOSS li­cens­es.

The Problem

Why are there so many2 differ­ent & con­flict­ing FLOSS li­cens­es? There seem to be many more than there are ac­tive pro­gram­ming lan­guages, which is, on the face of it, mys­te­ri­ous: how could there be so many dis­tinct le­gal us­es? Most pro­gram­mers could­n’t care less about the tiny de­tails dis­tin­guish­ing the Artis­tic li­cense from the BSD-3-clause li­cense, etc.!

One Answer

The ob­vi­ous ex­pla­na­tion is that many are just his­tor­i­cal, or are copies in all but name of an­other li­cense; oth­ers differ on how to han­dle the diffi­cult is­sue of soft­ware patents; still oth­ers add idio­syn­cratic clauses (like the ) such as for­bid­ding use by en­ti­ties con­nected to the . And some are there to make their mark, or they have com­mer­cially valu­able in­com­pat­i­bil­i­ties with other li­censes (such as the CDDL’s con­flict with the GPL).

But those ex­pla­na­tions can’t ex­plain why the fun­da­men­tal di­vide in FLOSS li­censes is that of , li­censes which re­quire to be un­der the same li­cense, and those which al­low con­vert­ing de­riv­a­tives to other li­censes (be they more or less re­stric­tive). They can ex­plain a num­ber of in­stances and odd­i­ties, but why does the en­tire ecosys­tem3 cleave down the mid­dle so neat­ly?

Are such le­gal de­vices as copy­left needed or even de­sir­able? Are ‘more free’ than the ? BSD li­censes seem to work well enough—the com­mu­nity has stan­dard­ized on BSD, even re­quir­ing BSD or freer for the Haskell Plat­form—so what good is the com­pli­cated4 GPL?

We can look at it through stan­dard eco­nomic mod­els—s and are mod­els that come to mind. But you could think of it .

Frogs and Game Theory

Let us con­sider the case of poi­son-dart frogs. They fa­mously store poi­son in them­selves and have bright col­ors ad­ver­tis­ing this. Now, this is a good trick for them since it means the big preda­tors will leave them alone. It’s a good enough trick that warn­ing col­oration can be found all over the an­i­mal king­dom. But it’s also bad be­cause they might poi­son them­selves, and be­sides they still have to pay to con­stantly pro­duce those col­ors and poi­sons. The frogs would like to have their cake and eat it too.

So you get free-rid­er­s—frogs which cut out the poi­son and just wear the poi­son col­ors. Every­thing is gravy for these frogs: the preda­tors leave them alone and they have a small edge over the gen­uine ar­ti­cle. But of course, fake poi­son frogs aren’t an (ESS). Preda­tors do eat poi­son-col­ored frogs if they get hun­gry or stu­pid enough, and if they’re all fake, then the preda­tors will learn this & the poi­son col­ors cease to be a de­ter­rent.

And then con­di­tions are ripe for real poi­son-dart frogs to make a come­back! But just when they are tri­umphant and all the preda­tors have learned to ig­nore them, along comes hop­ping a de­fec­tive frog with poi­son-col­ors, but no ac­tual poi­son…

So a ‘pure’ pop­u­la­tion of real or fakes is not sta­ble. (This is a spe­cific ex­am­ple of think­ing; a pop­u­la­tion of de­fect­ing play­ers can be in­vaded by a few co­op­er­a­tors, and a pop­u­la­tion of co­op­er­a­tors can eas­ily be in­fected by free-riders/defectors.)

What hap­pens? Even­tu­ally things reach an equi­lib­rium with enough real poi­son-dart frogs to keep the preda­tors hon­est and a rea­son­able num­ber of fak­ers. If things get out of kil­ter for a while, evo­lu­tion will bring it back into whack.

The Analogy

So for frogs, a mix of re­als and fakes con­sti­tute the ESS. What in­sight does this give us into soft­ware li­cens­es?

Well, re­mem­ber that the stated pur­pose of the GPL is to pre­vent users and mod­i­fiers of a soft­ware pack­age from not mak­ing their changes pub­lic. The GPL is try­ing to com­pel them to make their work pub­lic, just as the orig­i­nal was pub­lic. In­stead of hav­ing a pub­lic do­main of soft­ware, which is in­creas­ingly smaller than the pri­vate do­main as the pri­vate do­main al­ways takes and never gives5, one has a pub­lic do­main that grows. By and large, com­mer­cial users & mod­i­fiers do not want this. Con­sor­tiums like the OpenGL or X.org com­mer­cial groups are rare and frac­tious. Even with the club of the GPL, com­pa­nies may not con­tribute back very much at al­l—by one es­ti­mate, just 29.5% of com­pa­nies which do de­vel­op­ment on FLOSS soft­ware even ‘plan’ to con­tribute back any­thing at all.

So in our anal­o­gy, let’s con­sider frogs to be soft­ware pro­jects. Our preda­tors—s­nakes, spi­der­s—are those who would copy a project and then con­tribute lit­tle or noth­ing back. (This is a hos­tile ac­tion be­cause it can starve a project of in­ter­est and con­trib­u­tors, even if there is no ‘di­rect’ har­m.) What ev­i­dence we have sug­gests the ‘nat­ural’ ESS is one with mostly de­fec­tors and a very few rare co­op­er­a­tors.

So, sup­pose every project used the . This li­cense is poi­son to any com­pany which does­n’t want to re­lease source, as it blocks and it also plugs the ‘ser­vices’ hole in the GPL6. This poi­son comes at a cost—even non-preda­tors may fear the poi­son7, and con­trib­u­tors may be con­fused by the li­cense or at philo­soph­i­cal odds with it.

In this sce­nar­io, every frog is pro­duc­ing poi­son, if you will. It is in­effi­cient. (One would­n’t ex­pect a coun­try to train every cit­i­zen as a sol­dier; more effi­cient to just train a few well). But at least the frogs don’t have to worry about preda­tors, as the syl­lo­gism is sim­ple for a preda­tor—All FLOSS projects are poi­soned; all poi­soned projects are not prey; QED, all FLOSS projects are not prey.

Fur­ther, even ex­ist­ing BSD projects will be pro­tected by the GPL pro­jects; the large num­ber of GPL users min­i­mizes as much as pos­si­ble the costs of us­ing the GPL8. Just the pos­si­bil­ity of a BSD project switch­ing to GPL will de­ter all but the largest preda­tors.

If FreeBSD threat­ened to switch to GPL, Ap­ple will laugh; they have, are, and will be, main­tain­ing their own per­sonal fork. But if the preda­tor does­n’t have enough re­sources, then it will be hob­bled. Main­te­nance, the soft­ware en­gi­neers, make up the ma­jor­ity of the life­time cost; the ini­tial writ­ing is cheap­er! This threat is quite re­al; the project changed from non-copy­left to LGPL specifi­cally to pun­ish free-rid­ers who were caus­ing it “some harm”.

Peo­ple put off by the Affero GPLv3 or em­ployed by those who dis­like it, or just an­noyed at the in­creased diffi­culty of con­tri­bu­tion will set up projects of their own. Now the sec­ond step kicks in­—of course they aren’t go­ing to use the Affero GPLv3. They’re go­ing to use pub­lic do­main or BSD or some other non-copy­left li­cense. And for a while, they’ll be safe. The old con­ven­tional wis­dom about FLOSS projects will take time to die. And they will pros­per and grow with their slight edge over more en­cum­bered pro­jects.

But if no frog pro­duced poison/copyleft, then sooner or lat­er, all the snakes will slither in and start gulp­ing as they please. If the project is lucky, maybe they’ll even be tossed a few tiny tid­bits as thanks (think oc­ca­sional con­tri­bu­tion to ).

But ei­ther way leads to sub­op­ti­mal out­comes. The best is a mix­ture—­some BSD, some GPL etc. It may be con­fus­ing, but it works.


  1. , ↩︎

  2. The lists over 70 FLOSS li­cens­es—and those are just the ones they have re­viewed and ap­proved of!↩︎

  3. the users, the jus­ti­fi­ca­tions, & the li­censes them­selves↩︎

  4. The GPL is ad­mit­tedly much more diffi­cult to un­der­stand than the BSD li­cens­es. Even once you’ve grasped the el­e­gant le­gal judo move at its heart, the de­tails are many and nig­gling. Other copy­left li­censes can be even more diffi­cult to un­der­stand; it’s the rare Wikipedian who fully un­der­stands the GFDL and Wikipedi­a’s use of only part of the GFDL and the amend­ments to it that al­low a one-time trans­fer of GFDL works to CC-BY-SA li­cense.↩︎

  5. When was the last time gave any­thing to the pub­lic do­main? Now, when was the last time Dis­ney took from the pub­lic do­main?↩︎

  6. The straight GPL li­cense tech­ni­cally only re­quires pub­lic changes if the source code or com­piled bi­na­ries are dis­trib­uted. If the code & bi­na­ries al­ways re­main on one’s own pri­vate servers, the GPL never ap­plies. The par­a­dig­matic ex­am­ple here is : de­spite us­ing & mod­i­fy­ing mil­lions of lines of GPL code, its FLOSS con­tri­bu­tions are rel­a­tively small (yes, even count­ing things like the ). This is be­cause Google users al­ways con­nect to Google’s servers for searches or emails &etc., and never down­load ‘the Google search en­gine’ or any­thing. With no pub­lic dis­tri­b­u­tion of ex­e­cuta­bles or li­braries, the GPL does­n’t ap­ply, and so Google goes on its merry way com­ply­ing with the let­ter (if not the spir­it) of the GPL.↩︎

  7. Erik Möller of the Wiki­me­dia Foun­da­tion has writ­ten an es­say on how Cre­ative Com­mons ‘non­com­mer­cial’ clause can dam­age per­fectly be­nign uses be­sides the abu­sive multi­na­tion­als most peo­ple choos­ing the NC clause are no doubt think­ing of.↩︎

  8. There are costs to us­ing a novel li­cense; if it’s not OSI-approved, for ex­am­ple, a project might dis­cover that no Linux dis­tri­b­u­tion will carry no, nor any le­gal or­ga­ni­za­tion pro­tect it or go after li­cense in­fringers.↩︎