Slashdot Mirror


Linguistic Problems of GPL Advocacy

Reader Chemisor advances a theory in his journal that a linguistic misunderstanding is at the root of many disagreements over different licensing philosophies, in particular BSD vs. GPL. The argument is that GPL adherents desire the freedom of their code, while those on the BSD side want freedom for their projects. "It is difficult to spend a week on Slashdot without colliding with a GPL advocate. Eager to spread their philosophy, they proselytize to anyone willing to listen, and to many who are not. When they collide with a BSD advocate, such as myself, a heated flamewar usually erupts with each side repeating the same arguments over and over, failing to understand how the other party can be so stupid as to not see the points that appear so obvious and right. These disagreements, as I wish to show in this article, are as much linguistic as they are philosophical, and while the latter side can not be reconciled, the former certainly can, hopefully resulting in a more civil and logical discourse over the matter." Click below for Chemisor's analysis of the linguistic chasm.

The first disagreement I wish to address concerns the statement "BSD projects are free, but GPL projects stay free." GPL advocates cannot understand why the BSD advocates are not getting this point, and BSD advocates make accusations of Communism, which are then argued to death by both parties. The problem with the statement above is the different interpretation of the word "project." I, and I suspect many other BSD advocates, generally separate the concept of "project" from "code." While code is what projects are made of, I do not see it as valuable as the useful product a project provides. When I write a program, be it a site scraper, or a todo program, or a UI framework, I think of my project as the entity that matters. The fact that I may have copied some code from one to another is of no concern to me.

A GPL advocate sees an entirely different situation. To him, it is the code that comes first, and the applications built from that code are a secondary consideration. Even a single line of code is precious, whether it contains a complex spline formula or i += 2;. As an aside, I would expect this mindset to be more prone to reusing other people's code instead of reimplementing it. Where I would scoff at a piece of code, call it utter garbage, and rewrite the damn thing from scratch, a GPL advocate would probably wrap the garbage in another API that he finds more palatable. In my opinion, this leads to bloat from wrappers, instability from the garbage that is still there, and loss of skills. What programmer from the current generation is up to the challenge of reimplementing libjpeg? But, I digress. I am here to explain, not bash, so please excuse this little rant.

The two different viewpoints outlined above lead to different interpretation of the expression "stay free." To a BSD advocate, his project will always "stay free," and to assert otherwise is ridiculous. Once it is published, what could possibly make it go away? I have projects that I wrote fifteen years ago which are still hosted on ibiblio.org FTP site and mirrored around the world. I no longer maintain them and think them useless, but they'll persist forever, and anyone at all who wants to download them still can download them. The fact that some company can take it, write a little bit on top of it, and sell it, does not in any way affect my project.

To a GPL advocate, the project is not important; the code is important. So he looks not just at the project distributions he has made, but also of other projects that may incorporate any line of code he ever wrote. In his mind there is no distinction between his original work and its encapsulation in a derived work. He still thinks of both as "his code," and as an entity that must stay free. Naturally, any non-free derived work will anger him, because his code in it will no longer be free, even though his own copy of that code and his entire project will still be free.

The code/project distinction also leads to a different view of what it means to "use" a project, although this point is seldom argued explicitly. A GPL advocate makes a rather arbitrary and vague distinction between a human using his code and a computer using his code. Consider a situation where a user has a GPL-licensed program that converts a JPEG image to a GIF image and his own program (which he sells, or distributes under some other incompatible license) that can only view GIF images. It is legal for him and his customers to call the GPL program from the command line to convert JPEG images and then view them with his program. Suppose he gets fed up with this sequence and writes a shell script to do both operations in sequence. Is this legal? Probably. But what if he cuts out the conversion part of the GPL program and embeds it in his viewer? That would make his viewer a derived work, and so illegal to distribute under anything but GPL.

From the GPL advocate's view, this is perfectly logical. It is his code, and he wants all instances of his code to be free. The instance can not be free if it is embedded in another executable that is not free, since it can not be easily modified, which was Stallman's gripe and the reason for the GPL's existence. From the BSD advocate's view, the situation is absurd. His project is still free, and he does not really care how a user wants to use it. A shell script calling the converter is no different than a closed source program embedding it. They are simply different ways for a human to use the program. Whether the object code for the project stays hackable is also irrelevant, since the human's use of the project through a derived work project is just another way of use.

These different views of derived works are another bitter point of contention. GPL code can only be legally embedded in GPL projects, and if a non-GPL project wants to use GPL code, it must either not do that, or become a GPL project. This is why BSD advocates call the license viral, and thus elicit vehement denials from GPL advocates, who retort that nobody is forced to use GPL code, which lead to useless arguments over the meaning of "forced" or "viral" with no meaningful result. It must be reiterated that the GPL advocates look at code, while the BSD advocates look at projects, and the "viral" debate can only be resolved by examining both viewpoints. A GPL advocate sees a derived work as "his code" combined with some "other code" in a package, and his concern is that the package always be openable. "His code" always remains his code, and he sees any use or distribution of the whole package as a kind of use or distribution of his code. As a result, he feels justified in placing restrictions on how a user may use or distribute the derived work, even though he "owns" only a small part of the whole package. This is following the philosophy of copyright and intellectual property, which, curiously, is a favorite target of derision of these same people. A copyrighted work can never be wholly owned by the user, it is only rented, and so subject to control by the original creator.

A BSD advocate sees a derived work as his project being used by another project. The derived project is wholly owned by whoever wrote it, even if it uses other people's code. This is similar to the property laws of the real world. For example, suppose I sit on the curb and give away free lemons. A kid next door might get the bright idea to get my lemons, make lemonade, and sell it. The lemonade is clearly a "derived work," since it is made from my lemons, but it is absurd to suggest I have any right to tell him what price to put on his lemonade or how much sugar he can use in it. By the laws of private property in the real world, my ownership was relinquished at the time when I handed him my lemons. Just as I do not own his lemonade, neither do I own the derived works he makes from my BSD-licensed software.

These distinctive views of ownership combine with considerations of money, and GPL's anti-business mindset, resulting in accusations of Communism, and worse. But I'll save explaining that for another article. For now I will simply suggest that GPL advocates should change their language a bit, to make themselves more easily understood by people who do not subscribe to their philosophy. Specifically:

"BSD code is free, but GPL code stays free."

It would be better instead to say:

"BSD code is free, but the GPL ensures all derived works are also free."

or

"The GPL ensures your code will never be used by a closed-source application."

These alternatives clarify that you are talking about derived works, rather than the original project, which, of course, will always stay free anyhow. Also, do keep in mind the other points brought up in this article and make at least some effort to ensure you are speaking the same language before becoming too upset. I will never agree with your philosophy, but at least you'll know you were understood.

12 of 633 comments (clear)

  1. There is substance to the disagreement. by PaulGaskin · · Score: 5, Interesting

    It's not just semantics. GPL-advocates such as myself recognize the value of more permissive licenses such as the BSD license and the LGPL. BSD-advocates often fail to understand why the GPL is so successful.

    --
    Freedom is free.
    1. Re:There is substance to the disagreement. by SerpentMage · · Score: 4, Interesting

      >BSD-advocates often fail to understand why the GPL is so successful.

      Maybe because most successful open source projects aren't GPL!

      Sure Linux, and MySQL are GPL, but from a success perspective Apache, Python, PHP, Perl, Mozilla, etc are actually amazingly successful.

      Personally I prefer the BSD licenses or Mozilla type licenses.

      --

      "You can't make a race horse of a pig"
      "No," said Samuel, "but you can make very fast pig"
    2. Re:There is substance to the disagreement. by setagllib · · Score: 5, Interesting

      I think what people really forget about the GPL is that it has a unique potential for dual licensing. Trolltech use this extremely well with Qt.

      If you want to write a non-free application based on Qt, you need to purchase a commercial license. Presumably you're making money off your application, so the cost of a Qt license is a perfectly acceptable cost. And if you're just writing a nice open source application, in one of Qt's accepted open source licenses (including, yes, BSDL), you're totally welcome to use the GPL Qt.

      It ensures the developing company gets a slice of the money made off their product, while leaving the code open and free for use in free software. It's a very solid model and it's done wonders for Qt so far, even while GTK+ is LGPL and 100% free for commercial use, just because the Qt technological offering is strong enough to excuse the tougher license.

      --
      Sam ty sig.
    3. Re:There is substance to the disagreement. by KGIII · · Score: 4, Interesting

      I will try to keep this brief but I fear that being too brief will be seen as a troll as opposed to a true attempt to comprehend your viewpoint. With that in mind, I'd like to point out that the brevity of your statements isn't helping me to understand and, well, I really do want to understand. If I didn't than I'd post AC and I've never done so and see no reason to start now.

      With the preamble over let me see if I can ask my question(s) clearly. Please bear with me. My first, and really only, is how is GPL really "free?"

      I'm going to use only the information that I have and, hopefully, all of it. SMF, an open source (but free as in free beer) forum is not licensed under the GPL. Joomla! went to the FSF and they determined that all distributed code that allowed a GPLed product to be linked to another product meant that, with the advent of GPL3 which Joomla! uses, the product that it linked to was also required to follow the GPL3 license. This is just what I get from their interpretation and the end results.

      Now, SMF is a forum and many people used to use it to bridge the two together. The determination by Joomla! was that SMF could no longer distribute the bridge (which was agreed could be moved to the GPL3 license but that was still not acceptable) and SMF agreed to no longer distribute the bridge. People are still perfectly free to bridge the two together though many people simply can't do so.

      How is that free? If it is free than shouldn't I be allowed to create (and distribute) GPL code that allows non-GPL products to run on GPL systems? If it isn't allowed than what is WINE? Why is that okay? Wouldn't freedom be saying, "Hey, here it is. Do with it what you want in any way you want because I give it to you." Freedom, to me, isn't about saying that you can have something but you can only do what I tell you is allowed. The GPL (as is interpreted in the above example) isn't free at all. It is, in fact, adding limitations as to what one can and can't do with it to promote an idealism/agenda. I don't mind that it is promoting that agenda, I just don't understand people using the word "free" when advocating the agenda - and I am more disappointed when I see what can only be called hypocrisy within the advocates of that supposed freedom. I truly don't understand and would absolutely love to. It isn't that I've not tried to understand, it is that the advocates are often zealots who ignore the hypocrisy and rather than explain they turn into trolls. (Which you haven't done and that is why I'm asking you because you may actually have an answer.)

      To be short, I'll add that I don't often code much these days. When that was my job I had no control over how the code was licensed. Today, when I do have time or inclination to create something that someone might actually have a used for, I give it away for free. True freedom, no creative commons license, no GPL, no nothing. "Here, have this if you think you might want it." If it is compiled and people want the source than, by all means, I'll certainly give that to them too. I guess the difference is that I GIVE it to them meaning that they can do what they will with it and I don't have any reason (or desire) for them to return the changed code to me, to share any profits that they might make with me, to give me credit, nor to even thank me. I sure as hell don't code anything worth selling these days and if I did than I may very well give them the source just to see if they can do better with it than I.

      On those terms, again, with my limited experience with needing to work with the actual license, I'm going to have to say that it is my opinion that BSD is far more "free" than the GPL which, as I understand, actually restricts what one can do with it. "We'll give you the source code and you can use it as you'd like but if you distribute it you must also make the source code available with your changes attached." That is a restriction - not a freedom. Making someone do what you say is not allowing them to be free by any definition that I've ever seen.

      I guess that, to me, neither is entirely free and the BSD seems to promote less of an agenda than GPL3 does.

      --
      "So long and thanks for all the fish."
    4. Re:There is substance to the disagreement. by RedWizzard · · Score: 4, Interesting

      It's not just semantics. GPL-advocates such as myself recognize the value of more permissive licenses such as the BSD license and the LGPL.

      BSD-advocates often fail to understand why the GPL is so successful.

      Yes, and it's really not complex: the BSD license doesn't promote (code) freedom, the GPL license does. The BSD license is designed for maximum freedom to use the code - anyone can use it for anything with only very minor restrictions. The GPL license is designed to ensure that the code stays free - it's more about spreading the philosophy of (code) freedom than letting users do whatever they want. That appeals to a lot of open source developers.

    5. Re:There is substance to the disagreement. by the_womble · · Score: 4, Interesting
      In other words the GPL is more business friendly from the point of view of the developer - for example, you can ensure that proprietary competitors do not simply take chunks of your code and put it in their products.

      The BSD can be characterised as more anarchist: you give your stuff away for the public good with no expectation of reward. Very laudable, but it does not seem realistic in a capitalist world.

      I realise this is not altogether fair, but it is a stronger argument that common "BSD is more business friendly".

    6. Re:There is substance to the disagreement. by KGIII · · Score: 4, Interesting

      I have read the license, all of it, and mostly agree with your views. Since I had a huge issue with an NDA and non-compete I have had a liar (lawyer) on retainer and keep that retainer going though it is for business reasons now. (He happens to be very good and to be a fellow alumni.) Anyhow... I have asked him, in passing instead of as a pressing matter, and his response is that if I were to knowingly give an unstable person a steak knife and they stabbed someone in the eye with it that I'd probably be legally accountable. I author a few scripts or snippets and leave them where they can be copied or downloaded.

      Now that I think about it, I probably should... Thanks for making me think about it. I'm horrific at analogies but I'm pretty sure that if I (and I don't have any nor do I think I do but bear with me and I did say I was horrible at it) an AIDS infected needle in my trash and someone rooted through it on the street corner and was infected that I'd be held liable in today's court system - more so if it was a sanitation worker who was infected. We are a lawsuit happy society so I probably ought to though I'm not sure if it really truly conforms to my idea of freedom.

      Let's say I gift you something? Free, true free. I give you, say, a picture of a landscape that I thought was beautiful and that you'd like it. Give. Just give. Do you still want it if you have to tell everyone that comes through the door that I gave it to you? Is it free if I tell you that you can have it but that you must attribute it to me even if you put it into a different frame?

      I guess it stems from my childhood where I was told by my parents that it was perfectly okay for me to give stuff away but if I did that I didn't have to expect something back and that if I gave something away and they then gave it to give it or sell it to someone else that that too was okay.

      --
      "So long and thanks for all the fish."
    7. Re:There is substance to the disagreement. by KenRH · · Score: 5, Interesting

      Why do we restrict your freedom to drive at 140 mph down a crowded inner city street?

      To protect others freedom to walk around without getting killed.

      I the same manner the GPL has some restrictions to protect other freedoms. One can argue where the balance is to be and several open source licenses are awailable as the result of people disagreing on this balance.

      On the other hand we can not put aside the fact that the GPL also has a political agenda, to increase the amount of FOSS software by making a large amount of code, libaries and software under a licence that makes it imposible to close source it thus making it quicker and easier to develop new software if one can open source it and use FOSS libaries and code.

      Most programmers/coders in the world, and most of the money in IT are not made by selling software but by (like myself) bulding custom systems and custom software for a spesific customers.

      For this use open source works fantastic.

  2. WINE by Spy+der+Mann · · Score: 5, Interesting

    While this doesn't concern the BSD license in itself, we can analyze WINE and the spinoff project Cedega.

    In the beginnings, Wine was X11 licensed, and it meant the derived code could be closed. And that's what happened with WineX, now called Cedega. While the WineX guys promised they would return the code (specifically the DirectX code), DirectX development in Wine froze. Years later, Cedega still hasn't returned the code, and Wine just barely came out from it.

    This is the kind of issues that the GPL addresses.

    Now let's analyze the other side of the coin: MySQL. It was designed as LGPL, and it was used in a wide variety of projects. Later, the MySQL guys decided to move from LGPL to GPL, demanding huge amounts of money from anyone who used MySQL for commercial purposes. So people now are switching from MySQL to PostgreSQL - which is BSD licensed.

    (now I wish there was some alternative version of the LGPL that forced derivative work to REMAIN in that license so that people could use it in proprietary products - but still giving back any changes to the library itself - so we could avoid bad moves like the MySQL one. Best of both worlds, eh?)

    So, what does PostgreSQL do to remain free? It's the complexity. No one in his 5 senses would fork the Postgre code and make it private. The project is mature and complicated enough so that it remains free. (But then again, so is Freebsd, and look at what happened with Apple Mac OS X).

    Both the GPL and BSD licenses have their weaknesses - but if I'm starting a new end-user project and want all the community to benefit from it, I'd chose the GPL license without thinking it twice.

  3. Re:Deep Differences by Anonymous Coward · · Score: 4, Interesting

    GPL is like a fruit with a seed that the animal has to swallow whole.
    BSD is like a fruit with a seed that the animal can choose to chew and destroy.

    Let those fruits compete. Evolution will sort out the winner.

  4. another interpretation by martin-boundary · · Score: 4, Interesting
    Here's a simpler interpretation: both GPL and BSD advocates want to be associated with the word "free", which rhetorically implies the moral high ground. That's why they're constantly bickering about who's more free, and they'll never stop bickering because there are two projects, and only one word.

    But these are just word games, like when Microsoft wants to be known as innovative, or Google want to be known as the opposite of evil. In reality, people and companies still have to read the license terms in detail, and choose what works best for them based on the fine print.

  5. Re:So? by gaijin99 · · Score: 5, Interesting

    Funny, but not accurate.

    It isn't about sucking, but about basic philosophic differences.

    The giveaway licenses like BSD are there for people who actually want to give away their code. They release the code and get nothing in exchange except the warm feeling of being good people.

    The GPL is, despite the cries of those who think its somehow Communist or socialist, based on exchange: you release your code, and in exchange you get more code back.

    Which is what RMS and the other hacker types want. Money is good, of course, but what really drives a hacker is code. Code to learn from, code to play with, code to try and push in directions its originator didn't think of. MS sells its code for money. People who release under the GPL sell their code for more code. Its a commercial transaction: you can can use my code for anything, and in exchange I get to see and play around with all the derivative code your produce.

    I've always thought that "freedom" was the wrong way to describe it. Yes, there's a certain free aspect, but mostly the GPL is a very straightforward commercial transaction. I give you code, I get code back.

    --
    "Mission Accomplished" -- George W. Bush May 1, 2003