A defense of the GPL January 3, 2010 | 01:10 pm

OK, I’ve had it.  I’ve read one too many “the GPL is bad for (my) business” screeds.

Let’s put the shoe on the other foot for a moment.  Say you’ve written some software and are selling it.  The price you’re selling it for is clearly stated on your website, in all the advertising materials about the software, in the license for the software itself, etc.  Then someone comes to you and demands the software for free- refuses to pay you for the software.  When you respond “um, no”, they call you a communist, and claim you’re opposed to them making any money on the software.  What’s your opinion of that person, at that point?

Right.

Here’s the point- GPL’d software is not “free” (as in “free beer”) than Microsoft software is- there is a payment expected for the use of that software. The difference is, the payment demanded is not money, it’s payment in kind.  It’s a code swap- my code for your code.

If you don’t like the cost imposed for using the software don’t use the fucking software.  Write your own, or use someone else’s software.  It’s as simple as that.

It’s not like that the consequences of using the GPL, or GPL’d software, hasn’t been discussed to death a million times over.  Just consider, for the moment, the phrases “free as in beer” and “free as in speech”.  You can’t say you weren’t warned.  Although I will admit that it’s a toss up which is more tedious to read, the pages and pages of terse lawyerese of a Microsoft license agreement, or megabytes and megabytes of slashdotters playing lawyer/revolutionary on the internet.

If you’re using the BSD license, which allows other people to be able to require payment for your software, don’t be surprised if other people take you up on this- including people who decide to require payment in kind, and wrap your code up with GPL code and make the whole thing GPL’d.  You explicitly allowed them to do that, so stop whining that they took you up on your offer.  If you didn’t want that to happen, you should have used a different license.

There is a cost to using the BSD license as well, I comment.  One that is less obvious, at least now.  People have forgotten the great Unix schism of the 1980′s.  Heck, a lot of the people debating the pros and cons of various licenses weren’t even alive back then.  Here’s a short history lesson: what today we call BSD Unix was the first real open source operating system in history.  And the success of Unix was due, in largest part IMHO, due to the fact that it was open source.  But the license permitted people to not give their improvements back, and a lot of people- including companies like Sun, IBM, HP, Dec, and Microsoft took advantage of this.  They took the core unix source code, made improvements, and sold the improvements as their own propreitary version of Unix.  This meant the same problems were solved over and over again, in slightly different ways, in different propreitary unix versions.  This is why, for example, we have wait, wait3, wait4, waitid, and waitpid- the original unix just has wait, which had various limitations.  To work around those limitations, Sun would introduce one new version of wait, while IBM would introduce a slightly different one.  And so on.  And so we get almost half a dozen different variations of the wait system call (and remember, these are just the ones that pretty much everyone ended up implementing sooner or later- more variations were introduced but didn’t flourish).

In addition to incredible wasted effort, as the same problems were solved redundantly multiple times, this also lead to it being very hard to write code that ran on multiple different unix versions.  The GPL was developed at the height of the Unix schism, and being a Unix programmer, Stallman was very aware of the problems the BSD license was creating.  Say whatever else you want about the GPL, it prevented a great Linux schism from happening.  Yes, there are differences between the distros, but they are nothing compared to the differences between the various BSD-derived Unix versions suffered.

But you know what: who cares?  There are upsides and downsides to all licenses.  Including just leaving your code out on the front lawn with a sign that says “free toliet” on it.  License your original works however you see fit- it’s not my code, it’s not labor, so it’s not my problem.  GPL it, BSD it, sell it for cold, hard cash, whatever you will.  If you’re using (including extending) someone else’s work, then respect their right to do the same- if you don’t like what they’re charging for their software (including payment in kind), don’t use the software.  All you’re doing by whining about how the GPL makes it impossible to make money off of someone else’s work is to convince me that you’re a greedy asshole who deserves no respect.

That is all.

Tags:

  • http://redlinernotes.com/blog/ Brit Butler

    Thanks for writing this. I’ve gotten really tired of the “license wars” myself.

  • J Fuller

    Thanks very much for this article. I’ve always felt that GPL must have something going on right because of the “quality of its enemies”, but I had not considered the historical context before.

    I am in complete agreement with your last-but-one sentence!

  • Alex

    You are right your main point … but then again, you also have a lot of misconceptions.

    Maybe BSD Unix became a mess, but it’s still alive, it still has followers and contributors and it’s still a valid replacement for Linux (some say that its better in many ways).

    That’s mostly because of the Internet … back in the day, as you said, people weren’t aware of open-source, they just went with the safest solution that solved their problem, choosing Sun or IBM. Back then, that was a no-brainer, because in case of shit hitting the fan, who you’re gonna call? It was the Internet that changed all that, and you can’t attribute the state of Linux only to its license … far from that.

    Also, since the BSD license permits, the kernel has been integrated with ZFS and DTrace, which are also open-source, but with a GPL-incompatible license. That’s a clear advantage.

    Also, the recent MySql almost-finished acquisition by Oracle … clearly shows that PostgreSql is a safer bet for the future. You can’t buy PostgreSql the same way MySql was bought, no matter what Monty says. Sure, you can improve on it, you can temporarily steal its thunder, you can buy-off its current core-devs, thus delaying its development … but the current code-base will be free forever and you can rely on that.

    So, the GPL makes sense for many projects … but you can’t rely on dual-licensing for your long-term needs. If you’re relying on that, you’re often better just buying stuff from Microsoft.

  • http://twitter.com/BHurt42 Brian

    A couple of misconceptions on your part, Alex.

    First of all, I didn’t say, or even imply, that BSD was dead. And I didn’t even address what caused Linux’s success over BSD. For the record, I agree with you- Linux’s success had little to do with it’s license, and everything to do with the AT&T lawsuit. You see, I was an undergrad at the time, and had just totally blown my budget to buy myself one of the new 386SX machines with 2 meg of ram that had just become available at a price a cash-strapped student could afford. This is basically the same machine that Linus Torvalds had. What was interesting about this machine was that it was the first machine that really had the capability to run a “real” operating system like Unix. And I went looking for a real OS to run on it (real = not DOS).

    At that point (1991-92), no one had ported BSD to the 386 yet, and people were unwilling to do so due to the legal uncertainty covering the BSD code base at that time. The snotty suggestion someone made that I buy a real machine, like a Sun workstation, won no points for BSD for me- the $650 I spent on the 386SX was technically more than I could afford, no way could I shell out $3,000 for a Sun. Hurd was a pipe dream that required I shell out $100 for a license for the Mach Microkernel (Hurd still is a pipe dream, but I understand you no longer need to shell out for a license). If I had another $100, I’d have probably bought more hardware instead of a license. Minix was a toy, designed as a teaching tool and not a real OS. That left Linux- which I downloaded and started using in late ’91 (kernel version 0.12, and no, the decimal point isn’t a typo). I and tens to hundreds of thousands of other cash-strapped 386sx-owning college students as well. By the time the lawsuit had cleared up and BSD ported to the 386 (mid/late ’93, IIRC) Linux had the buzz, the mind-share, and the community, and BSD never caught up.

    Note that all of this was before the internet as we know it today existed- this as all done via usenet, email lists, local BBSs, and magazines like Byte and Dr. Dobbs. Networked communities definitely existed back then.

    The Mysql situation is interesting. I think the best thing Oracle could do for Mysql would be to fire all the developers. Follow my logic here. Oracle can’t take the code back out of GPL, once GPL’d, forever GPL’d (as SCO found out the hard way). Oracle (because it owns the copyright) has the right to develop the code further and not abide by the GPL- but the code already out there under the GPL will remain out there. The community can, at any time, take the code and fork the project. The question is will they? Were Oracle to just fire all the developers and stop development, the Mysql community at large would have no choice but to step up, fork the project, and get involved (something Mysql AB discouraged).

    This then is the real difference between Postgresql and Mysql- not the license, but the community. Mysql AB discouraged involvement by the community, so all development was concentrated in Mysql AB- if they get bought out, while the code may still be available, the developers no longer are. The two dozen or so main Postgresql developers, by contrast, are distributed over a dozen or so different corporations, with the largest group at a single company being three developers.

    At the level of a single project, I’d argue that the choice of license has little impact on the development of the community around that project. The are projects with healthy community involvement and no community involvement with both licenses. But I will say one thing- at the level of the whole society the mere existence of the GPL has had a major positive impact, in that it created an expectation- by society at large- that corporations should “give back” code, and that they can actually benefit from doing so. The whole AT&T lawsuit was motivated by the then widely held view that AT&T had screwed up letting the source code for Unix go, and that it was wise for them to try and “get it back”. Even Sun’s attitude back in the 80′s and early 90′s was that code they had paid to develop was theirs, and no way would they share- this is what caused the Unix schism in the first place. It was the GPL, and specifically the Linux kernel, that taught people that sharing is good. BSD licensed projects, like BSD Unix and Postgresql, benefit from this fundamental cultural change caused by the GPL.

    Would Sun have contributed DTrace and ZFS to Linux instead of BSD, were Linux BSD licensed? Maybe- then again, maybe not. But were Linux BSD licensed, I wonder if IBM and Redhat would be contributing to Linux, or contributing quite so much. And I think we’d be in the midst of an AT&T sized lawsuit all over again. AT&T lost that lawsuit when it came out that AT&T had used and shipped Berkley code in their OS. At which point, if Berkley had committed copyright infringement, so had AT&T, and thus the whole matter got dropped. Were Linux BSD licensed instead, SCO may have faired much better. If you’re going to play alternate-history what ifs, you have to factor in all the pluses and minuses.

  • http://twitter.com/RobertFischer Robert Fischer

    Note Mysql AB was bought out—by Sun, and then (through the transitive property of corporate acquisitions) by Oracle.

  • Pingback: DynamicDomainProperties and the AGPL