Slashdot videos: Now with more Slashdot!

View

Discuss

Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).

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.

tester data

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.

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.

Some code for the mind, some for the heart, and some for the wallet.
BSD licensing is predominantly for the mind: sheer pursuit of technical excellence, don't bore me with politics and philosopy.
GPL licensing is for the heart, for abstractions that may not play well in the head of another. Technical excellence is fine, but societal "improvement" is the driver.
Proprietary is for the wallet. And let's not kid ourselves: something as tedious as getting the printer driver to work right is something I would

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.

I prefer the windows source code license, the true name of which I can't even mention here without being raped by lawyers. Vicious, orc like lawyers in blood stained expensive suits. But the language, the dark language of Microsoft legal composed at the feet of the Dark Lord Gates himself, has such power. One glimpse at it damned de Icaza to a life as wraith.

Mozilla is in fact under a triple license at the choice of the licensee. You can pick whether you want to reuse its code under the LGPL, the LGPL-like MPL (weak copyleft, allowing proprietary derivatives as long as modifications to the MPL code is published with source and under the same license) and the GPL (strong copyleft, no proprietary derivatives). In any case, all three of those licenses have some form of copyleft.

You know, the grandparent poster already explicitly mentioned Linux and MySQL as successful. Now, gcc is certainly a worthy addition to the list.

However, you seem to think Linux is the be all and end all of open source software. Apache runs on far more computers than Linux machines. Libraries like libjpeg, libpng and zlib are in wide use across every OS out there, and none of them are GPL, which is no doubt a large factor in their success. SQLite, too, is spreading like wildfire.

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.

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

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

Here you are assuming "non-free" always means non-free-gratis as well non-free-libre. The critical point for me is, noone can use Qt to write closed source freeware and, personally, I just don't see what harm it does to the development of Qt for a closed source freeware application to use it.

This article was really nothing more than a pointless one-sided rant. Why is flamebait being counted as being worthy of being posted?

For all I care BSD fans can release their code under a BSD licence and GPL fans can release their code under a GPL license. To each their own. I use the GPL because I don't want my code to become irrelevant as changes are made by others and I don't want their changes kept locked up from the entire community. If others don't care about these things then it's up to them if it's

You don't have to read the article very carefully to realise that this is exactly the misunderstanding the author is trying to fight.

Code != Project

If you don't get this then you'll never have the necessary understanding to engage with advocates of the BSD license in any meaningful way. You can't argue meaningfully against something that you don't understand.

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.

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.

You're working on a flawed assumption: That by default code (or any creative work) has no restrictions on it.

This is obviously false. If I create some code and don't attach any license to it, that code isn't 'free'. You can't copy it, you can't distribute it. This is covered by copyright law. The GPL license basically says "Here, take this code, it's free. Do what you want with it, except distribute it. If you want to redistribute, you've got to follow these criteria". That's it. There's nothing stopping you taking GPL code, linking it to whatever you want and using that. Google have a ton of GPL code all hooked up to proprietary stuff and have no legal issues because they don't *distribute* that code to customers. They are the end user. They are free to do what they want. GPL code is free to use. GPL code is not free to distribute, unless you follow some criteria.

The GPL doesn't restrict what you can do with the code, copyright law does. The GPL is permissive, but it's not fully permissive which is what the BSD could be described as being. This is fine, and is an idealogical difference, but please lets not go around saying that the GPL is "OMG TEH MOST RESTRICTIVE THING IN THE WORLD", because that just demonstrates to the world that you don't understand copyright.

The only freedom the GPL (of any version) restricts, is the ability to remove the freedoms of others.

It's really that simple. It may seem at first that it's restrictive because you can't distribute binary copies, etc.,etc. But that's just guaranteeing my freedom to inspect and modify the program. If I get a binary copy of a BSD program, even if I'm technically allowed to do anything I want to it, my actual freedom is limited because I don't have the source code. This is far less free than the situation w

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.

Of cource the customer desides the license for the code they pay you to write!

But the discussione might go like this:
I can do this in 200 hours using this and this
libary but the result must be under the GPL
(if you ever need to redistribute it) or
I can spend 300 aditonal hours reimplementing this
GPL-libary or you can buy this similiar libary from company X for Y$(probaly cheaper than reimplementing, but the we will have to rely on company X for bugfixes)

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.

Face it, this is the internet. Everyone has read your arguments, the counter arguments to you arguments and the counter counter arguments and so on ad infinitum. They've made a decision about this stuff and advocacy won't change that.

If people disagree with you, the correct course of action is to troll them for the lulz.

Regards to sig: What problem are you having with plain old text? I've been using plain old text mode for years, and it was perfectly preserved even in this latest Slashdot. Check that it's set properly in Options and maybe double-check it in your user options as well.

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?

If you're not distributing a binary (or code), then it's not distribution. A website is a service. The website user doesn't execute the code, the service provder's servers do. The user just tells it to.

NOTICE: This software product (together with it's accompanying documentation, the "product") is the property of ALLIED REAL SOFTWARE ENTERPRISES (ARSE). The product is made available to you, the reader, subject to the following license agreement ("LICENSE"). Please read this license carefully before doing anything else. No future copy of this license will be available to you in any form as it will be unnecessary.

By reading or understanding this license agreement, you agree to be bound by it in perpetuity.

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.

"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"

I don't know much about the open source OS community, but it seems to me that this isn't true. While the open source community spends 100s of man hours improving Linux, Apple can study its source code and implement what they want into their own kernel in much less time; meanwhile, they can afford to hire programmers to improve on top of all this. Therefore, I think the steady-st

Well, I wasn't thinking of ripping off source code so much as ripping off ideas and algorithms, neither of which can be copyrighted (nor can they be covered by GPL). A decent engineer can read code and understand it well enough that there is no need to "copy" the code.

But the thing is, as long as you even looked at the code, legally speaking, there is the lingering doubt of whether the code you write can even be considered original.

This subject comes up not infrequently on mailing lists of GPL projects such as Maxima and GNU Octave. They recommend that if you are going to write new modules (with more recent efficient algorithms, for example) for them, then that you DO NOT LOOK AT, e.g. Matlab code implementing the feature, even though that code also uses publicly known a

The problem with the "total altruism" of BSD ("makes all software better") is that it doesn't actually serve the greater good in the long run.

If you release your code under BSD, and a big company uses it in their proprietary software, then in your altruistic view you've made one piece of software better. (And let's ignore the ideology of whether it's proprietary or not).

If you release your code under GPL, and the big company uses it, and return their changes back to your code, now the original source is muc

Do you work in the embedded applications industry? I can tell you that Linux is and remains quite toxic to the business community b.c. of the GPL and the perception of substantial legal risk thereof. Cisco for instance is making a push to use a FreeBSD derivate in all of its consumer products--displacing in some cases existing linux based hardware.

BSD has enjoyed tremendous penetration into the commercial marketplace. Linux is included in a handful of devices--decisions attributable to a wave of linux euphoria which has now mostly dissipated. Organizations are now asking which OSS is safest base from which to derive projects rather than associating an OSS base with Linux. The result is a renewed and overwhelming focus on skipping Linux and sticking with BSD derived code.

As a matter of fact, I do work in the embedded industry. More than anything I am still seeing commercial RTOSes like Nucleus, MicroC/OS, or VxWorks being used on embedded devices. Linux is gaining popularity, but in general you need a system that is more powerful (more RAM, better processor, an MMU).

Linux is mainly being opposed by companies that want to limit what you can do on their hardware. For example, Cisco was getting upset with people hacking their WRT54G rou

This is silly. Why are you saying Steve Jobs wouldn't use Linux? They are happy enough using GCC. They are already using a lot of BSD stuff. Are you thinking I meant Apple would be using Red Hat or something? I was referring to the Linux kernel itself, and there is little to keep them from switching over. Am I to assume that if it is in the best economic interest of Apple to switch to Linux, that they won't do so?

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.

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.

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.

As a due-paying member of FSF and a self-described libertarian, I resent that comparison.

Copyleft is no more contrary to concept of freedom ("real freedom" or not) than prohibition of slavery is.

I like to liken BSD (and its relatives) to a society where everything is so... laissez-faire that one person can own another person (by contract or payment of money), whereas GPL would be a society that decided that freedom to restrict others' freedom is not a freedom.

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.

Would have been better if you removed your bias, but you did well resisting it in any case.

It is true that GPL advocates consider it important that the user of the software be able to modify the software and redistribute the results.. and that includes the copies of the software the are embedded in some other software.

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.

Of course it is. It's not about the abolishment of private property, but about collective work toward a common goal. You know, the good part of communism.

It is not anti-business.

That's true, except when your business relies on selling copies of software. Free/open source software will eliminate that business model given enough time, just as the automobile eliminated the horse and buggy.

Yes, but you could hardly argue that the automobile was anti-business. Instead, the business opportunities changed. New opportunites opened up that were far more lucrative and--ultimately--successful.

Free Software is powerful because it allows others to build up services and products. In many cases, you can start off much further ahead than if you started from nothing. My router is a MIPS processor running Linux and a bunch of commodity daemons, and I know it was not significant work for Linksys to design the firmware. It was all some configuration and Web-based configuration interface glue. The source code is available, others have improved it, and Linksys sold these routers quite successfully.

Meanwhile, I knew the router wasn't doing anything too strange and I know I can continue to use my router and manage updates on my own or with others, no matter what Linksys now does. It was peace of mind for me and well worth the $70 I spent at the time.

After I posted, I thought a bit more about the question and decided to throw in a different analogy.

A energy-matter conversion device (a replicator in Star Trek terms) would be incredibly anti-business, but they'd be a great invention. If one assumes a nearly infinite supply of energy, the price of quite a few goods would be zero.

When proprietary software vendors speak of FOSS being anti-business what they are really doing is asserting the broken window fallacy [wikipedia.org]. That is to say proprietary software costs money, which is a business transaction while FOSS (usually) costs nothing which isn't a business transaction.

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.

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

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:

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

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.

Sorry, but that's insane. You may dislike the other term ('Free Software' if you call your work 'Open Source' and 'Open Source' if you define your work as 'Free Software'), but the Linux kernel is both Free Software and Open Source, Python is both Open Source and Free Software, and so is all of the software in Debian main.

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.

both GPL and BSD advocates want to be associated with the word "free" . . . these are just word games

Most politics is "just" word games. The question is not who gets to be associated with the word. The question is who gets to define what freedom means (for software, but also more broadly). That matters very much.

Similarly, "piracy is theft" is an attempt to define piracy as theft - to establish (or change) the meanings of both words. The same is true of the opposing claim that piracy is not theft. Eve

Maybe it's just late and I glazed over something, but it seems like he missed the primary difference between the two licenses: WHO the license is free for. With BSD code, it's the developer; developers can do just about anything they want with your code. For the GPL, it's the end user; they are guaranteed to be able to modify/update/fix any incarnation of your code*.

Certainly there will always be the (rather pointless) philosophical question of which is more 'free', but what's the point? They're both pretty darn free, but take their freedom in different directions. Why not just choose the one that fits your vision of your project best, and understand that other licenses have their merits too?

*For those keeping track, this was the primary purpose of the GPL3. It ensures that GPLed software on protected devices can be updated.

Pretty good analysis you've got there. That's speaking as someone who is not a coder, and takes no part in these discussions, but I have watched them several times, never coming to a definite conclusion. That is, I don't favor one side over the other. It would make me pretty angry and sad to find out that Microsoft were making tons of cash from a piece of code that was originally GPL or BSD or whatever. Only because I see it as the big guy profiting from the little guy's work. But I also love the BSD way of

My god, this notion that "you're not supposed to charge for distributing GPL software" is completely WRONG.

In the lemonade example, it starts in the wrong track, because we're not talking about lemons, but recipes. So if I am a BSD license user and someone gets my recipe he can sell the lemonade for whatever and keep the recipe for himself, change it, or redistribute it as he will.

If I am a GPL using person, if you take my recipe and use it, you can sell the lemonade for as much as you like, you just

I just want to mention a variant of the GPL that is often used and rarely noticed. All those standard header files included when compiling with GCC are Runtime GPL. If you take the point of view that the GPL is viral, you can think of the Runtime GPL as the completely non-viral GPL.

Using some variants of the GPL linking exception, it becomes possible to release code that must stay Free (as in Libre) in derived works without requiring every last bit of the derived work to be Free.

It as close as you can get to a compromise between the BSD and GPL licenses as far as I am aware. The biggest downside is that neither side believes the license to be trustworthy. It is too GPL for the BSD folks, and not GPL enough for the GPL advocates.

I really think the GPL vs. BSD license debate really comes down to the differences in the point of view of who or what is actually "free".

In the case of the GPL, it is the code that is free; it is born free and stays free. And modifications will still keep it free. For BSD, it is the person who obtains the code that is free; the person can more or less do whatever he/she sees fit with the code.

So, I think there is a fundamental philosophical difference of which entity the freedom is assigned to.

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

It seems to me that there is enough room for both licenses in this world. There's no need to pit them against each other as enemies. In the end it's the author's code, and if he wants to make a license that requires you to film yourself doing a back flip and send it to him before you can use it, then so be it!

All this shit about communism and Laissez-faire is ridiculous. Both licenses are built upon US copyright law.

As far as I'm concerned the author totally misses the point with the GPL.

I don't care about "my code being free" the way he expresses it. What I care about is to create a level playing field between free and proprietary software and nurture the existence and proliferation of free software. With BSD-style licenses the proprietary software developers always have an upper hand in the race for consumer mindshare and userbase since they can take any BSD code but doesn't need to (and most often doesn't) contribute anything back. They can always stand on our shoulders but we can't stand on theirs so they will always be a head higher.

For free software to proliferate, which is a personal goal for me for many good reasons (freedom to tinker, freedom and savings for enduser, privacy protection, establishing of standards, sharing of wealth, better for developing nations, faster inovation etc) we need a bigger userbase which currently is occupied by proprietary software.

We will not achieve that by remaining upstream providers for proprietary projects, which BSD-licensed projects often become.

The BSD-licenses have their place in certain projects where it is more important to advance the technical field for both proprietary and free software than advancing the marketshare of free software.

Without marketshare we are always bound to play catch-up with standards, hardware support etc. and as a community remain marginalized. The GPL, with it's restrictions against inclusion in closed projects, helps us to gain marketshare.

I've been dealing with BSD licenses for decades, and GPL licenses since Richard Stallman and his comrades first created them. I'm sad to say that this original post is absolutely full of strawmen. People like *THIS*, who skew the basic terms of both sides, are much more of a source of GPL/BSD license flaming than almost any of the actual software authors and license advocates. It starts with is original statement 'BSD projects are free, but GPL projects stay free'. BSD projects are under the control of the project owners. GPL projects are under the control of the users. The difference is _that_ simple.

He continues iwth his skew: When he says 'But, I digress. I am here to explain, not bash, so please excuse this little rant.', right after insulting the free software process of nabbing snippets from one project to use on another in the GPL world, it's adding insult to injury. This rant is inexcusable, and ill-founded. Most projects do not benefit from a complete rewrite, because few programmers are capable of doing as thorough a job as a few years of evolution and community involvement can provide. If you think I'm kidding, take a look at all the software building tools published, and at how GNU-make continues in such widespread use because the problems that the new developers think are so devastating pale in comparison to the ones we solved 10 or 20 years ago with basic Makefiles, and we know how to scale them and manage them.

Then there's "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." Complete nonsense: there hundreds, if not thousands, of dual-license projects in broad use. It's awkward, but effective.

And there's "By the laws of private property in the real world, my ownership was relinquished at the time when I handed him my lemons." Complete nonsense. There is a sign up that says 'If you make lemonade from this, you have to share'. Plenty of apartment-sharing situations and households work this way: when mom or dad shows up with the groceries, and the other one cooks, everyone gets some of the food. It's part of why they bring home the groceries: the teenager does not get to take all the lemons from the refrigerator and make and sell lemonade and expect dad to buy more lemons everyday.

His following claim that "The derived project is wholly owned by whoever wrote it, even if it uses other people's code." is also complete and utter legal nonsense. Copyright doesn't work that way: duplicating paragraphs, or pages, or chapters out of another work can indeed be a violation of copyright. Copyright law is tangled, and such complete disregard for its actual use simply obscures it. Software copyright is particularly nasty: If you look at a typical closed source license, such as a Microsoft End User License Agreement, you'lll see a complex and far more intrusive set of copyright restrictions.

I've worked with BSD licenses on a number of projects: they do have their uses, but this is just insulting to the GPL community. And it makes the BSD license users look bad because it claims to speak for the rest of them, when there are plenty of better reasons to use BSD licenses. (Controlling one's own project, and making money by selling enhanced proprietary components, is a legitimate business model, for example.)

Isn't it nice to have the power to define your enemy? Given a sufficiently inaccurate definition, anyone can be reviled. It's called "Straw Man."

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.

Wow, kicking the article off with an unsupported ad hominem attack. You're really not seeking common ground here, are you?

I'm not going to analyze the whole piece, because this emotional little rant doesn't warrant it. But the ending is just as illuminating:

I will never agree with your philosophy, but at least you'll know you were understood.

"I will never agree with your philosophy" is the sure sign of a zealot. "At least you'll know you were understood" implies that blame for the vitriol between the contemptable jihadists on both sides can be layed entirely at the feet of your enemy.

This is not a religious war except for those who make it one. Don't frame your argument against the least rational or most distasteful (to you) of your enemy's positions. Seek the most rational, most appealing, positions and try to agree with them first. Then frame a discussion around why a rationally self-interested individual would choose each proposition. It will make a more interesting article, not add to the stick-throwing and name-calling, and as a result you will look less like Bill O'Reilly and more like Socrates.

All that said, the fact that you made an attempt at all and were willing to put it out there to be scrutinized at all is commendable.

as long as they provide the source for the tcp/ip stack and bundle it with windows, i don't mind.

The problem with BSD is that they can get away with it.As long as they put in some about box the sting that used to be required by the old BSD back then, they are OK.You won't get the source.

The BSD team may subsequently fix and upgrade the stack, you don't know if Microsoft had followed the upgrade, and you don't know which modification were made to the code so you won't be able to replace the stack with a fixed one either.

Whereas GPL components have a specially crafted license that guarantees that the code will keep all attached freedoms, and make sure that, wherever the piece of code ends, the users will still be free to hack it.

BSD tries to give the greatest freedom *to developer* helping them leverage existing opensource code, without restricting what they can do with it (minus a textual mention that used to be required in the old BSD), even use it in completely closed projects. You, the developer, have the right to do whatever the fuck you want to do with a piece of code, even if that means blocking those freedom for everyone else and making sure you're the single person that can do whatever you want to do.

GPL tries to secure *users'* freedom : no matter what the developer tries, the code will remain free and the user will still have his basic freedoms guaranteed. Wherever the code ends up, you as a user, will still have the freedom to do whatever the fuck you want with it (as long as you pass along that freedom to the next in chain).

Now whichever is best for you between BSD of GPL is a matter of preference :- Will you mind that someone else will take your code, stamp "(c) Microsoft" on it and no further improvement will be exchanged between the community and that fork ? Preventing forever users to do whatever they want with it ?- Or is it important for the piece of code you pick to give, the developer total freedom to do whatever you want with it, even use it in a closed source project ?

I personally prefer the GPL because of the guaranteed perpetual freedom (for users to hack it) that comes with it.

That's a perfect example of what the article is talking about. You see it as a problem, but BSD advocates see it as the system working as designed. Microsoft isn't "getting away" with anything - they're accepting an offered gift and using it like the givers hoped they would.

I personally use the GPL (and even v3 these days) for most of my non-trivial projects, but I can sure appreciate the mindset behind BSD.

see it as the system working as designed. Microsoft isn't "getting away" with anything - they're accepting an offered gift and using it like the givers hoped they would.

If that's what I want, I can (and have in the past) do it better by releasing the software into the Public Domain. BSD licenses tend to have annoying little attribution and advertising clauses and whatnot.

Then don't use it, and deal with it.It is also impractical for me to build a Ferrari, I don't steal them.

Ofcourse you can decide what license your code has. You can make it closed source if you like. But then you can't claim your code is more free, can you? You restrict others with your choices.

I know you're not talking about closed source but about GPL, but when I read your post, I realised that this exact same argument works for both. BSD grants freedom to people who want to use your code in their project. GPL and Closed source restrict that freedom. Closed source does it to keep freedom only to the original creator of the code, and GPL restricts freedom of derivative projects (to a much lesser degree, obviously) in order to ensure freedom for everybody else.

But either way, your "deal with it" means that derivative projects have to deal with a limited freedom.

Then don't sell the code - sell a maintenance contract, or some other service around the code. For the video player you mention:

Embed the GPL'd code into a product. Make the product shiny, stylish and nice (hardware). Sure everyone will know HOW the product works - but people will pay for a **whatever** that looks/feel nice and/or works well.

Red Hat are doing OK. Even Sun Microsystems are doing it now.

The GPL isn't "anti-business", it can work. Just stops you making money from software like Microsoft do. You need to "add value" to the product.

The GPL isn't really about some abstract "protect the code" idea - it IS about protecting the end user. GPL'd code cannot come with a "ransom note":

If the success of your project is predicated on the obscurity of the implementation then the GPL is useless for that. There are legitimate reasons for this, but they are fairly rare. Most business case around software are quite compatible with the GPL.

It's a license: permission to reproduce and distribute a work is a uniloateral action on the part of the author. Without a license, the Berne Treaty (of which your nation is a signatory) says you have no right to reproduce and distribute.

Contracts are bi- or multi-lateral actions in which every party gives up something in exchange for something else. Copyright license is not contract.

If you succeed in making programming not profitable, then I just start violating GPL. And luckily for me, a Russian citizen, no Russian court is going to do anything against that, because GPL status in Russia is still unclear (we're not bound to contracts that are not written on paper, and license agreements in foreign languages are invalid if signed between two Russian subjects).

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.

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.

Cry me a freakin' river. Your problem is that you're lazy and want someone to hand you a market.

Here's a novel concept: find something and make a plan to get people to want it. When every TV had rabbit ears, someone figured out how to get people to pay to watch it. When water was free, someone found a way to sell it. The difference between those people and you is that they got off their butts and made it happen. They didn't sit at home whining that someone else was already giving something away.

Can't compete with free? That's your problem. Either give people a reason to pay you anyway, or move on to a market that's not already wrapped up. I hear kids are buying video games these days. Could you do something like that, or would that be too much work for you?

If the viral GPL gains sufficient foothold, than there will be NO part of the market that is not considered a commodity, and there will be no place for the vast majority of programmers to make any money, and software will die.

That's ignorant. Something like 95% of programmers are employed to write in-house software for their companies to use, and those jobs are perfectly safe from "the viral GPL". The only people who would stand to lose are the ones writing commodity software in the first place.

You are essentially whining about the nature of free market compeititon.It is the nature of the market to make EVERYTHING a commodity. Even ifit is tied up in patents and copyrights, eventually even those are meantto expire. Someone will build a better mousetrap. Someone else will do itcheaper. You don't even have to worry about a bunch of STUDENTS replicatingyour idea and giving it away.

The fact that Apple can't stagnate or it will become irrelevant is whatcauses Apple to continue trying to push the state

Based on the description of the article, I dear say it has increased my liking of GPL over BSD. Before I didn't have any significant preference other than that my OS of choice utilized the former. But if the GPL "ensures all derived works are also free." Seems that it is the ideal choice (for me) for any free work that I do. If I am paid to do open source of course, the payer gets to decide. But to address the parent, I can no more force someone to open source an app, than I can force them to use my code.