Is BSD The New GPL?
zedshaw.com
zedshaw.com
Specifically; I was paraphrasing @mjmalone's comments yesterday where he and others were pointing out what they felt was an issue with this.
I don't think I, or anyone else who has been discussing this is attacking you, or attempting to diminish the fact you have released Lamson at GPL. I think we all appreciate anyone releasing something as Free/Open Source software, period.
However, we can lament the fact we can not use/extend (namely - import) your code to add to it without triggering the GPL requirements within our own code.
For me personally, it's an easy choice - I push stuff out under MIT/Apache 2.0/etc and just don't touch/patch/extend things under the GPL. It's your choice, and that's what great about Free/Open source software, and no one is suggesting you, or I, or anyone give up that freedom.
Additionally; some of us write software for a living, for companies who pay us money. Not all of them are these evil, soulless entities you seemingly despise. I, and many others have been lucky enough to work for companies who use open source software, and give back as well, in the form of released code, patches, etc. We don't "love" evil corporations - we simply work for those which are not evil (in our eyes) and we attempt to promote ethical open source behavior within those companies. Heck; some of us have even gotten to dedicate time to open source projects on company time.
Even for those companies (ones with an open source culture), the GPL can become more of a pain to deal with, and can quickly outstrip the benefits of using that GPLed software rather than "using something else".
Zed's point is that the "BSD folks" seem to complain more when someone releases their code under the GPL than when a company releases this same code under a completely proprietary license. In case of the GPL'ed code you can at least study it, get some ideas, and perhaps provide your own BSD'ed implementation. In other words you complain more about people that give you something than about people that give you nothing. I do find this strange.
Re-implementing code with another license is a massive gray area, btw. This is why reverse engineering groups go to great lengths to make sure the people working on things have never seen the licensed code they're attempting to emulate.
One of the big reasons it has spread so much and done so much good in the open source community is precisely because it is LGPL. Consider whether you think Apple, or Nokia, or any other company along that chain wouldn't have just closed sourced it at some point if it wasn't because it was specifically "copyleft".
Maybe Apple, Nokia and Google would have contributed any changes they make anyway, because it makes merging easier and any competitive advantage they have does not come from their rendering engine.
Maybe more companies would have used it, possibly instead of licensing Opera. Maybe some of these would have contributed their changes back as well.
Possibly the tradeoffs involved in BSD versus (L)GPL can be measured, but pointing out examples of successful/failed projects using one or the other is not helpful.
For starters, the argument that "perhaps some" of them would have behaved the same is no where near as nice (in open source terms) as "absolutely all" behaved this way and will continue having to behave this way.
We can also analyze the behaviors of some of these companies. Just look at Safari for example: the open sourcing stops precisely where the licensing requirements stop: the engine is open source but the browser itself is closed source. Apple has unquestionably contributed the most to this web engine, and they are unwilling to contribute any more beyond their legal requirements.
Additionally the effect this has created in the web world is pretty powerful. Companies are now in a position where their choices are investing a tremendous amount of work in creating a new web engine or using the best existing web engine to be competitive but having to contribute all their changes back. This is particularly true in the mobile web space where WebKit is essentially the only engine that has proven itself capable of providing a desktop caliber experience. In terms of open source goals, there could be no better situation. You basically have to use an open source engine to be competitive, and the most competitive of these engines requires you to contribute back to the community in a space that is dominated by commercial investment.
I wonder how many failed Linux distributions there are.
osx : darwin :: safari : webkit
Notice how the relationships revolve around the engine vs skin, not what the GPL requires. In other words, apple protects what makes them apple, not the underpinnings, at least in these examples.
On the other hand, maybe yet more would have used the code, and some of them would have contributed code back.
Copyleft vs. copyfree is not a zero-sum game. Choice of license doesn't only affect the restrictions placed on those who use the code; it also affects the likelihood that someone will use it at all, and we really don't know how many people avoid using some code for a given license and might have contributed their improvements to the community.
GPL-licensed software is Free software that stays Free. BSD software can become closed any time, something GPL software cannot. If you contribute to a BSD'ed project you take the risk of your competitor taking your code and making it a competitive advantage against you.
We may say GPL'ed software is "imprisonment resistant".
As for taking in Lamson code into Django, all that's needed is a GPL'ed fork of Django that can follow trunk very closely. GPL'ing Django is, in fact, turning that "imprisonment" mechanism on its head.
Any such code, of course, would have to be kept out of Ellington, for instance.
edit: second part of second paragraph was wrong
FTFY
> If you contribute to a BSD'ed project you take the risk of your competitor taking your code and making it a competitive advantage against you.
The GPL actually has more value as a tool of anticompetitive advantage than the BSD License:
I figure the most plausible reason for this inconsistency is this: the GPL code is that much more tangible -- it can be read and used, just not distributed the way they'd like. Versus BSD code used in proprietary software whose code is completely inaccessible. GPL gets the flak because code released under it feels more within reach.
Suppose Alice releases some code under the BSD license, and Bob releases some code under the GPL.
Both of them can claim that their code is "free" and "open" and other wonderful adjectives. But Bob can incorporate Alice's code without making any changes to his license terms, while Alice would have to change her license terms in order to incorporate Bob's code.
Thus, to Bob, Alice's code is "free" and "open". But to Alice, Bob's code isn't -- from her point of view she can only use Bob's code if she accepts restrictions on modification and distribution.
And so Alice -- regardless of whether it's objectively right to do so -- probably ends up feeling that Bob's putting one over on her when he says his code is "free".
In other words, it's not about someone saying "I chose this permissive license and now I'm upset that other people abused my code", it's about someone saying "that other dude claims his software is 'free' but it doesn't look that way from where I'm standing".
So in this a case of double standards by Alice?
Word "free" has lot of meanings in English language. In my native language, word "free" in context of BSD licensed code should be translated as "svoboda" (fully unrestricted state of something), and in context of GPL licensed code as "volya" (has it own rights, abilities, goals, like free human).
Uh, yeah.
Only strange because you're framing the issue with individualism. The GPL was created by a socialist and values social freedom more highly than individual freedom.
The two ideas of freedom are always in contention. Like the freedom to swing your fist wherever you like vs the freedom from getting hit in the face by random people.
This is an inaccurate way of describing what happens. It buys into an incorrect idea of "GPL as virus". Alice's code remains Alice's, regardless of whether she incorporates Bob's code. Her licensing is unchanged. The combined work has to be distributed according to all licenses that make up that work. That includes the BSD and the GPL licenses. Because the BSD requirements are effectively a subset of the GPLs, and there is no incompatibility between the requirements (i.e., BSD is GPL-compatible), then it's as though everything was under the GPL. But Alice is free to deincorporate Bob's code, and everything is as it was.
Consider this, also, when thinking about which is "more free":
Which person's code can be used with code that is distributed under a different copyleft license?
Which looks "more free" to the person (perhaps Charlene) who wrote the code under that third license?
If Alice lives in a society where murder is permitted, and Bob doesn't, Alice may feel she is "free" whereas Bob is not. From her point of view she can go live with Bob only if she accepts restrictions on what she can do. But Alice is missing the fact that by exercising her right to murder she is depriving others of their rights. And what if Alice herself gets murdered? How "free" would that leave her?
Defining concepts basing ourselves on "points of view" or "feelings" is pseudoscientific, leads to contradictions and is completely useless. So no, I don't think one should decide how free she is by merely substracting the number of things she is allowed to do from the number of things someone else is allowed to do. I'd try to grasp the big picture and figure out which set of rules will lead to a higher number of free and happy people.
Is "murder" the new "Nazi" or something?
edit: . . . and I'd like to see your statistical evidence for the GPL actually resulting in "more free and happy people". I think the BSD License is a great and subtle fishhook for pulling people into the world of free and open source software, whereas the GPL is a gigantic barbed hook the size of my head with blood and gore dripping off it (at least in the eyes of many businesses), so obvious in its intent and the difficulty of getting unhooked after taking a nibble that many of them may never give it a chance.
In short, I'm not convinced that the GPL helps. Maybe it results in a marginally higher rate of return among those who use the code. Maybe. Then again, maybe it also results in fewer people using the code, and maybe overall that results in a lower rate of return. 50% of 100 isn't as much as 20% of 1000, after all.
The BSD code he is using was given with no restrictions and his "reciprocation" is restricted code that cannot be shared in a BSD project without ruining the license.
To extend the metaphor past the breaking point: he offered it only to those willing to bake pies for others. But the partygoers just wanted dessert, they didn't want to be stuck baking for others. If you like pies and think people should bake them for each other, that's hardly a crisis.
But you're absolutely right that this is about social issues, and not pies or licenses at all. What people are really angry about isn't the pie they have to bake, it's that Zed showed up with a blueberry pie, when everyone had agreed that they would eat only apple pies. And even though that blueberry pie looks good, it marks Zed as one of the enemy. So he must be shunned.
"Look, when I bake a pie and give it away to other people, I just want other people to have the pie and be happy. Why the fuck do I have to promise to demand that other people bake pies for me if I use your recipe when I bake pies for them?"
When Steve Jobs comes to the party, you don't say to him "Look, you're not sharing your cake with us, so we're going to kick you out." You say "Holy crap! Steve Jobs!" But when Joe-decent-coder-not-a-celebrity does the same thing, it leaves a different taste in your mouth.
I think another (similar) part of the equation is the hoity-toityness of the GPL and/or FSF. Just read the GPL preample (WTF does a license have a preable for, anyway?). The first time I read it, it sounded to me like Stallman and/or the FSF were called forth from the burning bush to save us from the horrible slavery of permissive licenses. If you ask a random person off the street what sort of license an organization called the "Free Software Foundation" would use, I guarantee they wouldn't invent a whole Gettysburg address worth of rhetoric for why free software needs a handful of restrictions.
We can have a debate about whether copyleft is good or bad in the long run all day long. I'm just saying, on a gut level, on a prejudicial level, if somebody presents you with a barely-half-page BSD/MIT license of "Use this and don't sue us", and then an epic novel about how you can have patents as long as they're nondiscriminatory, or granted prior to March 28, 2007, or that we'll put you on probation for 30 days (or maybe 60) if you violate something-or-other, and you must provide installation instructions with such-and-such, and you can't distribute such-and-such in a password protected RAR... On a gut reflex level, the second one hardly sounds like free software. Maybe after researching it, you come around to their point of view. But most people don't research it, and some of the ones who do disagree.
For a specific example, there is a book called _Calendrical Calculations_ which collects algorithms (and source, in Common Lisp, IIRC) for doing numerous time/date-related conversions. The authors patented the algorithms and the formulas as presented in the book. This seems a bit odd to me - it's not like they designed the Mayan calendar; while I respect that they did quite a bit of thorough research, that seems like the epitome of prior art. OTOH, the algorithms are also released under the GPL, in the form of the Emacs calendar mode.
The book's license: (http://emr.cs.iit.edu/home/reingold/calendar-book/first-edit...)
I'm a bit confused about the ramifications here - must one just ignore all of his research if you want to release date arithmetic code under a non-GPL free license? (I prefer the MIT/ISC and LGPL licenses) I thought the GPL only covered the implementation, but the apparent issue with the book's license really confuses me. I'm interested in writing a date arithmetic library in Lua or C, since having such a library specifically inside Emacs is of limited use, and my background is in history.
In that specific case, the authors are probably willing to negotiate (and I may just be misunderstanding things) - I'm more interested in how that situation plays out in general.
This will resolve the issue once and for all.
But it will make BSD folks sound like hypocrites to the world.
And just because he didn't surround your tweet with its full context, that doesn't mean he misused it. He responded to the exact point you made. Funny that this is basically an analogue of the point he's making about the license: you say something in public and then lament that someone goes off and uses it in a way you didn't want them to.
You said that you 'lament' that you can't use his code - how could you expect anyone to interpret that as something other than caring about the license that's preventing you from doing so?
No one has been attacking him
That's not true, a lot of people have been attacking him, but if you read my comment again, you should hopefully realize I never accused you of being one of them. I accused you of ignoring his point and of needlessly whining about how he used your tweet.
Let's say you release a new Web 2.0 app as GPL and I take the code and want to make a closed-source, proprietary thing off of it. Well, I can. Since I'm not distributing the code (merely running it on my servers as Software as a Service), I don't have to contribute back. I can make additions, incorporate your additions so I don't fall behind and start making my service look better than the open source code.
BSD has come into fashion because either 1) you're not going to release the code and nether license helps there or 2) you're going to release the code in which case the GPL's length and requirements are just an annoyance. The GPL simply doesn't protect web code in the way that it protects desktop apps. And so developers feel no need to use the GPL - it doesn't offer them anything and only serves to do things like make employers nervous or the like.
The AGPL (Affero) is a different story. . .
/*
** 2001 September 15
**
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** Main file for the SQLite library. The routines in this file
...Now let's all just shut up about this nonsense and be friends :)
In the end, they proved very helpful, but the initial reaction was less than enthusiastic.
The above is the condensed version of Zed's blog post ;-)
Exactly the point! That's the only meaningful content in Zed's last two posts. But why use 10 words when two blog posts would suffice?
Zed adds a lot of disconnected and illogical ranting (e.g :-> he implies that he is owed a living because he released some open source code! yeah right!) and the attention such content lite posts receive here and elsewhere encourages more such behavior.
Either way, something like 25% of projects listed on ohloh are licensed under the GPL, so its hardly a small minority of the free software community.
About 22% are lgpl, though, so maybe that's what you meant.
We have projects under both licenses, representing a half million lines of code, and I rarely rant about licenses.
Hmmm. That statement has implications you may not have intended.
If you have something under the BSD license, you can do anything you want with it (complete freedom). This is not the case with the GPL license (proprietary apps are a good example).
This is why many people choose to use apps only under the BSD license.
This is the same formula. I would say Zed knows more about marketing than he leads on because drama is one way to really advertise things.
People and programmers especially, love a good versus, it is a natural, competitive, easily manipulated feature/function of psychology. It is possible that Zed was motivated entirely to write this just to have the GPL vs. BSD argument in public. Maybe that was the whole point.
His whole rant is because he didn't get famous for writing Mongrel. In fact, I (and just about everyone else) never heard of him before he called Rails a ghetto.
And yes, I also find him very predictable.
If you have a creative side sometimes you need to let it out other ways. The backend is very forgetting.
Zed is right, noone really does care who wrote it, they just want it and want it to work.
While I can understand saints who just contribute, I grok the argument that the author makes regarding making his latest package GPL instead of BSD-licensed if that will help him get acknowledgement and/or get paid.
Sure an software engineer can be like an artist, but preferably not a starving one.
If he hadn't written Mongrel and been quite well known in the Ruby/Rails community, in close contact with some of the core members of that community, no one would have noticed when he did his "Rails is a Ghetto" bridge burning rant.
of all the big router/switch/os vendors that have actually integrated openssh into their products that they sell and make money from, not one has donated a single dime back to the project.
http://articles.techrepublic.com.com/5100-10878_11-6063349.h...
Other large corporate users of OpenSSH have also donated (both code and money) to the project, though I don't have specific examples off the top of my head at this exact moment.
It's not a GPL vs. BSD double standard, it's a social one.
BSD shares. GPL tells you to share.
I have a kettle you can meet, Zed.
First of all how many of us deploy our applications using Mysql on Linux (both GPL'ed projects). It's not an issue. Lamson is generally for server applications. If you use it you don't need to release your application as GPL. Come on.
From what I've seen of lamson, most apps based on it will run separately from a web application and often be quite small. If your Lamson project gets large and you want to release it, what is wrong with GPL for that?
Secondly, what is wrong with Zed actually trying to make a living. Why is it so wrong for him to want to capitalize on what looks like a great project to pay his rent. When was that a crime. Those of you in salaried jobs who complain about this should be ashamed of yourselves.
When you're a freelancer like Zed you have to hustle and thats exactly what he's doing. MySQL is offered Dual License together with many other projects. I don't know how successful this has been nor how successful it will be for Zed, but he's got a right to try.
No doubt there are people doing it, but the risk is just too large for any sensible company - it would need one malicious person to leak that there was GPL code in a project, and they would have to release the source of the whole project.
The most recent example was Atari using ScummVM for Wii games: http://sev-notes.blogspot.com/2009/06/gpl-scummvm-and-violat...
Also notable was the long running Cisco case where every time the FSF thought they'd reached an agreement it would be revealed that yet another product violated the GPL.
i.e. Atari had no idea there was GPL'd code in there until they were notified. They were cool with keeping to the license until they realized there was a conflict with Nintendo's Wii API license... then they hunkered down and git tight-lipped.
That seems pretty normal. Once the lawyers realized that the company was probably in the wrong, they when into 'damage-control' mode to try and minimize the losses to Atari.
e.g. They would pay $x to the rights' holder for the code and not distribute the code until the GPL'd version was replaced with a non-GPL'd version. or they would just negotiate a price with the rights' holder for a non-GPL license of the code. (this obviously gets murky when there are multiple rights' holders; especially in code where (major) patch submitters are not required to agree to hand the copyright on their code to the maintainer(s) of the codebase just to get their patch accepted)
What's that all about?