"Of course you do. GCC was shared to great effect with Apple." - Obviously when I said "sharing" I was talking about using my code in their products. But you knew this.
"Furthermore, when somebody writes MIT/BSD code (for example Apple), they share it with you because you can put it under the GPL. But when you write GPL code, you don't share it with them because they can't relicense it as MIT/BSD code."
That's fine. They're happy for me to not share any changes I make with them. They explicitly told me this when they released it under MIT/BSD. That's their choice, and they are free to make it.
I wouldn't be happy with that arrangement if it were my code, so I choose a different license. As is my choice. If I spend time working on their code, my changes are going to be released under the GPL, because I don't want my code to be used in closed source software. Where's the problem?
So yeah, it sucks that they can't re-use my code. But that's their choice. And I'm assuming they're happy with their choice because of the license they chose. if they weren't happy with this arrangement, they'd have chosen the GPL.
[edit] Also, even if I do this, I am still sharing my code with them, as long as they are happy to keep it out of closed source products. If they think it's more important that people can write closed source software with their code, than integrate my code into theirs, that's fine. Again, their choice. Everyone is free to do what they want. Even people who write closed source software. They are free to open up their code to me if they want to use mine.
>That's fine. They're happy for me to not share any changes I make with them. They explicitly told me this when they released it under MIT/BSD. That's their choice, and they are free to make it.
Thank you for putting it so well. I'm amazed by the number of comments on this page that disparage GPL developers for not sharing reciprocally, while promoting licenses that intentionally don't require reciprocal sharing. It's nuts.
The GPL developer's idea of sharing is sharing on his terms. The BSD developer's idea of sharing is sharing on the other person's terms. Of course BSD developers would like GPL developers to share on BSD terms instead of GPL terms, and of course GPL developers have no problem whatsoever with BSD developers sharing on GPL terms, because they already do. So it's quite easy to see how from the BSD developer's perspective, GPL developers are greedy. To counter this, the BSD developers don't want to enforce the four freedoms, which is unprincipled from the GPL developer's perspective.
Here's a different perspective. For context, I don't write much general-purpose software, but I am writing one or two free/open textbooks[1,2] (for statistics/econometrics) and I've thought a lot about how they should be licensed. I think the issues are similar.
My biggest concern in this project is "abandonment." There are lots of fantastic books that have since been abandoned by their authors and are no longer suitable to assign for a class---sometimes the author died, sometimes they moved onto other projects; a few key chapters might still be relevant, but I can't expect students to buy 9 different textbooks and read one or two chapters from each one. There are even completely free textbooks (Bruce Hansen, an extremely well-respected econometrician, has one[3]), lots of teachers have online lecture notes that are quite good, some of the stuff on MIT's OCW are excellent, etc. But I don't know what anyone's plans are for maintaining those resources, what direction they plan to go, whether they will keep them free in the future, and so on.
What I'd really like to do is be able to maintain my own copy of this material so that I can continue to add to it if the original author loses interest, correct typos, etc. For most of these books that's impossible because they aren't licensed for that (even if the book is out of print). But even for Creative Commons books it's not feasible, because they only distribute the pdf. If you look at Hansen's book (link below; it's not CC, but it's representative of the material), you'll see that there's a lot of math in these books, so backing out a human editable version of the text from the binary would be a lot of work.
So, I think that there should be free textbooks and I know that textbook projects are often abandoned (or eventually made non-free) by their authors. So it's pretty clear to me that the best way to have there be free textbooks is to write one (unfortunately, since it's a lot of work, but I do have lecture notes from when I've taught these classes as a starting point) and to use a license that entitles anyone who gets a copy of the book to also have a version they can edit and maintain. The GNU Free Documentation License[4] is the only license I know of that does it (it's the GPL of documentation), so I chose it instead of any of the CC licenses.
The FDL is more burdensome than I need it to be; if someone prints out a chapter of the book and hands it out to his or her class, I don't really need every student to get a printed version of the FDL (I'm fine with the professor just telling them about the FDL), but on balance I think the license makes the project stronger. No one needs to worry that I'll abandon or derail these books, because the license guarantees that they can fork them (no matter how they originally got a copy of the books).
I don't think that people who use CC licenses for educational material are unprincipled. Even though I think that the FDL is a better for projects like mine, it's great that they're making the material widely available (even if I worry that it will eventually be abandoned, the fact that I can redistribute their binaries is very nice); and I definitely don't see why they'd think that I'm greedy for choosing the FDL.
It's a fine option, but over, say, 30 years (well within the lifespan of a good textbook if it's getting updates) there are likely to be copies of the book that aren't accompanied with the source code. Especially for books where instructors might want to make printed copies available (less so for my books, but definitely a possibility for textbooks for 300 student introductory classes). IMO the FDL makes that scenario less likely and so strengthens the project which is worth the added inconvenience of the license.
The FDL also allows commercial use and textbooks can be expensive; I think it's likely that a publisher would try to bundle or repackage a free book if they could make money off it, and I don't think they're too likely to make it obvious that the book could be downloaded for free unless they're required to. CC NonCommercial would be less free than the FDL; I don't mind someone else making money off the books per se (especially if they are providing real value, but even if they're not), but a lot of the strategies that many textbook publishers use to generate revenue don't serve students very well and would weaken the project.
Like I said, I appreciate the effort put out by people making educational material CC, and I appreciate it even more if they make the source available. But for this type of project I think the source being available is the most important thing so I've chosen a license that makes it mandatory. For other projects I might decide differently.
I think for physical books it's much easier to make money with a copyleft license, so it does weaken the argument for allowing closed source books.
I would still personally choose a permissive CC equivalent of a BSD license though (CC BY 3.0), if only because I want other people writing books with permissive CC licenses to be able to incorporate my material. Also, for a closed textbook, a publisher might want to take a couple chapters out of my book, or 10 of the images, and I'm not okay with limiting the amount of quoting.
> I wouldn't be happy with that arrangement if it were my code, so I choose a different license.
If you're approaching this from an "ethics of sharing" stance, then what what you're actually restricting is somebody else's use of their own code. Your code never disappears/changes/gets relicensed, it's their code that you're staking a claim to.
Now, if you're approaching this from a stance of withholding certain valuable rights to your code, such as the ability to be the only person that licenses closed source usage, then the argument is a bit more logical.
> They are free to open up their code to me if they want to use mine.
"then what what you're actually restricting is somebody else's use of their own code. Your code never disappears/changes/gets relicensed, it's their code that you're staking a claim to."
This is some very bizarre reasoning. They still have their code. They are still free to do whatever they want with it. If they want my contributions in their product, they made a serious error in their license choice. Maybe they should have used the GPL.
But do you know what? They can use my code. They are completely free to use my code. As long as they only use it in GPL software.
"I do. Under the MIT license."
By saying this, you are saying to me that I am free to re-release your code under the GPL and add my own contributions. If you are not happy with this arrangement, you have made an error in your license choice.
I have not made any errors in my license choice. It behaves exactly in the manner I want it to.
It's like this. You have different ethics than I do or pbsdp does. We believe it's unethical to impose restrictions on developers, and if that means we can't guarantee the freedom of users then so be it. You don't have a problem with imposing restrictions on developers (at least restrictions that you like), but you do believe it's unethical not to guarantee the freedoms of users.
There's no way to resolve the conflict. We just have incompatible values and understandings about what sharing means. Our values are more liberal (the FSF uses the word permissive), so that means that you're free to exist in our world. We'd like to be part of your world as developers, but we aren't willing to embrace your restrictions.
Absolutely. Like I said, I have no problem with other people choosing other licenses which meet their requirements. My requirements are different. The GPL is most appropriate for myself.
I don't choose a license to meet my requirements. I choose a license to meet everybody's requirements. So when you don't choose a license that meets everybody's requirements, it makes me question the value of the freedoms it provides, and I end up wishing you'd chosen something more open.
It's funny that you think your license choice meets everybodies "requirements" and mine doesn't. I think the exact opposite: I think yours meets the requirements of yourself and other developers. In comparison, I think my choice meets the requirements of humanity. Especially in the long run.
You wish I'd chosen differently. I also wish you had chosen differently, as currently from my point of view, you're helping the propagation and spread of closed source software.
Simply: I don't want my code to be used in closed source software, so I can't use your license. That choice is simply not open to me.
The pros of GPL software address the cons of closed source software, and the pros of closed source software address the cons of GPL software. So by choosing the BSD I'm actually helping spread both of these things, because they can both incorporate my code. It's a neutral position philosophically.
> By saying this, you are saying to me that I am free to re-release your code under the GPL and add my own contributions. If you are not happy with this arrangement, you have made an error in your license choice.
No, I'll remain content with my license agreement, I'll just think that you're a dick.
That's OK, though -- some people behaving like dicks is simply the cost of collaborating openly.
I wasn't attacking your choice. I was explaining what your choice consists of and why I made a different one.
If you don't want people to do something particular with your code, yet you choose a license that permits it, then by definition, you chose the wrong license.
I'm going to chalk your childish, immature and unprofessional insults down to frustration. And to prevent further noise, I am not going to reply to any further comments made by you.
"Furthermore, when somebody writes MIT/BSD code (for example Apple), they share it with you because you can put it under the GPL. But when you write GPL code, you don't share it with them because they can't relicense it as MIT/BSD code."
That's fine. They're happy for me to not share any changes I make with them. They explicitly told me this when they released it under MIT/BSD. That's their choice, and they are free to make it.
I wouldn't be happy with that arrangement if it were my code, so I choose a different license. As is my choice. If I spend time working on their code, my changes are going to be released under the GPL, because I don't want my code to be used in closed source software. Where's the problem?
So yeah, it sucks that they can't re-use my code. But that's their choice. And I'm assuming they're happy with their choice because of the license they chose. if they weren't happy with this arrangement, they'd have chosen the GPL.
[edit] Also, even if I do this, I am still sharing my code with them, as long as they are happy to keep it out of closed source products. If they think it's more important that people can write closed source software with their code, than integrate my code into theirs, that's fine. Again, their choice. Everyone is free to do what they want. Even people who write closed source software. They are free to open up their code to me if they want to use mine.