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 ensures such soft­ware suc­cess as it spreads and is mod­i­fied by users. “Viral” is a bit pejo­ra­tive (and indeed, that’s why the GPL’s foes employ 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 approaches zero. All non-Free soft­ware is a dead end.

A closed-­source pro­gram or library can, by def­i­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 access to the source. A closed pro­gram devel­oped by a firm dies when the firm dies, and busi­nesses lose inter­est or die all the time (FLOSS pro­gram­mers may lose inter­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, espe­cially in the tech­nol­ogy indus­try). A FLOSS pro­gram can be revived from bit-rot at any time, and is much more likely to be using stan­dard­ized and open for­mats for its data. The lack of fric­tion of FLOSS licenses & 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 expect that (in a sta­tis­ti­cal sense) the older and more sta­ble an area of com­put­ing is, the more inroads FLOSS can make in it; entire areas of endeav­our slowly become either free or Free. When was the last time most pro­gram­mers paid for their com­piler or text edi­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 exis­tence), must at every point be able to cap­ture enough value from its con­sumers that it is worth more than the expen­sive pro­gram­mer main­tain­ing it costs (along with all the over­head of such orga­ni­za­tions, a decent prof­it, etc.); hence, it always is in a slip­pery slide to obliv­ion, com­bined with the inex­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 Inter­net. Any­thing that shows up there is free for the tak­ing (pos­si­bly ille­gal, but free). Exec­u­tives at com­pa­nies like Microsoft must get used to the expe­ri­ence–un­think­able in other indus­tries–of throw­ing mil­lions of dol­lars into the devel­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 Inter­net two years, or a year, or even just a few months, lat­er…N­ever mind how Microsoft used to make mon­ey; today, it is mak­ing its money on a kind of tem­po­ral arbi­trage. “Arbi­trage”, in the usual sense, means to make money by tak­ing advan­tage of dif­fer­ences in the price of some­thing between dif­fer­ent mar­kets. It is spa­tial, in other words, and hinges on the arbi­trageur know­ing what is going on simul­ta­ne­ously in dif­fer­ent places. Microsoft is mak­ing money by tak­ing advan­tage of dif­fer­ences in the price of tech­nol­ogy in dif­fer­ent times. Tem­po­ral arbi­trage, if I may coin a phrase, hinges on the arbi­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 become free. What spa­tial and tem­po­ral arbi­trage have in com­mon is that both hinge on the arbi­trageur’s being extremely 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 almost dai­ly, in the hopes that a steady stream of gen­uine tech­ni­cal inno­va­tions, com­bined with the “I want to believe” phe­nom­e­non, will pre­vent their cus­tomers from look­ing across the road towards 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 Microsoft is addicted to OSes as Apple is to hard­ware, then they will bet the whole farm on their OSes, and tie all of their new appli­ca­tions and tech­nolo­gies to them. Their con­tin­ued sur­vival will then depend on these two things: adding more fea­tures to their OSes so that cus­tomers will not switch to the cheaper alter­na­tives, and main­tain­ing the image 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 besides the slow sto­chas­tic expan­sion of the FLOSS suc­cess sto­ry, there’s a use of evo­lu­tion­ary metaphors I haven’t seen before: to explain the mul­ti­-decade frag­men­ta­tion of FLOSS licens­es.

The Problem

Why are there so many2 dif­fer­ent & con­flict­ing FLOSS licens­es? There seem to be many more than there are active pro­gram­ming lan­guages, which is, on the face of it, mys­te­ri­ous: how could there be so many dis­tinct legal uses? Most pro­gram­mers could­n’t care less about the tiny details dis­tin­guish­ing the Artis­tic license from the BSD-3-clause license, etc.!

One Answer

The obvi­ous expla­na­tion is that many are just his­tor­i­cal, or are copies in all but name of another license; oth­ers dif­fer on how to han­dle the dif­fi­cult issue of soft­ware patents; still oth­ers add idio­syn­cratic clauses (like the ) such as for­bid­ding use by enti­ties con­nected to the . And some are there to make their mark, or they have com­mer­cially valu­able incom­pat­i­bil­i­ties with other licenses (such as the con­flict with the GPL).

But those expla­na­tions can’t explain why the fun­da­men­tal divide in FLOSS licenses is that of , licenses which require to be under the same license, and those which allow con­vert­ing deriv­a­tives to other licenses (be they more or less restric­tive). They can explain a num­ber of instances and odd­i­ties, but why does the entire ecosys­tem3 cleave down the mid­dle so neat­ly?

Are such legal devices as copy­left needed or even desir­able? Are ‘more free’ than the ? BSD licenses seem to work well enough—the com­mu­nity has stan­dard­ized on BSD, even requir­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 famously store poi­son in them­selves and have bright col­ors adver­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 ani­mal king­dom. But it’s also bad because they might poi­son them­selves, and besides 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 arti­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 deter­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 ignore them, along comes hop­ping a defec­tive frog with poi­son-­col­ors, but no actual poi­son…

So a ‘pure’ pop­u­la­tion of real or fakes is not sta­ble. (This is a spe­cific exam­ple of think­ing; a pop­u­la­tion of defect­ing play­ers can be invaded by a few coop­er­a­tors, and a pop­u­la­tion of coop­er­a­tors can eas­ily be infected 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 reals and fakes con­sti­tute the ESS. What insight does this give us into soft­ware licens­es?

Well, remem­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. Instead of hav­ing a pub­lic domain of soft­ware, which is increas­ingly smaller than the pri­vate domain as the pri­vate domain always takes and never gives5, one has a pub­lic domain 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 all—by one esti­mate, just 29.5% of com­pa­nies which do devel­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 action because it can starve a project of inter­est and con­trib­u­tors, even if there is no ‘direct’ har­m.) What evi­dence we have sug­gests the ‘nat­ural’ ESS is one with mostly defec­tors and a very few rare coop­er­a­tors.

So, sup­pose every project used the . This license is poi­son to any com­pany which does­n’t want to release 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 license 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 inef­fi­cient. (One would­n’t expect 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 exist­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 using the GPL8. Just the pos­si­bil­ity of a BSD project switch­ing to GPL will deter all but the largest preda­tors.

If FreeBSD threat­ened to switch to GPL, Apple 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 resources, then it will be hob­bled. Main­te­nance, the soft­ware engi­neers, make up the major­ity of the life­time cost; the ini­tial writ­ing is cheap­er! This threat is quite real; the project changed from non-­copy­left to LGPL specif­i­cally to pun­ish free-rid­ers who were caus­ing it “some harm”.

Peo­ple put off by the Affero GPLv3 or employed by those who dis­like it, or just annoyed at the increased dif­fi­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 going to use the Affero GPLv3. They’re going to use pub­lic domain or BSD or some other non-­copy­left license. 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 encum­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 occa­sional con­tri­bu­tion to ).

But either 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 licens­es—and those are just the ones they have reviewed and approved of!↩︎

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

  4. The GPL is admit­tedly much more dif­fi­cult to under­stand than the BSD licens­es. Even once you’ve grasped the ele­gant legal judo move at its heart, the details are many and nig­gling. Other copy­left licenses can be even more dif­fi­cult to under­stand; it’s the rare Wikipedian who fully under­stands the GFDL and Wikipedi­a’s use of only part of the GFDL and the amend­ments to it that allow a one-­time trans­fer of GFDL works to CC-BY-SA license.↩︎

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

  6. The straight GPL license tech­ni­cally only requires pub­lic changes if the source code or com­piled bina­ries are dis­trib­uted. If the code & bina­ries always remain on one’s own pri­vate servers, the GPL never applies. The par­a­dig­matic exam­ple here is : despite using & 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 because Google users always con­nect to Google’s servers for searches or emails &etc., and never down­load ‘the Google search engine’ or any­thing. With no pub­lic dis­tri­b­u­tion of exe­cuta­bles or libraries, the GPL does­n’t apply, 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 essay on how Cre­ative Com­mons ‘non­com­mer­cial’ clause can dam­age per­fectly benign uses besides 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 using a novel license; if it’s not OSI-approved, for exam­ple, a project might dis­cover that no Linux dis­tri­b­u­tion will carry no, nor any legal orga­ni­za­tion pro­tect it or go after license infringers.↩︎