Questions have been asked about this, and possible solutions discussed, but I can't find an actual feature proposal.
Software licensing is a big deal, and when I post to stack overflow, I as the author should be able to choose the license for my code snippets.
The license choices could be limited so that community wiki, etc. will still work. The main issue is share-alike. When I write a code snippet, I want it to be usable by professional, commercial programmers as well as those who work on open source share-alike projects. I don't want to limit professionals interested in my solution and keep them from using my code snippets.
I propose that we place a checkbox in the "answer" form, allowing authors to choose between CC BY-SA and CC BY. The fine print at the bottom of the page can say that everything on Stack Exchange is licensed CC Wiki unless otherwise noted.
I've seen the other side to this debate that I started and thought I'd share my thoughts.
Suppose, as @TRiG has suggested, I release an answer under two licenses: CC wiki and CC0. Then someone edits my answer. By many countries' laws, by someone editing my answer, they create a derivative work (meaning that they are legally allowed to modify my work and then they do modify it), so that it becomes their copyright. They now have the right to choose which license they use the derivative work: CC wiki or the other license, CC0. They can then remove the CC0 license anyway, or even close the answer to further editing by copyrighting it.
So then suppose that we don't like this, but we still want people to do what they want with our answers. So we license the entire site under CC0. Then anyone could take our answers and edit them, copyright the edited version, and sue others who try to edit it later.
This is why the site needs to have a share-alike license. If we are to expect to be able to edit answers at all, to share knowledge and improve on it at all, we need a license that will enforce that.
The problem still remains that when many people answer a hard coding question on Stack, they often answer it with a non-trivial set of lines of code, which many often simply copy and paste into their own code. The license is clear:
Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
- If I want to release the code I wrote, I must indicate both the author and which changes were made? How do I even keep track of that on an SO answer? Now, SO has given guidance on this point, but this policy still suffers from the same problems as the old BSD license, in that you have to provide a hyperlink (legally) to every user who ever touched the answer. I don't even know that SO keeps track of this information.
ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.
- So, if I want to use this piece of intellectual property in my own proprietary code, I have only a few options available:
- Completely rewrite the code. If I do, how do I show that it came from my head and is not plagiarization?
- Use the code for educational purposes. At least in the US as long as it's for school assignments (pretty much) anything is fair game.
- Somehow pass my using SO code off as "fair use", which is ridiculous because I'm not commenting on or criticizing the code; I actually want to use it.
Therefore in many ways my dilemma still stands. I realize that maybe a checkbox isn't the answer, but I feel that there is still a very important issue here that needs to be addressed.