Jach's personal blog

(Largely containing a mind-dump to myselves: past, present, and future)
Current favorite quote: "Supposedly smart people are weirdly ignorant of Bayes' Rule." William B Vogt, 2010

Code Licenses Again, or The GPL is Like Communism

My views on code licensing have sort of flip-flopped over the years I've been programming, but for the past few I've still mostly settled on the GPL (or LGPL when warranted) for serious projects. But since I wrote that post, my viewpoint has become more nuanced. I still agree with the general point that the GPL shackles its users with freedom, and that this is sometimes desirable. But sometimes it's not, and a lot of people feel strongly on both sides. Let's look at the Spirit of the GPL, which is really the Spirit of Open and Free Software. (While open source and free software are different, their spirit is the same.)

The Free Software Song expresses the Spirit adequately. But notice the ending: "When we have enough Free Software/At our call, Hackers, at our call/We'll kick out those dirty licenses/Evermore, Hackers, evermore." Sound familiar? If you've ever read much of Marxist and Communist philosophy it should.

Communism, like the GPL, isn't against money or making money. It's against hoarders and profiteering. Communism sought to solve this problem through a totalitarian government's top-down micromanaging of the economy, and when it reached a steady state the government would no longer be needed and dissipate into a peaceful anarchy. Two of the requirements have never been achieved and have thus doomed Communism as a philosophy and as something to consider reattempting: first, no totalitarian regime has ever voluntarily given up its power; second, no top-down managed economy can ever reach a steady-state if you follow the Misean chain of logic. (Sometimes I wonder though, if it could be doable with enough computing power...)

The GPL is similar in the sense of intention. Copyright is a dumb thing. Eventually we'll get rid of it, or at least hopefully, and then we don't have to deal with these stupid code licenses anymore. The GPL seeks to create more Free Software, specifically of the kind "as an end user you can change this and do whatever you want with it", but with the big restriction of being viral if you want to share your changes with others, so it creates more Free Software in its image only, but once there's "enough" (just like once the economy is "stable") then we can drop the licenses (government) as the annoyances they are. Can it work? I don't think so. Not alone, anyway. At best, because the GPL makes Free Software in its own image, it spreads the Spirit of Free Software, and as the spirit enters more and more minds across all sorts of fields (as software eats the world), more of us realize how dumb copyright is, and we could get rid of it if we lived under a republic. (Ha ha.) What I think is more likely (and sort of what's been happening for at least the last few years) is that when lots of people accept the spirit of free software into their hearts, they won't feel it so necessary to spread it to others via copyright law. They will pick a license as close to ideal USA public domain as possible (because in some places public domain is more restrictive than a specific license) and expect other programmers to honor the spirit voluntarily. Those who don't, oh well. (We might get a little pissy at them sometimes.)

I don't mind that the GPL is viral, I'm just not sure it's the best strategy going forward. There are still great uses for it though. If you use the GPL, you guarantee that anyone forking off your code will use it and increase the total supply of free software. If you use the BSD, you have no such guarantee.. If one writes a display driver and makes it open source under a BSD license, and another takes that driver and changes it slightly but makes their version proprietary, we have less Free Software in the world than we otherwise would have if the original author had GPL'd his code forcing the newcomer to do likewise, or we have just as much proprietary software in the world if because the original author used the GPL the newcomer rolled his own code and reinvented the wheel and released his version as binary only.

So it comes down to the human action of the forker. They can always roll their own, but open source is fundamentally useful because there's less wheel reinventing going on. (Sometimes..) If an open version exists, that's a large carrot when faced with using it or rolling your own, regardless of the terms of the open source version. The GPL just forces them to do the Right Thing and keep their changes open, and may even encourage a mentality of sharing one's own projects. A BSD program however doesn't force a "pay it forward" mentality that the GPL does, it doesn't preserve the Spirit of Free Software, and encourages leechers to leech it and contribute nothing in return. That's not such a bad thing in itself--the reason I use the BSD, or the MIT, or the WTFPL, for my "non-important" projects, is simply because I'd like them to be useful to someone, anyone, regardless of if they intend to leech the software for their own projects without giving anything back, or if they plan on contributing, or if they just want to use it as-is. I like both sides of the debate for several reasons.

What I really want, though, is to be rid of this dirty licensing bullcrap altogether. (And patents, but that's another story.)

Posted on 2013-01-16 by Jach

Tags: open source, philosophy, programming


Trackback URL:

Back to the top

Anonymous June 17, 2017 02:11:52 PM I agree to be rid of this dirty licensing bullcrap altogether, and also get rid of patents.
Back to the first comment

Comment using the form below

(Only if you want to be notified of further responses, never displayed.)

Your Comment:

LaTeX allowed in comments, use $$\$\$...\$\$$$ to wrap inline and $$[math]...[/math]$$ to wrap blocks.