Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

[ Create a new account ]

Linguistic Problems of GPL Advocacy

Journal written by Chemisor (97276) and posted by kdawson on Wednesday July 09, @12:46AM
from the shouting-across-the-divide dept.
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.

Related Stories

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • by PaulGaskin (913658) on Wednesday July 09, @12:53AM (#24111901)
    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.
    • by setagllib (753300) on Wednesday July 09, @01:20AM (#24112165)

      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.

    • 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.
    • by RedWizzard (192002) on Wednesday July 09, @02:50AM (#24112941)

      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.

  • bollocks ... (Score:5, Insightful)

    by Anonymous Coward on Wednesday July 09, @12:57AM (#24111929)

    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.

    Complete bollocks. Is the freedom to modify code not the entire point of GPL licenced software?

  • by Dunbal (464142) on Wednesday July 09, @12:58AM (#24111941)

    This clause should be included in any contract, license or law:

    1. Thou shalt not over-analyze the fucking wording of the contract!

  • There is a reason (Score:5, Insightful)

    by phantomfive (622387) on Wednesday July 09, @01:01AM (#24111969) Homepage Journal
    There is a reason that GPL proponents don't agree with the BSD guys (and girls), even understanding this argument. The idea is that in the long term, having your code GPL'd WILL cause it to be put into more products. It's great that BSD made it into apple and all, but since all the improvements made in Linux get put back into Linux, it will just get better and better, and eventually even Apple will not be able to avoid using Linux, because it will be THAT GOOD. May take some time, but hey, we're patient folk.

    Whether this is true or not is up for debate. Only time will tell, the whole software industry is still young. Always good to have linguistic clarity though, I appreciate the post.

      • Re:There is a reason (Score:5, Informative)

        by walshy007 (906710) on Wednesday July 09, @01:34AM (#24112313)

        you'd think that, maybe, but copying and improving the improvements to linux to the os x kernel is no trivial task, take a look at the exec proc bench on this http://www.anandtech.com/mac/showdoc.aspx?i=2436&p=8 [anandtech.com]

        mac os x took on average a bit over four times as long to create new processes, if os x were always ahead of linux shouldn't they be at least equal, if not slightly more efficient?

        as much resources as apple has, there is no way they'd have collectively as much resources going into kernel development as the linux kernel would have in total, and the quality is reflected in that.

  • Deep Differences (Score:5, Insightful)

    by DesScorp (410532) <DesScorp.Gmail@com> on Wednesday July 09, @01:02AM (#24111979) Homepage Journal

    I think the differences between the two camps go far deeper than simple semantics. I don't think you can sum up the conflict as a Mars-Venus miscommunication thing. There are some deep philosophical differences between the two camps. GPL guys are more evangelistic than BSD guys. BSD guys are more Laissez-faire about codes than GPL guys.

    There's really no direct political comparison, but the closest example to BSD vs. GPL in that context is a Libertarian vs. Social Democrat example. BSD guys know that someone can take the code, not give back anything; the principle of real freedom, as they see it, is more important than whether or not anything is "given back". The public good is an indirect benefit, in their view. GPL guys, however, take somewhat more of a socialist-lite view, with the public good of "giving back" of more importance than total freedom to use the code however the end user sees fit.

    Basically, both camps have some very different definitions of what "freedom" is... just like any other kind of politics.

  • Probably Not (Score:5, Insightful)

    by dcollins (135727) on Wednesday July 09, @01:03AM (#24111989)

    Without being a full-time developer, or terribly invested one way or the other in the licensing issues (I've put the GPL on a couple pieces of code, I bet they've never been used by another person), the first thing I think of when I hear these licenses is something like this:

    - BSD ensures freedom of the *producer* of the code to do what they want.
    - GPL ensures freedom of the *recipient* of the code to do what they want.

  • by jdbo (35629) on Wednesday July 09, @01:05AM (#24112007)

    While I agree with some of the author's points regarding linguistic disagreements obscuring philosophical disagreements, and sympathize with the stated desire to bring clarity to this ongoing flamewar, the actual article spends as much time pettily denigrating the pro-GPL position as it does clarifying the disagreement, thereby undermining the substantive aspects of the argument in favor of partisan score-making.

    Or, in short: good job, you've obscured any actual insight with smug self-righteousness.

  • In what purported to be a rational theory, the rant about GPL-advocates being too lazy to rewrite poorly-written routines and instead simply wrappping APIs around them in the effort to dogmatically reuse code seemed out of place and detracted from what had been up to then a rather promising start.

    I'm sorry that Chemisor seems to misunderstand the purpose of the GPL and the culture it grew out of.

    The GPL is not communist. It is not anti-business. The GPL simply prevents someone from taking shared code and no longer sharing. If you use GPL-licensed code in your product, you have an obligation to give others the same freedoms you received when you redistribute the work.

    This is an up-front permission, however. Nothing prevents someone from looking at a GPL'ed application or library and then doing the work themselves to implement the same functionality, nor contacting the copyright holders of the code and negotiating a custom licensing agreement.

    BSD is also a very valuable license, but with different goals in mind. There is no reason for the antagonism between proponents of both licenses.

  • 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.

  • by JanneM (7445) on Wednesday July 09, @01:12AM (#24112083) Homepage

    For my part (and only for my part. of course) my rationale for GPL is simple: I give you permission to use what I've made. You effectively pay for that right by giving identical permissions to use your related code back to me, and by extension to anybody else. It is a quid pro quo.

    I don't dislike the BSD license at all. Anybody want to use it is fine by me. But there is no "I used the BSD license so you must too" requirement - the defining part of the BSD licence compared to GPL is that there is no such requirement. So don't get mad if your BSD code ends up as part of a GPL'ed project. It's what you chose to allow after all.

  • While there is a large overlap between the approved Free Software Licenses [gnu.org] and the approved Open Source Licenses [opensource.org], the fact that a project has a license that is in both lists doesn't make it both Open Source and Free Software.

    Consider the GPL - it's approved by both. But Red Hat doesn't publish Free Software, it publishes Open Source - and software written by Richard Stallman isn't Open Source - it's Free Software, and RMS is happy to explain the difference [fsf.org].

    I'm squarely in Stallman's camp; my audio project Ogg Frog is definitely Free Software, not Open Source [oggfrog.com].

    You see, the distinction isn't the license - it's the purpose behind making the project either Open or Free.

    As Stallman explains, Open Source is about efficiency - volunteer coders, and "many eyeballs" finding and correcting bugs and security holes. Free Software is about creating a community - Stallman has made it very clear he hopes to get back to the way things were back in the day, when source was shared openly with no non-disclosure agreements, copyrights or licenses.

    Unfortunately, the English language has a problem: Free can mean "as in Freedom", or "without cost". When I speak of my Free Software project to non-techie people, they think I'm just not going to charge money for it, and question my sanity. They have no clue about the meaning behind Free Software.

    Spanish doesn't have that problem: Free as in Freedom is "Libre", free as in beer is "gratis". But those words don't make sense to English speakers.

    I have developed a convention, but it's too subtle for most to take notice. Perhaps they will if you join me: I capitalize the "F" if it's "Free as in Freedom", but use lowercase for "free as in beer". I think that emphasizes the difference, and maybe if we all wrote it that way, more people would understand.

    Stallman is a great man, IMHO, but he has a marketing and image problem: very few non-technical people have the first clue as to what Free Software means. Most think it means "freeware".

    But Open Source doesn't have that problem; many who don't know source code from Shinola do understand what Open Source is all about.

    Thus I long ago gave up trying to describe Ogg Frog as Free Software in casual conversation. I only say that when speaking to others who will likely understand. Most of the time I describe it as Open Source, but feel guilty in doing so. I feel like Matthew in these verses:

    Peter said unto him, Lord, why cannot I follow thee now? I will lay down my life for thy sake. Jesus answered him, Wilt thou lay down thy life for my sake? Verily, verily, I say unto thee, The cock shall not crow, till thou hast denied me thrice. -- John 13, 37-38

    (BTW - there's no Ogg Frog to download yet, not even CVS or Subversion. Out of consideration for my non-technical target market, I'm not releasing anything until it reaches it's planned 1.0 feature set, and is reasonably bug free. At least for non-technical users, I feel The Cathedral is better than The Bazaar.

  • by martin-boundary (547041) on Wednesday July 09, @01:16AM (#24112129)
    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.

  • by ruinevil (852677) on Wednesday July 09, @01:40AM (#24112367)
    They should make the Latin translation of GPL and BSD licenses the standard. It's a nice old language that no one really adds words or meanings to. I think that'll fix the gratis/libre issue. If it worked for the Catholic Church, it should work for the rms...
    • by h4rr4r (612664) on Wednesday July 09, @12:57AM (#24111933)
      No one is forced to use your code. If they don't want to abide by the license they can write their own code.
      • Nah, they'll take your TCP/IP stack and stamp "(C) Microsoft corporation" on it.

        Just kidding.
            • by Max Littlemore (1001285) on Wednesday July 09, @02:43AM (#24112889)

              Imagine that you wanted to start your car making business... and then you find out, that unless you are able to build a Ferrari, you'll fail: the market is filled with crude and unsafe (but extremely cheap) Chineese cars, which you can't compete with on price.

              That is the situation where GPL leads us to. Inability for small companies to profit from mplayer code means that only large companies like Microsoft or Apple will be able to sell closed source video players.

              That's it... /. is over. Here we have a car analogy in a flame war about software licenses which mentions Apple, Microsoft and media players.

              Now what is there to live for?