513

Update (Dec. 22, 2015): Thanks, everyone, for your feedback to this proposal. We're going to digest this one over the holidays and should have a follow-up announcement answering your questions and addressing your concerns after the new year. We won't be making any hurried decisions on this topic, and certainly not without ample opportunity to integrate your ideas into the final decision. So continue letting us know what you think. You'll hear again from us soon.

Update (Jan. 14, 2016): The promised follow-up is here, requiring attribution and postponing the change to March 1, 2016.

CC-BY-SA is an ideal license for a crowdsourced knowledge base. We’ve benefited immensely from it, our community has gained protection through it, and we look forward to CC-BY-SA continuing to cover prose contributions to Stack Overflow and across the network for all of eternity.

But code is a bit different (pun intended), and it’s always been a little ambiguous how CC-BY-SA covers code. This has led to uncertainty among conscientious developers as they've struggled to understand what (if anything) the license requires of them when grabbing a few lines of code from a post on Stack Exchange. Uncertainty is a drag on productivity, for you and for us, and we feel obligated to make code use more clear.

Starting Feb 1, 2016, all new code contributions to Stack Overflow and Stack Exchange will be covered by the MIT License.

We’ve been working on this problem for a little while now. We’ve consulted with the OSI, enlisted the help of a real-life lawyer, and discussed it exhaustively internally. We’ve come up with a solution that we think is a major improvement upon the status quo.

The new license terms, in brief:

Starting February 1, 2016, contributions across the network will be licensed to the public under the following terms:

  • Non-code contributions will continue to be available for use under the terms of CC-BY-SA
  • Code contributions will be available for use under the terms of the MIT License
  • You don’t have to include the full MIT License in your code base. Contributors agree to give code users permission to ignore the MIT License’s notice preservation requirement, as long as users give reasonable attribution upon request of the copyright holder (or Stack Exchange on behalf of the contributor). This optional exception to the MIT License will live in our terms of service.

That last bullet makes using Stack Exchange easy, and provides added protection to code contributors and users.

For the vast majority of developers, the above is Too Much Information. The new licensing terms don’t change anything. You can do everything you did before and maybe more when you visit Stack Overflow: copy code, tinker, fiddle, put it in your project, and keep building.

But to future-proof your work, we recommend you do one of these 2 things, or both:

  • A) Add a comment to your code that links back to the post where you found it, or
  • B) Comply with the MIT as it’s typically used, by including the full license text in your source

You’re doing option A already, right? This is just standard operating procedure when it comes to finding code on the internet – a hyperlink comment ensures you’ll be able to debug down the line. But under the new terms a hyperlink comment is more than just pragmatic, it’s a hat-tip, and it’s a tit-for-tat that ensures you’ve complied with a contributor’s terms.

We want to know what you think about the terms described above. Before you let us know, a few anticipated questions answered in brief:

Is it really that simple?

It’s pretty simple. We’re optimizing for ease of compliance and clarity. This scheme lets you be compliant even if you don’t do a thing. You just have to do a thing – provide credit – when and if the original poster asks for it.

My project is Open Source, can't I just include the MIT License?

Yes. Taking advantage of the notice preservation exception is completely optional. When the new terms launch, we'll have easy to follow guidelines in the help center on how to be compliant for a variety of use cases.

What about code contributed before February 1, 2016?

This is just a first step in alleviating licensing ambiguity for users of Stack Overflow and other Stack Exchange sites. Code that was contributed prior to February 1, 2016 will be available for use as it has always been, under the terms of CC-BY-SA. We are looking into ways we might allow users to opt-in old code contributions to the new scheme.

What about other sites in the Stack Exchange network?

These terms will go into effect for all code posted after Feb. 1 on all sites in the Stack Exchange network.

Who came up with this scheme?

You can blame or optionally thank Tim Post, Britton Payne and Sam Brand for this. They also had an enormous amount of help from the Open Source Initiative.

What’s next?

We hope to roll this out February 1, 2016. We know it’s short notice, but we think the proposed terms are a decisive improvement over status quo, and so a change probably can’t come early enough. Please let us know what you think.

migrated from meta.stackoverflow.com Dec 16 '15 at 19:03

This question came from our discussion, support, and feature requests site for professional and enthusiast programmers.

  • 91
    Thank you so much. <3 – Jeremy Banks Dec 16 '15 at 17:56
  • 130
    How does this work for edits of existing code post 1st Jan? Does there exist a halfway state where part of a code block is under one license and the other part another? – Flexo Dec 16 '15 at 18:02
  • 77
    How are we defining code? If I write "code" but dont put it int a code block, is it counted as code? Also, what about things like math blocks on the Math.SE site? Im guessing that would go under CC-By-SA? (related meta post) – David Grinberg Dec 16 '15 at 18:08
  • 221
    Crap, crap, crap. This is not even "what do you think of changing the license", this is a "we will change the license". This is not your work, you have no right to decide this. Shame on you. – Uphill Luge Dec 16 '15 at 18:11
  • 28
    @HansPassant Code contributed before this is exempt: "Code that was contributed prior to January 1, 2016 will be available for use as it has always been, under the terms of CC-BY-SA" – Undo Dec 16 '15 at 18:12
  • 81
    You say you want to know what we think, but it will go into effect Jan 1 regardless. I support this change but am offended at your pretense of caring what we think. – Jeffrey Bosboom Dec 16 '15 at 18:15
  • 63
    @JeffreyBosboom If we were going to "just do it" we would have, and then announced it. The whole point of this post is to get feedback before we do it. Coulda probably been worded to make that clearer, good point there. – Tim Post Dec 16 '15 at 18:19
  • 32
    I don't like how attribution isn't required for code. I tend to choose CC-BY for content I post elsewhere on the Internet (where I have a choice) and Apache 2.0 is my go-to software license. Both require attribution. True MIT requires attribution by way of the license (it requires the license, including the copyright line, to be included in a project that uses it). Effectively, text that I write on SO requires attribution, but anyone can use my code...dislike that. – Thomas Owens Dec 16 '15 at 18:26
  • 38
    If you take the MIT License and waive the copyright notice requirement, what's left? Isn't that essentially public domain with a disclaimer of liability? – 200_success Dec 16 '15 at 18:31
  • 171
    I think it's ludicrous that this is something people spend time on, what happened with common sense or public domain? If I ask you a question in the street and a passer by hears the answer I don't care. Posting stuff on stackoverflow, it being text, code or whatever is basically the same as shouting it from the rooftops - how can it be anything other than public domain/licence-free? – Christoffer Bubach Dec 16 '15 at 18:33
  • 26
    @samthebrand What was the rationale for getting rid of requiring attribution? – NathanOliver Dec 16 '15 at 18:36
  • 102
    @ChristofferBubach: Ah yes, the old "it's on the web, therefore it's public domain" nonsense. Please, no. That's not supported by any legal theory I'm aware of, and for rather good reason. – Nathan Tuggy Dec 16 '15 at 18:44
  • 25
    @samthebrand So we just reward them by getting rod of the requirement? That does not seem right to me. – NathanOliver Dec 16 '15 at 18:55
  • 32
    What happens when someone posts code they don't own the copyright to (for example, to explain a bug in third-party code their answer works around)? If the user attributes to the SO post, there's a chance of figuring out what happened (IANAL but "good faith" may now apply, for whatever that's worth); with no attribution it looks like the code was just copied. (Also, while you're working on the license, it might help to clarify the poster's obligations when quoting third-party code.) – Jeffrey Bosboom Dec 16 '15 at 19:35
  • 71
    So, public domain as a thing doesn't actually exist everywhere, @ruffin - this is one of the problems that licenses like CC-0 have tried to attack. But beyond that, it's really not cool to tell people that merely by posting here they're giving up authorship of what they wrote. Presumably if you're posting on Stack Exchange you want others to benefit from what you've written... But that doesn't mean you want them passing it off as their own work! No one should have to make that trade-off. – Shog9 Dec 16 '15 at 20:28

58 Answers 58

18

Have you considered what this means for those scraping off SE? If I make a scraper that just keeps the code snippets -- say, just the code from answers that are more than 70% code -- I suddenly have very real, very useful content for very free to keep alongside my very sponsored links, and it's all very legal. Hooray? Is this the desired outcome? Because that's probably all that this suggested change will really get us.

I agree that some people have been using SO as if this proposal was already implemented (humorous related tweet). I also think that scrapping attribution by default is wrong. We have been fighting the attribution fight quite strongly, and now... we're just sort of giving up on it?

Please keep the requirement to have code be attributed. You do agree people should do it, so I don't see why this shouldn't also be enforced. If you want to treat code differently from non-code -- and I think you do -- only require linking back to the post (with the usual no-nofollow caveats). In practice, this won't change anything, really: people who just wanna copy paste without giving credit are just going to copy paste without giving credit. There's a big difference between doing so and doing so rightfully until busted.

  • Actually this change would make things much harder for scrapers, unless the code is dual-licensed under cc-by-sa + MIT/SE crayon license. Scrapers would have no mechanical way to determine what license they need to apply, practically making the entire StackExchange unfreely licensed and completely impossible to reuse. This might be the goal, as StackExchange is also proposing to transfer your copyright to them, which they previously didn't. – Nemo Dec 20 '15 at 18:47
  • 4
    Where is the transfer proposal, @Nemo? – Josh Caswell Dec 20 '15 at 19:51
  • @nemo just approximate code block = MIT. For most popular languages you can probably even run a syntax check. Hell, wouldn't that be sweet: as a user you get the guarantee that all of the code in the site compiles – badp Dec 20 '15 at 21:14
  • 2
    @JoshCaswell "or Stack Exchange on behalf of the contributor". This is only possible if StackExchange is the copyright holder (by any meaningful sense of the word), as it gives them the right to represent the copyright holder in contracts and lawsuits. – Nemo Dec 21 '15 at 8:01
  • 1
    Recourse against scrapers was a factor in coming up with the proposed terms. Consensus was that scraped code displayed without context just doesn't provide enough value to the scraper or to the world at large for this ever to be a serious threat. – samthebrand Dec 21 '15 at 20:12
  • 2
    @Nemo There is no transfer happening here. Perhaps that wasn't clear. The clause you're referring to is intended to give us (the company) the right to ask a scraper or other bad actor to give a contributor (or many contributors) credit. – samthebrand Dec 21 '15 at 20:15
  • 1
    @samthebrand, "Consensus was that scraped code displayed without context just doesn't provide enough value to the scraper or to the world at large for this ever to be a serious threat." The fact that you and your colleagues assumed that to be true does not mean that reality will bear out your assumption. You're proposing to gamble on that assumption with our contributions. I'm sure you can see how that comes across as both arrogant ("Crystal ball, check!") and - despite your wording - non-consensual, especially without a strong opt-out available (other than ceasing to contribute to SE). – sampablokuper Jan 4 '16 at 2:03
  • 1
    To be fair my point is invalidated by the "or SO on behalf of the contributors" bit – badp Jan 4 '16 at 2:10
17

I'm finding it extremely bizarre that people are complaining about the fact they seem to be being forced to give up certain rights over the code they post on SO(1).

The stated purpose of SO is to be a Q&A forum where people come to get answers to programming-related questions and that includes providing code in your answers. In fact, the vast majority of answers could be considered useless without some code.

And, to be honest, if your code is so damn precious, why would you post it here anyway? Because, despite the attribution requirements of SO in the past, plenty of people will use your code with absolutely no attribution (changing structure and variable names to hide the fact, if they're truly paranoid). I could understand if you were posting your hyper-advanced operating system or your string search algorithms that would make Google run six times faster.

But nobody really cares about (for example) code showing how binary trees work because that information is available in dozens of other places as well, and would be unlikely to pass the Abstraction-Filtration-Comparison test laid out by SCOTUS (other jurisdictions may, of course, vary).

In any case, this is supposed to be a community, a place where we help each other out. No-one is forcing you to be part of the community: if you don't agree with the rules of said community (and SO is well within its rights to change those rules going forward), don't participate. Despite my answers far outweighing my questions, I still have garnered much use out of those questions and the "loss" of exclusive rights over the stuff I've posted is a very small price to pay.

All the code I post on SO is covered by the "do whatever the heck you want with it" licence, the official text of which is:

You are hereby permitted to do whatever the heck you want with it.

That's because I find even the MIT licence too restrictive for code samples that any reasonably experienced code monkey could come up with :-)

I've now added that to my profile so that there's no doubt.


(1) Keeping in mind that the rights are most likely gone anyway, under CC-BY-SA.

  • 4
    What about the questions? While I don't mind sharing most of my code, I don't have the "giveaway" mentality on all of my code in my questions, at least not without attribution. That especially goes for Code Review. I certainly agree that my code (notice how I said 'my', not someone else's) in answers is free-for-all. – B.K. Dec 17 '15 at 18:00
  • I strongly disagree that "the vast majority of answers could be considered useless without some code". For answers code is like images: it can add to clarity and explain some things more concisely, but actual code (rather than just inline names of functions/keywords) is rarely necessary for a useful answer. Or else the question may be suspect. – otus Dec 20 '15 at 12:13
  • 2
    @B.K.: so you want to ask other people for help, but you're not willing to give them your code? Then don't post questions. It seems like somehow you're trying to say "well I'm going to put this here, and show it to you, because I'm so smart, but you can't use it. I just wanted to show you how smart I was." – Nick Bastin Dec 20 '15 at 17:20
  • 1
    The "In any case ... don't participate" part of your answer, combined w/yr apparent disdain for CC-BY-SA, is logically inconsistent severalfold. (1) Copyleft licenses ensure people do help each other out, not rip each other off. Copyleft thereby helps ensure the "community" aspect of SO as you've defined it. (2) The rules of a community come from the community. SO is within its legal rights to change the T&C of its website, but it is not within its rights (or even its ability) to dictate the rules of a community. – sampablokuper Dec 20 '15 at 18:24
  • 2
    (3) You seem to want SO to be a place where people help each other out; but on the other hand you appear to be happy for the community to become unwelcoming, which is obviates helpfulness. To paraphrase you: "If you don't like the new SO, go away and don't come back (even if you've been a pillar of the community for years)!" – sampablokuper Dec 20 '15 at 18:27
  • @NickBastin That's exactly it, you got me. Grow up -- that is obviously not what I meant and you know it (or too immature to know it). – B.K. Dec 20 '15 at 20:08
  • 1
    @B.K.: you understand that I have no idea what you are complaining about? CC-BY-SA already allows the code in your questions to be used by anyone, for anything. Yes, with attribution, and that's a fine thing to care about, but you cannot restrict distribution in any way, with the existing license. Not liking the MIT change is fine (although you have an option - stop contributing, no one is changing old contributions), but attribution is the only change, and questions are not treated separately (now, or in the future) from answers. – Nick Bastin Dec 21 '15 at 1:42
  • @NickBastin Yes, I understand that you have no idea. Who said anything about complaining? I brought up a point; I did not complain about it. SO can do what they wish, I just provide my input on the issue. You're the one that's getting all aggressive and insultive. – B.K. Dec 21 '15 at 2:12
  • 2
    What if someone else edits "your" code? @B.K. Who owns it then? – Cypher Dec 22 '15 at 23:19
  • @Cypher Editing should not be to the point where it functionally alters the original code, as that's not what OP posts and any edits to the actual code must not be beyond simple formatting. Therefore, if there's an edit to the actual code, it's not the code they're trying to run and encounter issues with/have question in regards to. Therefore, the OP owns that code, unless that code came from somewhere else and they've altered it. I understand what you're getting at, and it's a very complex situation. I've never had issues with sharing; but I feel that it's important to discuss it. – B.K. Dec 23 '15 at 8:26
16

Can we have a new post indicating what SE plans to do next, considering the fact that there is significant oppostion to the current plan?

This post is overcrowded and it is difficult to make out which posts are (or are not) actually by experts who know the implications of what they are saying. And the upvotes are a very rough (if not inaccurate) indicator of how many people are for and against this idea.

And a lot of people like me do not understand the entire post as it is.

  • 8
    Indeed, this Q&A is busy. (Meta was never really made for extended discussions like this.) We'll be adding a new post in the next week or so addressing some of the concerns introduced here, but will continue to monitor this post in the meantime. Stay tuned. – samthebrand Dec 23 '15 at 0:09
  • 1
    @samthebrand Ok. Thanks for bothering to reply. – ghosts_in_the_code Dec 23 '15 at 10:54
  • @samthebrand Did I miss the new post? – Deduplicator Jan 7 '16 at 12:31
16

Like most people, I'm not an expert on licensing, so if you were to ask me to choose between MIT and CC-BY-SA, I would just say "Meh, do what you like, it doesn't make any practical difference to me." I imagine that the majority of users will be indifferent about the change. In fact, I would be surprised if half of the users could tell you off the top of their head what the current license policy is.

And for people who do care about licensing, the change brings a number of headaches:

  • The license depends on the date something was posted.
  • It is not clear what license applies when edits of varying significance are applied to posts that were made before the license change.
  • Precisely defining the difference between code and non-code is almost impossible and opens all sorts of potential edge cases.
  • Any change is annoying for slow bureaucratic organizations that have to be careful about licensing, which might lead to a policy of "Don't use content from Stack Overflow until we figure this out".
  • Mere mortals trying to understand how the license works have to spend at least double the effort: They need to know the rules of two different licenses, which one applies in which situation, and how the optional exception to the attribution requirement works.

In other words, I see the change being mostly inconsequential, except for some annoyances to the minority who are careful about this stuff, which leads me to the question,

What's the motivation for this change?

Is there something bad about the status quo? Can you give any practical examples of real problems people have faced because of the CC-BY-SA license, which would be fixed by changing to the MIT license? If not, I don't see any benefit.

  • 4
    The motivation for the change is that the CC-* licenses (except for CC-0) are unsuited for source code: source code is routinely transformed in a number of ways (eg. compiling, binary linking) that artistic works aren't. The CC-* licenses don't really cover these situations. – Mark Dec 17 '15 at 6:15
  • 2
    @Mark I more or less understand the theory, but can you give me a real-world example where this has actually prevented somebody from doing what they needed to? For an example of the sort of thing I'm looking for, Crockford's eccentric license for the JSON library led to software being removed from Debian since it included a library that was considered nonfree. – Peter Olson Dec 17 '15 at 8:19
  • 7
    The motivation for this change is that legally speaking, you are not allowed to include code from SO in a project, even an open source one, unless it is licensed under a GPL-type of license. And people keep talking about snippets not being subject to copyright because they are small, but Google lost a lawsuit over 9 lines of code. So the "threshold of originality" can be very low in practice. – assylias Dec 17 '15 at 10:13
  • No you can't include it in GPL code, it requires things not required by GPL. – Elin Dec 18 '15 at 1:45
  • 2
    @Elin, yes you can, BY-SA allows porting to GPL. (SE uses 3.0, but that can be relicensed to 4.0.) – otus Dec 20 '15 at 6:56
  • 2
    @otus okay let's specify it can't be included in GPL2 but can in GPL3. – Elin Dec 20 '15 at 14:44
  • @otus What about content that's already licensed under CC-BY-SA 3.0? Can it be relicensed under 4.0 without the consent of its authors? – jkdev Dec 23 '15 at 4:08
  • 1
    @jkdev, yes, that same link tells you so. – otus Dec 23 '15 at 8:17
  • @assylias THis should have been explained in detail in the OP. – ghosts_in_the_code Dec 27 '15 at 7:57
  • A real world example, If you sell your company, a standard part of due diligence for the purchaser is to review your code base with an eye toward ensuring that that it has not been virally contaminated with GPL code that would force you to allow anyone to compile and build and distribute your entire project for no charge whatsoever. CC-BY-SA has the same viral affect as GPL. I have participated in such code reviews as a purchaser. And been subject to such code reviews as a seller. – Robin Davies Dec 27 '15 at 18:16
15

ISC License – Even shorter than MIT

The ISC License is a briefer equivalent of the MIT License. Simpler words, more readable, easier to immediately comprehend.

And more up-to-date legally. Wikipedia explains that, while functionally equivalent to the BSD/MIT licenses, ISC omits language made unnecessary by the Berne Convention.

This Answer is not arguing whether or not the MIT License change is good or not… I am simply suggesting that if you were to go ahead with the plan for using the MIT License, and if the assertion of the ISC license’s functional equivalence is valid(*), then consider switching from the MIT license to the even shorter ISC License for the sake of simplicity.

ISC License text:

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Free Public License – No notice requirement

If the suggestion above for ISC License makes sense, and if it turns out that the issue of waiving the notice requirement does not make for a “crayon license“, then perhaps the best solution is the Free Public License as noted in the Answer by Trilarion.

The Free Public License text is the same as ISC, but truncates the first sentence to eliminate the copyright notice requirement.

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

(*) Caveat: I'm neither an attorney nor an expert.

  • 3
    I kind of like this idea. The one issue is, there was a dispute over whether the language "Permission to use, copy, modify, and/or distribute..." allows distributing modified copies. At least that's what the Free Software Foundation says on its Various Licenses page regarding ISC. – jkdev Dec 23 '15 at 4:44
  • 3
    I cannot see how even the craftiest of lawyers could twist modify, and/or distribute into prohibiting distribution of modified software, the exact opposite meaning. – Basil Bourque Dec 23 '15 at 9:36
  • 1
    Here's one way: "Modify or distribute" means modify a copy, or distribute a copy, but not both; "modify and distribute" means modify a copy for yourself, and distribute another copy. I don't know if that's what the University of Washington actually said, but there's probably a reason the FSF is concerned. Alas, sometimes you do have to spell things out to prevent intentional or unintentional misinterpretations. – jkdev Dec 23 '15 at 9:56
  • 2
    Free Public License looks very tempting. As I have mentioned elsewhere, notice requirements make incorporating code snippets directly from SO completely impractical in anything but a toy project. – Yakk Dec 23 '15 at 15:51
  • The problem with the ISC licence, other than not using the and/or wording in some versions (e.g. OpenBSD's), is precisely that it allows disclaimer stripping, which may cause extended liability… – mirabilos Dec 26 '15 at 20:25
  • 2
    Found it. Here's the University of Washington regarding an earlier Pine license: "'Permission to use, copy, modify, and distribute this software... is hereby granted,'...but if you modify it, you have created a derivative work and must ask permission to redistribute it." (Emphasis added.) However, the lists of permissions in ISC/FPL use "and/or" instead of "and" -- which supports the argument that those licenses allow distributing modified copies. – jkdev Jan 1 '16 at 6:27
12

This effectively makes any code posted to stack overflow after Jan 1 usable in other projects without any attribution or "work" on the part of the consumer, unless the writer of that code explicitly demands that the MIT license be displayed.

A mechanism to display what license a code block/post is under might be useful, and if the poster demands that the MIT license text be included in reproductions.

Some description of how mixed license content will work; suppose you have CC-by-SA code edited post Jan 1. Does it remain CC-by-SA?

Some mechanism to allow old code by a given user to be "updated" to MIT en-mass would be useful; but every editor of said code would have to opt-in in order for the code to qualify. More difficult, everything the code derives from (say it is a copy/paste of another CC-by-SA SO post with a minor edit?) may also have to be MIT'd.

...

The three states seem to be:

  • CC-by-SA

  • Explicit MIT

  • Implicit MIT

Where Explicit MIT is when you require the license to be explicit. Do we need a mechanism to auto opt-in to Explicit MIT? If you do, does it apply retroactively, or does the fact you have posted Implicit MIT once mean that it should remain Implicit MIT on SO forever? Because if I copy some code that is Implicit MIT, then later the poster opts-in to Explicit MIT, then someone audits my code and notices it is a copy without the MIT license (but I was never notified of the change), I will appear in violation incorrectly.

Crayon licenses are hard.

  • I think perhaps you're overstating the implications of appearing in violation of the 'Implicit MIT' license. As long as you were to rectify the issue upon being informed of it, nothing bad would happen. And also there's the broader question of how an auditor would determine that a particular snippet of code came from SO if it was not annotated with a link or other forms of attribution in the first place. – aroth Dec 17 '15 at 4:53
  • @aroth Suppose I opt out of implicit by saying so in my profile, or in my answers. Does that consist of informing? Then if code is copied verbatim to some code base, with no attribution, "just fixing it later" doesn't fix the earlier violation of the license; what consists of "being informed" that the license must be explicit? – Yakk Dec 17 '15 at 12:28
  • I'd think answers yes, profile probably not. But really that's probably something for SE to puzzle out. Perhaps there's a case for an actual account-level setting where people can indicate if their code snippets require attribution or not. Though in terms of "fix the earlier violation of the license", I'm not sure what you mean. How would you propose someone fix a past violation of the license on your code snippet? Retroactively date their attribution? Issue a public apology? Pay you $$$ for "damages" (what damages have been sustained?)? – aroth Dec 17 '15 at 14:47
  • @aroth If you use copywritten content without a valid license, then it is a copyright violation. Various criminal and civil penalties exist in legal frameworks, depending on jurisdiction. These can include statutory damages (on a per-instance violation), and other kinds of redress. One of the reasons why hand-rolling your own crayon license is dangerous, and using crayon licenses is dangerous, is that there are real liability issues here. Hence my questions around the implicit MIT vs explicit MIT case; if you violate license agreements, the license doesn't grant you any rights. – Yakk Dec 17 '15 at 15:41
  • Technically yes, you are correct on all points. But what I was getting at is what actual damages have you incurred if someone uses a code snippet you shared on SO without correctly following the license terms? Not 'what damages does the legal fiction allow you to claim?'. Keep in mind that the legal fiction was constructed largely to protect against the infringement of commercial/for-profit works. It's broad applicability to content that people share openly and for free, while technically valid in the legal sense, has always seemed a bit dubious to me. – aroth Dec 17 '15 at 16:06
  • 1
    @aroth I'm talking about the liability for the people who use the code. They leave themselves open to liability. Without clarification of exactly how the implicit/explicit exclusion of the license works, there is a minefield here. The goal, as far as I can tell, was to make SO code relatively freely reusable; with this minefield of liability, it fails. To clear up the minefield, some way to clearly indicate when the crayon license makes it an "implicit MIT" may be required. Your philosophical objections to copyright law... well, they don't solve the problem. :) – Yakk Dec 17 '15 at 18:42
11

I think this is a nearly wholly good change.

There are a lot of answers on this question that voice potentially quite valid concerns, and I don’t doubt that they are real issues. But I am very happy with this change, and given that I haven’t seen any other answer that has expressed that clearly, I want to put it bluntly.

I contribute to Stack Overflow (and open source in general) because I want my code to be used. Perhaps I would hope that, in general, people won’t just copy it verbatim, but hey, I don’t really care. As long as some people find it valuable, it’s worth it for me. If people use it for immoral purposes, such as outright plagiarism, that’s their problem. Changing the license doesn’t make it not plagiarism. Anywhere that plagiarism is not okay (included Stack Overflow) won’t treat it any differently just because the license is different.

I’ve licensed all my open source code under the MIT, BSD, or (more recently) ISC licenses for years, and frankly, I never really considered the potential impacts of the CC-BY-SA license on my contributions to Stack Overflow. I want Stack Overflow to be an open repository of knowledge, and there’s little place for the idea of “ownership” in my vision.

I’m a fierce defender of the right to write proprietary code, and I have a grudge against “infectious” licenses like the GPL, but proprietary code has no place on Stack Overflow. If we’re going to be open, we should be completely open. I wholeheartedly support this change, and I thank the team for clearly giving it the thought it has warranted.

  • Does insisting on attribution make code not "open", in your view? – Jeffrey Bosboom Dec 17 '15 at 0:13
  • @JeffreyBosboom It certainly makes it less open in my mind. It implies someone owns that code. The code I post on Stack Overflow is not owned by me, it is open. It is owned by nobody. – Alexis King Dec 17 '15 at 1:39
  • 4
    You can always add more permissive licencing terms than SO’s “CC-Wiki” on your posts (or, to save space, profile), as I did. But while I agree with you on principle, I cannot as easily agree with you supporting this too-hurried change. – mirabilos Dec 17 '15 at 10:24
  • On attribution: Coywolf Qi Hunt wrote “I believe no one can invent an algorithm. One just happens to hit upon it when God enlightens him. Or only God invents algorithms, we merely copy them. If you don't believe in God, just consider God as Nature if you won't deny existence.” This does not mean the person who cast the algorithm into code/advice doesn’t deserve attribution, though – which is all most BSD developers ever get, after all, so don’t that that away. – mirabilos Dec 17 '15 at 10:26
  • @ mirabilos. Algorithms aren't copyrightable. So that's taken care of. Gods don't provide variable names (which are copyrightable); And gods don't provide open source code (which would be copyrightable). So all in all, a terrible example. And jealous gods are far more trouble than they're worth. Imagine the inconvenience of having to sacrifice an unspotted lamb every time you swiped three lines of source code from SE.The smell alone would be horrifying. – Robin Davies Dec 27 '15 at 18:28
11

Others have illustrated that the MIT license may not work for everybody. I want to address a more fundamental problem.

What is code?

On sites like SO or Mathematics.SE, we can expect that all code-like things are really code. On SciComp.SE and CS.SE (and others), it is not that clear. We usually use pseudo code which may or may not be accepted by some compiler (maybe without the author being conscious of the fact). Which license applies?

There are some options:

  1. Sites with no or little "real" code do not opt-in to the switch to MIT licenses. Everything remains CC-licensed.

    Problem: Makes treatment of the real code there is inconsistent with SO et al.

  2. Define some criterion that separates pseudo code from real code.

    I have no idea what that would be.

  3. Give the authors control on a case-by-case basis.

    We can already specify the used language for syntax highlighting; we could have similar syntax for licenses, e.g. <!-- license[-all]: (pd|mit|cc|gpl3|...) -->. The default would be site-specific; maybe MIT for code sites and CC for science sites (to be discussed on site metas).

    The license could (and should!) easily be indicated in a nice way, integrated with how code blocks are displayed.

I think option three is superior: it gives authors full control if they want it, allows for several levels of "code" on one site, and deals with most cases by reasonable defaults.

  • 1
    You could also imagine that each user can specify a default license in his/her profile that gets automatically applied to each post unless manually overriden. – assylias Dec 17 '15 at 20:42
  • 2
    @assylias A three-level thing (site default, user default, block) is probably too much. I think the middle level is the most redundant, and on non-code sites probably next to useless. – Raphael Dec 17 '15 at 20:54
  • 1
    Any form of customization of course prompts the question: why can't I choose a license for my non-code content? – Raphael Dec 18 '15 at 6:34
  • let's say the default is X and I want Y, I will have to insert the license tag in every single answer I post - that is cumbersome... – assylias Dec 18 '15 at 8:05
  • @assylias Yes. My answer is mostly concerned with "is it code or not" -- which has to be decided on a case-by-case basis -- and not so much with personal preference (note that you have no choice now, so you don't lose much by just using site-default). Other answers highlight that requirement, and one possible solution is a user default. – Raphael Dec 18 '15 at 9:37
  • Also a thing that occurred to me. If code is really just a bunch of instructions — the fact it is patentable seems to support the notion — then the amount of content on SE that can be qualified as code by extension of being a sequence of steps to perform in order is quite significant – badp Dec 20 '15 at 21:18
  • 1
    Honestly option (3) seems the only real option, even without this change. The use of the current license has been really whack at this point (people reasonably copying code from GPL software to make a point or example, which cannot be licensed in the way the site requires), and that is really what needs to be addressed. Any license change won't solve the problem that code is contributed on a regular basis where the contributor has every right to reference the code, but not to change its' license. – Nick Bastin Dec 21 '15 at 1:46
8

IIRC, the claimed purpose of Stack Exchange is to make things easier for programmers. I'm trying, and failing, to understand how this change contributes to that goal - or even how it avoids detracting from that goal.

First, we have this discussion. As we all know, the law is not logical in the same way that computer programs are logical. It's also rarely or never compatible with common sense. Most programmers don't understand legal logic, and many have an active distaste for it, often coupled with a distaste for lawyers, and sometimes a suspicion that the law is really just a false front wrapping some form of plutocracy, oligarchy, or other (ab)use of power.

As a programmer, I'm not happy that I now have to think about lawyers every time I consider contributing to Stack Exchange, or using already created answers.

I had hoped (and believed) I could simply use Stack Exchange in accordance with programmer common sense, and someone who did understand the law had created a reasonable tool to keep the monkeys off our backs, while not interfering with our use. I had also hoped I could expect most users to either behave in ways generally regarded as acceptable by programmers - or be run off the site for unacceptable behaviours (like asking us to do their homework), and possibly be chased down by lawyers for extreme unacceptable behaviour (such as collecting other people's answers and claiming copyright on them.)

Now I'm learning that if I ask a question and include real code, it's OK to copy that code - even into a commercial product. I'm learning that some people thought I should attribute their answer when it consists of something like memcpy(dst,src,len) - though not if it's in the form of "use the memcpy() function.

None of this was new - but I was thriving in the grey areas, and I'm sure many other users were thriving with me. Now some of that grey is going to be defined - but not defined in a way that anyone is equipped to truly understand. (We don't know what it means until it's litigated, and every law MOOC I've taken has stressed that this will be substantially affected by political reality at the time of litigation - implying to me that there's no way to test and debug a legal "program".)

Maybe Stack Exchange is big enough to need this level of pseudo-disambiguation. If so, that's a regrettable side effect of its success. On the other hand, perhaps this is not needed. Or - since I'm thinking in non-engineer terms - perhaps this is about the business interests of the corporation running it, not the claimed intent of value to programmers.

In any case, what I want is some input, from the folks proposing this change, about its intended benefits, other than a hoped-for reduction in ambiguity. (A cost-benefit analysis would be better, since it will surely have costs.) I'm unconvinced that ambiguity will really be reduced - legal-speak only seems to pretend to specificity, given the way real world law cases happen. And I can't see this churn as being beneficial. So all it's doing is putting a bad taste in the mouths of those of us who have managed to avoid legal entanglements, and creating a rush exercise for those of us who were already thinking in legal terms, and now have to evaluate the new license, decide what changes in their usage they may need to make, and meanwhile quite possible abandon the site entirely, until their lawyers get back to them.

  • 2
    The harsh reality is that if you include code from SO in a non-GPL project, you may be infringing the rights of the person who posted that code on SO. The proposed change makes it clear that this is not an infringement, "making things easier for programmers" (to paraphrase your first sentence). – assylias Dec 18 '15 at 10:49
  • 1
    @assylias that might be the intention, but it's certainly not achieved with a MIT/SE crayon license, which is not in the OSI-approved license list and hence is by all practical purposes unfree. – Nemo Dec 20 '15 at 18:50
7

Thank you for sticking to a single license.

While I have yet to analyze this specific change sufficiently to weigh in on it, I am very glad the decision is to stick to a single license across all sites. I've tried being part of communities where each author chose their own license, sometimes on a per-contribution basis, and it's simply untenable.

Regardless of the direction this whole plan and discussion go, please continue to stick to one universal license.

  • 15
    One problem I have with this proposal is it's not "sticking with one license" -- The Stack Exchange content base will effectively be split-licensed, with much of the content falling under CC-BY-SA, and the (as-yet-nebulously-defined) code contributions being MIT licensed. (Though I agree that if we're going to split-license the maximum number of licenses in the split should be two!) – voretaq7 Dec 16 '15 at 23:22
  • 2
    I think what you mean is "Thank you for applying the same licensing policy to all sites". – 200_success Dec 17 '15 at 0:14
  • 6
    With opt-in attribution there will be three licenses! – curiousdannii Dec 17 '15 at 2:15
  • 3
    A licence per author is certainly extreme, but a licence for the entire network of sites is also extreme. In most aspects of life, the optimal solution is somewhere between the extremes. What is suitable for Stack Overflow is not necessarily suitable for other sites in the network (Code Review and PPCG have been mentioned elsewhere in this discussion). A per-site change would be a more reasonable level of granularity. – Peter Taylor Dec 17 '15 at 15:45
7

To me that announcement reads like the code isn't licensed anymore via CC-BY-SA. Intuitively it seems to me like it would make more sense to dual-license the code with both CC-BY-SA and the MIT license.

  • There's no point in doing that. If you want to use code in a project with GPL or another viral license then MIT is fine. What do you gain by allowing people to optionally use CC-BY-SA? – kjbartel Jan 5 '16 at 12:25
  • @kjbartel : You can relicense individual parts under pure CC-BY-SA. If you for example want to create a database for an AI like Watson, you can combine in the status quo Wikipedia articles with stackexchange questions and relicense the whole thing under CC-BY-SA. You would need to add the MIT license agreement. If then someone wants to print out part of that database to redistribute he has to print out the MIT license ageement as well. – Christian Jan 5 '16 at 12:28
  • I don't really see an issue with that personally and think there would be very very few use cases where that would come up as an issue. Leaving it as dual licensed wouldn't cause any problems but it could confuse people who then think that both licenses apply rather than just one at the choice of the user. Cleaner to just remove the CC-BY-SA license to remove that confusion (although removing the confusion regarding older posts and edits etc. will still exist). – kjbartel Jan 5 '16 at 12:57
7

It looks like we might never agree on a single license, because different contributors have different desires. If licensing were not a contentious issue, there wouldn't be so many options for licenses, would there?

Could we perhaps kill two birds with one stone? Here's a crazy brainstorming idea: put the licensing decision in the hands of the poster by offering two kinds of code blocks.

Four spaces of indentation would continue to be CC-BY-SA only, like the status quo.

Using ``` to delimit the code block would mark it as permissive (whichever standard permissive license we settle on, be it MIT, dual MIT/CC-BY-SA, or CC0).

Implementation suggestions

  1. Each community can decide which license is the default. On Stack Overflow, perhaps the permissive license would make more sense. On Code Review, the standard should probably be the status quo.
  2. The {} code block button in the Markdown editor should reflect each community's standard code block license.
  3. In rendered posts, the license choice can be distinguished using different coloured backgrounds, tooltips, borders, or whatever the designers choose. (Please settle on a consistent network-wide convention, though.)
  4. When submitting edits, the server should perform a diff, and quash relicensing attempts by anyone other than the original poster or a moderator (who, presumably, knows how to use that privilege responsibly).

Drawbacks

  • I am fully aware that assigning an in-house special meaning to a variant Markdown syntax that is supposed to be semantically equivalent is bad practice. (Using <!-- license: permissive --> or <!-- license: copyleft --> tags is a possible alternative, but those would more easily get lost during editing.)
  • Note that we only get two types of licenses. (In my opinion, offering both MIT and MITCrayon is a bad idea anyway.)
  • Unfortunately, Code Review, the site that could perhaps benefit the most from ```-style blocks, would probably be better off with the CC-BY-SA license by default. But that's just how it has to be, I guess.

The advantages are rather tempting, though…

Advantages

  • We get the ability to pick a suitable license for each code block.
  • The need not be a special cutover date: the license election is apparent in the post itself.
  • The choice is "sticky", and robust to migrations, trivial edits, and paragraph rearrangement. (It can never be perfect, but that's the complex nature of the problem, and even expert lawyers and judges would differ in opinion.)

Problem solved?

  • 13
    Determining the license by the markup is horrible user experience both for editors and for readers. Most authors wouldn't know the difference, editors are likely to change one into the other without realizing the impact, and there'd have to be something visible for the readers to be able to tell. Something like license tags is the only viable solution here — if you want fragmentation at all, which I'm not convinced is a good thing. – Gilles Dec 17 '15 at 18:36
  • @Gilles Editors changing one kind of block into the other can be rejected (or overridden) algorithmically. As for the coupling between markup syntax and licensing, I know that's a bad idea, and said so in the post. – 200_success Dec 17 '15 at 18:37
  • This is just a brainstorm idea. I am open to any other tagging mechanism. – 200_success Dec 17 '15 at 18:38
  • 9
    I like what this would accomplish, just not how it would accomplish it. HTML dropdown <select> elements would be much better than backticks-vs-4spaces. As for helping people choose a license, they could be presented with a very simplified choice or explanation such as "Require users of this code to give attribution to this post" / "Allow any usage of this code"... – Simon Forsberg Dec 17 '15 at 18:56
  • @SimonForsberg But at some point, whatever license election is made in the UI would need to get serialized as Markdown somehow, I think? – 200_success Dec 17 '15 at 18:58
  • 7
    This not the way to reach the solution. I would agree with a dropdown menu that could mark the entire post as either CC-By-SA or MIT with a default of CC-By-SA. Kind of like checking the community-wiki checkbox: it's metadata about the post and can be easily displayed with a small mention at the top-bottom of the post clarifying its license. By making CC-By-SA the default you don't introduce unwanted changes for people that didn't know about it. – Jeroen Vannevel Dec 17 '15 at 19:01
  • @200_success yes, in the end it has to be saved into either markdown or some other metadata about the post (such as Jeroen's example of community wiki). For this, I think <!-- license: xyz --> would be good, or - if only one license can be chosen for the whole post - make it a dropdown box and store it as an extra field in the POSTS table (this would make it easier to prevent changes to the license after post was first posted) – Simon Forsberg Dec 17 '15 at 19:05
5

My observations:

UX matters.

I understand one of the huge advantages of your proposed approach: make our community do as little as possible while we tidy up legal loose ends.

I think the main goal of this license change should focus on the UX when considering licensing across SE. Approachability and ease of use is one of SE's best features. If you do anything that hinders UX from its current state, you risk losing that coveted pick-up-and-go charm that SE has.

Documentation is not code.

Not all the things that will be affected by this change would be considered code. I have no idea what kind of percentage breakdowns there are on answers/accepted answers and their format, but I see far more code snippets with insight/talking points on StackOverflow than I see fully realized programs, both for questions and answers, and especially comments! And yet, SE's Code Review and several others do not follow that pattern in the same exact areas. You could, and should argue that a not insignificant amount of what will be affected by this at specifically StackOverflow can be argued to be documentation, not code, especially code snippets that lack defined dependencies or fall into the realm of pseudocode. To use the same license for documentation as code is legally dubious.

However, as mirabilos mention, this is not truly a conundrum with certain languages and uses, where the line between code and documentation may as well not be distinguished, and all should be considered code.

Stack Exchange

It's really important to keep an eye on the scope of this change. Who are we protecting? Better yet, who are we hurting? We can at least agree that the current license is not sufficient for the Stack Exchange's needs. We can also agree that using a modified MIT license isn't fulfilling the desires of the community either, even though you reasonably hoped it would.

Tools at hand

If all your tools are hammers, and you need to loosen a screw, looking beyond your toolbox is never a bad consideration. I understand you've already consulted various legal means, but please do not lose sight of how far-reaching a change like this can be. Sometimes you need to stop trying to figure out how to unscrew something with a hammer, and shop for a screwdriver. E.g., for a license this far-reaching, you need your own license. Yes, legal fees suck, but this is a business, and this choice will affect your business, and ultimately this community.

The bad old days

I may be young in this game compared to some of our regulars who have been in this industry since the beginning, but I'm no spring chicken. I remember life before SO, and let me tell you, it was not terribly pleasant. Even today, I'll often add stackoverflow to my searches because even though there probably already is documentation of the issue I'm having all over the place, this community does a great job of making sure we have distilled, quality information exchanging, with no shortage of professional insight and experience, across the globe.

Don't lose that lightning in a bottle.

  • 1
    No, documentation is code, it can be interchanged, often one can be generated from the other with a little annotation (javadoc and Python docstrings are just the beginning), or think of Teχ where there literally is no boundary. – mirabilos Dec 18 '15 at 9:43
  • I clarified that section. While I don't wholly agree with you, it comes from a point of ignorance. Can you explain to me what you mean about Teχ in regards to this? Or at least point me to a URL that can sum it up? – kayleeFrye_onDeck Dec 18 '15 at 21:35
  • 4
    Teχ is where your “program” literally is the documentation; it can have comments and extra documentation, too, but it’s not unusual for them to have a circular relationship. But someone gave an even better example from the Maths realm: apparently they have a form of documentation they wrote a compiler for (Lambda Calculus, I think). In the end, documentation is just code for a human… and if it happens to be written according to some guidelines, a machine can parse it too. – mirabilos Dec 19 '15 at 13:59
  • 2
    @mirabilos A .dtx file is an even clearer case than a .tex file. It is code which, when compiled produces other files. These typically include something like a .sty or .cls file and a copy of the documentation for that code in compiled form. (An .ins is usually involved, too, but typically is just a wrapper.) The .dtx file can also be used directly as a .sty file. (For example, if you change the extension.) The documentation is code by design and an enormous amount of TeX documentation is provided in this form. – cfr Dec 26 '15 at 1:11
4

I think it is a great move to formalise what common sense suggested.

This is a clear win for consumers of code

Whether you are working on a GPL, Apache/MIT/BSD, closed-source/commercial project, the proposed change will allow you to include code from StackExchange into your project with no legal risk. That was not necessarily the case before for non-GPL projects.

Contributors lose the attribution requirement

The main change for contributors is the removal of the attribution requirement - that is maybe where additional work needs to be done. Some contributors will insist that there is some form of attribution.

That raises a few questions, in case you keep the MIT license as-is, without the opt-out for attribution:

  • Can you clarify what a minimum acceptable attribution is under MIT?
  • For example, if I copy some code from SO and add a comment in my code linking back to SO, is it good enough to comply with the MIT license?
  • Can you clarify if there is a threshold below which attribution is not required under MIT (i.e. what is a substantial portion of code)?

Answering these questions and possibly keeping the attribution requirement would probably alleviate most of the concerns raised so far.

But people will use my code in commercial projects!

If you were under the impression that what you post on StackExchange can only be used in GPL-like projects (due to the Share Alike part of the CC-BY-SA license), then you need to think again.

Under the current license, it is likely that people were already able to use code from StackOverflow in any types of projects, including commercial ones, because code snippets are probably considered excerpts and the share alike part of the license is not applicable.

CodeReview is possibly a bit different although questions are generally focused on a small feature as opposed to a whole software.

However this is a grey area, especially since Google lost a lawsuit against Oracle over a trivial 9-line piece of code. And the notion of fair use varies across jurisdictions.

=> The proposed change clarifies what common sense strongly suggested and removes ambiguity.

  • 1
    Yes, this proposal optimized one common use case — using code from Stack Overflow in commercial projects without attribution — at the expense of many other considerations (already mentioned by others). – 200_success Dec 18 '15 at 10:49
  • 3
    @200_success not only commercial - non-GPL open source projects too. – assylias Dec 18 '15 at 10:52
  • Regarding your last section: such code (which Jeff Atwood seems to refer to) is not copyrightable anyway, no matter which license (or no license) is attached to it. The whole discussion is about code that is copyrighted. Something like the MIT license would allow inclusion of such code in software that is not licensed under CC BY-SA (or a compatible license). – unor Dec 18 '15 at 20:38
  • 1
    Before this, my common sense said. (1) OK to use answers; that's what they are for. (2) Not OK to use questions. (3) It's on the net, so some scum will use things that aren't OK, relying on being able to get away with it. Now we have an explicit statement that use of questions is legal, which tends to imply that this behaviour is OK. Net result - no social pressure in favour of what seems to me to be right behaviour, and some pressure in reverse. – Arlie Stephens Dec 19 '15 at 23:36
  • @unor how many lines of code before something becomes copyrightable? – assylias Dec 20 '15 at 18:07
  • 1
    @assylias: I’d say this has nothing to do with the number of lines or characters. For mere mortals it’s by no means always possible to decide if something reached the threshold of originality or not (it’s for judges to decide, should it come to that). So to be on the safe side, I’d personally always assume that it is copyrighted (except for really obvious cases, of which there are many), possibly even if it’s only one line of code (i.e., a long/complex line). – unor Dec 20 '15 at 18:35
4

I like this change, and think that most code on the website should be licensed under the MIT license, but removing the attribution requirement is not a great idea. If it is best practice to attribute people's code (so you can check back on that code later on for debugging purposes), why not just make it mandatory? It's only just a couple of lines in the source code anyway.

If a person hates attribution for whatever reason, he can relicense his code under WTFPL or the Unlicense or whatever. But make attribution "opt-out" instead of "opt-in".

3

My Concern:

As others have mentioned, we need more time to think this over. While I don't mind my code being used by others if I post it on SO as an answer, I certainly do not have the same feeling if I post something as a question either on SO or Code Review. In the past I've simplified versions of my code to omit things I do not wish to share, but there's only so much simplification one can do before the code becomes too different to be applicable in the question.

Additionally, it seems to me that if someone forgoes providing all the correct information along with the code that isn't theirs and they posted as either question or answer on this network, the original author will have an uphill battle to fight with someone who chooses to use that code.

This is a serious matter, so let's not rush it. January 1, 2016 does not give us enough time to rationally think about this and consider all avenues. Not only is it a very short timeline, there's also the fact that this discussion is being started during a holiday period and many community members will not get the chance to voice their opinions. This is a community-driven network and I think that everyone should be given a fair chance at voicing their opinion on such an important matter. Let's give them that chance.

A Possible Modification:

As one possible addition to the proposal, we could have an option when an answer or question is being posted to specify license for that particular post. The license would be right there on the display right next to the post, so there would be zero confusion as to what can or cannot be done with the provided information (although... some lawyer language can be confusing regardless). This modification does not cover all of the concerns being voiced, but it's a step in the right direction if this network decides to proceed with the license scheme presented before us.

3

The big problem with cc-by-SA is not the requirement for attribution; it's the ShareAlike clause;

ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.

This is even worse than GPL because GPL is at least specific about how it virally infects your entire project with a license that allows anyone to swipe millions of lines of code you wrote independently. This license insidiously infects your entire code base for no other reason than that nobody bothered to really think through the consequences.

This kind of license may work for images; but under these terms, incorporating a three line fragment of code cut-and-pasted from Stack Exchange means that I now have to publicly redistribute all 3 million lines of source code in my project that "build upon" those three lines (whatever that means) under the same CC-by-SA license.

I can't use code provided under these terms. Nor can most professional developers. Every company I have ever worked for in my very long career has specifically decided (after checking to see whether their corporate lawyers could make any sense out of the license) that GPL code can't be used under any circumstances. This license is in no way superior to GPL, and in many ways vastly inferior.

I do not give a damn about whether anyone gives attribution for code I post on Stack Exchange. And I think very poorly of anyone who would want attribution for code posted.

However, I very much do care about accidentally infecting my code with a viral license.

As users of Stack Overflow, you have to think very carefully about what kind of contributors you want to encourage. Do you want a community where everyone from beginners to seasoned veterans participate? Or do you want a community where professionals cannot participate, leaving only narcissistic amateurs who insist that you plant their name in the already-60-page-long legal notices section of your application because they provided a 3 line fragment of code that got cut-and-pasted through three generations of answers to a question, thereby infecting not only their own pitiable (and materially incorrect) contribution, but also the more substantial contributions of others who commented afterwards.

Please understand that for most people this looks trivial and inconsequential. But for anyone who writes software for living this a huge showstopping impediment. Serious enough it might lead to corporate policies that prevent people from using this site. As professional developers, we have to understand licensing issues. And the current situation is a nightmare. Action needs to be taken urgently.

I strongly urge everyone to support this initiative, and expedite its immediate execution.

  • 3
    You begin with "most professional developers" but you end up implying "all". Whether the statistical claim is accurate or not, the generalisation is not. Not all professional developers work on proprietary code bases. Some professional developers work on free software projects either in their own time or as employees of companies. Please resist the temptation to assume that free entails amateur. That is no more the case than the claim that non-free entails professional, though the latter claim is probably more obviously rubbish. – cfr Dec 26 '15 at 1:02
2

I don't fully understand what was written, even after reading it and many of the answers and comments here.

To me, it seems clear that it's absolute nonsense to post code publicly on the Internet and have any expectation that anyone else will read (let alone understand) a legal license, or that they will be bound to not use that code however they find it useful. I can hardly believe that intelligent people think that makes any sense. Multiply that feeling by at least 10x if it is posted on a Q&A code help site like this.

The idea that code posted on a public voluntary code help Q&A site would not be legally usable by anyone, just strikes me as "whoever thinks that is insane, or is thinking about it inside a painfully twisted legal context".

So, I have no idea whether this incomprehensible legal adjustment makes the supposed incomprehensible legal agreement more or less sane. Copyright laws are clearly ridiculously broken.

Edit: Thanks to @muru in comments, I finally get that this is just about redistributing code or text, not just using the code and answers in projects whose code I'm not publishing. I feel a bit like Emily Litella (attribution: Gilda Radner & Saturday Night Live), except for the part about it being so hard to follow what the licenses actually mean without a non-legalese explanation.

  • 2
    Read this: meta.stackoverflow.com/questions/286582/… – Spencer Ruport Dec 16 '15 at 21:49
  • @SpencerRuport Thanks. – Dronz Dec 16 '15 at 21:53
  • 7
    The idea that just letting someone read my work makes them instantly able to use it without even acknowledging me just strikes me as "whoever thinks that is insane". – Josh Caswell Dec 16 '15 at 21:55
  • 2
    @JoshCaswell Wow. So you're hoping that in addition to getting thanked publicly on StackExchange (where it's naturally acknowledged and likely that anyone else who actually might care would find it), software (and phone apps, and web sites, and device owner's manuals) should have a credits section for answers got off the Internet for every bug and so on, and everyone should agree with you or they're insane? – Dronz Dec 16 '15 at 22:06
  • I didn't specify the form of the attribution, and, uh, the "insane" language is your own. – Josh Caswell Dec 16 '15 at 22:13
  • @JoshCaswell It's taken me 42 minutes to start to feel like I probably understand what the proposed change even means. I may be wrong, but it sound like the idea is that there was an expectation of attribution, and with this change, there wouldn't be? If you feel inclined, I'd be interested to understand what you do think the expected agreement should be for using a few lines of code from a Q&A site like this? – Dronz Dec 16 '15 at 22:34
  • 1
    @Dronz Specifically, this part: "Contributors agree to give code users permission to ignore the MIT License’s notice preservation requirement, as long as users give reasonable attribution upon request of the copyright holder". It used to be that you had to provide attribution, no exceptions. – muru Dec 16 '15 at 23:08
  • 4
    @muru So I'm legally required to make a section on my ASP.NET web site where it lists things like "Thanks to MyCodeIsI337 on StackExchange for giving me 2 lines of XML that stop the site hanging for 20 extra second when loading certain pages", etc? I really don't understand what the requirement is. – Dronz Dec 16 '15 at 23:32
  • @Dronz are you redistributing the 2 lines of XML? – muru Dec 16 '15 at 23:33
  • @muru No, not unless the site goes into debug mode and dumps the XML as it sometimes does. Is this only for source code redistributed as source? – Dronz Dec 16 '15 at 23:40
  • Yes, the CC-BY-SA license requires that you provide attribution when you redistribute it (not only for code, but any content here). The MIT License also requires it, but it's only applied to code. However, SE is now applying a waiver to that requirement on top of it. – muru Dec 16 '15 at 23:42
  • @muru Aha! Wow, it sure took me a long time to even figure out what was being discussed. I think I've even studied those licenses several times before, even only a few months ago. Thanks! Makes much more sense to me now. – Dronz Dec 16 '15 at 23:57
  • 1
    The requirements for attribution under the existing license are that the republished material be accompanied by a statement that the material comes from SO/SE, the username and link to the user page of the author, and a link to the post. There's no requirement (as far as I can see) that a binary be distributed with "credits" for the source -- the attribution only needs to be in the source. Personally, I would be satisfied with my name and a link to the post (which thus implicitly mentions the site), but it's not up to me. – Josh Caswell Dec 17 '15 at 0:02
  • @JoshCaswell Thanks for explaining. That makes complete sense to me, now that I have some idea what's actually being proposed. – Dronz Dec 17 '15 at 1:12
  • 4
    @JoshCaswell - The problem isn't with the attribution, it's with the 'ShareAlike' component of CC-BY-SA. Everyone is focusing on the wrong aspect, which isn't that attribution requirements have changed, but that a copyleft license has been replaced with a permissive one. You can add "I should be able to force someone to open-source their entire codebase if I help them with a code snippet" to your list of 'things an insane person might think'. – aroth Dec 17 '15 at 6:59
2

The intention is well but it's doing more bad than good. If I use code from hundreds of different answers on StackOverflow (which is likely the case for anyone pursuing a career in programming) should I attach a huge name list to every project?

No.

And indeed that's why you propose a modified MIT license (wow, another license) that basically relieves me of this duty... unless you want actually the opposite.

This is not thought out.

Be consequent and use the WTF license or the Free Public License (if you like liability waivers) and nothing else.

Only a really free license is the most useful license for code in a Q&A site. (And would make Stackoverflow equal to a code learning book or so because also there you do not have to give attribution when you use code from the content.)

The best is if we all just do what the fuck we want to with the codez that we give to each other freely.

This actually applies to StackOverflow where no attribution is just the only practical solution. For CodeReview for example much more strict rules should apply. But it's up to them to define them.

  • 1
    I would suggest picking up one of the licences approved by the OSI - a close match to WTFL is the Free Public License, which has a no liability blurb that is lacking in the WTFL. – assylias Dec 20 '15 at 1:43
  • @assylias Yes, that sounds even a bit better. – Trilarion Dec 20 '15 at 10:30
  • One quibble with the Free Public License, based on its similarity to the ISC License: "Permission to use, copy, modify, and/or distribute this software…" This is roughly the same language from the license of Pine that the University of Washington later claimed prohibited people from distributing modified versions of the software. (Source: Free Software Foundation, Various Licenses and Comments About Them, ISC License) – jkdev Dec 23 '15 at 4:36
2

Compared to the existing CC BY SA license I think the new license better fits with source code and would address many questions which have been raised regarding use of code from SO. It also appears to be closer to the original intent of the license used on Stack Overflow, to allow the use of code excerpts without the CC BY SA licence applying since it would be considered to be fair use, as stated in this answer from Jeff Atwood:

The cc-wiki license seems pretty clear to me on this point: free to remix and reuse, as long as you attribute and use a similar license.

That said, a snippet of code falls under excerpt category and thus should be free to use under fair use.

This biggest problem with this change is the license mess it will create due to there being multiple licenses used for content.

  • It isn't always clear cut what is or isn't code in a post.
  • Different questions and answers having different licenses depending on when they were posted.
  • What happens if you use code from an older question or answer which is then modified in the newer answer? Given the SA requirement then the new answer has to also use the old CC BY SA license.
  • What license applies to edits of posts? Does fixing an error in an old answer then make all of the code use the new license or just the couple of letters changed?

To address the first issue I feel the license for everything should be changed, not just the code portion but the whole post. CC BY would seem the the obvious choice and it just removes the ugly viral SA part of the license which is really the only problem this change is addressing. But really no CC license is appropriate for software so the "MIT" license would seem better. I don't see anything wrong with keeping attribution requirements and looking at other answers and comments it seems other people don't like the removal of this requirement.

To partially address the second issue there needs to be something on each post which indicates what license applies. It's not great but it's better than having to look at post dates and potentially even the history of the post to work out which parts are under what license.

It's pretty much impossible to address the other issues as they are effectively the same issues which currently exist now with the use of code from SO in projects which don't use a compatible license. But now it's being introduced into posts on SO itself, too.

Some users have tried to get around the viral SA license by stating in their profiles that all of their posts may be used under a more permissive license or even public domain. I think this could be a good way to address some of the issues. Indeed I think you should actually add a link to all profiles to allow users to opt-in to changing all of their past posts to use the new license and this to be shown on the profile when another user views it.

So bottom line, I'm in favour of the change but still see lots of potential problems that need to be thought through. The real question is why on earth did it take so long!

1

I have one question about this proposal. I don't mind the license change, because MIT is super permissive. I only use the GPL when I feel it is absolutely necessary to ensure certain rights cannot be bypassed by a fork, but that's outside the scope of this discussion.

A lot of my questions include a complete sample program/MCVE/SSCCE/whatever you want to call it. I currently have them uploaded onto a github repo, github.com/andlabs/misctestprogs alongside other miscellaneous test programs I've written. For instance, the test program from this question is available here. This repo is also governed by the MIT license, but with the copyright assigned to me.

Would my version of the MIT license be in conflict with Stack Exchange's, specifically in regard to copyright assignment?

I already know that the licenses are identical apart from copyright, so there's no issue with usage or duplication. I'm just curious if there would be a potential conflict because the two sites would have different copyright claims.

Or to put it another way, would my repo (which contains my MCVEs for Stack Overflow questions that I ask) in some way violate the TOS with this proposal?

Thanks.

  • 5
    If you own the copyright, you can license it to whomever under whatever differing licenses you please. You can post code on Github licensed under the MIT license (or GPL, etc.), and then post the same code on Stack Exchange which will be under the CC BY-SA 3.0 (currently). When you post to Stack Exchange, you do not give up your copyright. You merely license it to Stack Exchange (currently under the CC BY-SA 3.0). – cpburnz Dec 23 '15 at 21:53
  • 3
    In addition to what @cpburnz says, you can even permit SO/SE users to get it under other licence terms. The, currently CC-BY-SA, then not-quite-MIT, licence is from you to SO/SE, who then use that licence to publish to the world, but nothing is stopping you from offering the same content under different licence terms, neither on SO/SE nor elsewhere (e.g. github), unless you issue an exclusive licence contract to someone (and even then, e.g. in Germany, the exclusiveness can be revoked unilaterally by the author after 30 years). This is what I do, see my profile for the text I used. – mirabilos Dec 26 '15 at 20:28
0

I suspect that the issue at hand would have been easier resolved if not the source but the target determined which license would apply.

In particular, reusing SO code in a program could be licensed under the MIT license. It's fairly clear whether code is used in a program. Code fed to a CPU, compiler or script interpreter constitutes a program. Code mixed with prose, read by humans, is not a program.

  • So is a .tex document a programme or not? What about a .cls file? How about a .dtx file which includes the documentation and the package code and which produces both when compiled in different ways? That is, what about code which is both mixed with prose and read by humans and fed to a compiler? – cfr Dec 17 '15 at 0:26
  • @cfr: Like TrueType, I think you have to treat those as code. – MSalters Dec 17 '15 at 1:14
  • 2
    So if somebody posts a question asking how to typeset their dissertation abstract in a particular way and is unwise enough to include the actual text of their abstract, that abstract can be used without even attributing it to them? So long, of course, as it is used in a .tex document which is compiled to produce the new document rather than, say, being copied into a Word document. – cfr Dec 17 '15 at 1:25
  • @cfr: I suspect we don't need formal rules for that. It would be plagiarism regardless of our license terms. – MSalters Dec 17 '15 at 1:29
  • It is plagiarism whether it is code or not. The point is that it is not at all clear it is code. Indeed, it seems obvious that it is not. – cfr Dec 17 '15 at 1:58
  • 6
    The MIT license can't discriminate against fields of endeavor and remain an approved free software license in application. That is to say, we can't tell you that you can't print out every code snippet on the site and wallpaper your house with it. If we say "The MIT license covers code", we pretty much have to stop there. – Tim Post Dec 17 '15 at 4:31
  • @TimPost true, which is why I argue (in my answer on this Meta question) for harmonic licence terms that don’t distinguish between code and nōn-code contributions. – mirabilos Dec 17 '15 at 10:22
  • The proposed license does distinguish between code and text. I suppose there's a vague loophole in which somebody creates a website that contains all the code snippets found on StackExchange, minus all explanatory text. But how would you use such a site in practice? – Robin Davies Dec 27 '15 at 17:25
0

Figuratively speaking -- if Stack Overflow is a hammer, maybe code-sharing isn't a nail.

An alternative solution is to provide a one-click export of code from your Stack Overflow post to your GitHub account.

Then, if you are savvy about software licenses -- and if you are the actual author of the code -- you could edit your code on GitHub and apply an additional license to it.

Yes, this adds steps compared to just MIT-licensing all code. And it's certainly tempting to use code any way you want, especially if someone invites you to do so. But that doesn't change the actual requirements of copyright law...

  • 2
    You can just add a license-grant on your SO profile-page / the specific post, if you want to dual-license. No need to eport it somewhere else first. – Deduplicator Dec 29 '15 at 21:45
  • It's a fair point. And posting code on multiple sites is often... um... duplicative. On the other hand, GitHub is where people generally look for open-source material. – jkdev Dec 30 '15 at 2:03
-2

I don't see how simply linking to the original source is going to work in practice, since even with the best intentions at least some links will rot over time. But if S.O. itself provided a permalink service and a mechanism for managing and maintaining (and perhaps searching and adding links to) local copies of referenced sources then this particular problem would be addressed.

  • 4
    All the links to posts on any SE site are perma-links. It's just that some posts are soft-deleted for reasons of moderation, whereafter only 10K users, the post-owner and moderators can see it (and maybe reverse that decision). – Deduplicator Dec 19 '15 at 22:06
  • @Deduplicator either you misunderstood what I meant by a permalinking service (I do understand that SE posts themselves are permalinked), or I misunderstood item A in the O.P. My point was that if an SE post contains an external link pointing to a github project page, for example, then that link will break (and whatever legal value it may have will evaporate) if github goes offline. My thought was that if SE itself kept full local copies of referenced sources then we could avoid both cluttered posts and broken links. – Peter Dec 22 '15 at 15:30
  • If the post depends on external content, it is link-only and either has to be fixed by the OP (only he can relicense) or deleted. Aside from that, referencing something in an answer here does not change its license. – Deduplicator Dec 22 '15 at 16:55
  • @Deduplicator again I'm not sure if we're talking about the same thing. The point of the link proposed in item A in the O.P. above appears to be to respect the conditions of an existing license when quoting code in an SE question or answer. My point was simply that the legal value of this link is no better than its referential integrity or uptime. If you're talking about what needs to happen to such references when the license on the original source changes then I think you're raising a different set of questions. – Peter Dec 22 '15 at 18:51
  • My reading of (A) is that it's about adding attributing links pointing to Stack Overflow in code you're writing elsewhere. You seem to be reading it as the opposite -- perhaps the wording could be clarified. – Jeremy Banks Dec 27 '15 at 21:21
-5

This sounds like a completely pointless complication.

Code snippets most likely do not deserve copyright protection as they are small, many times trivial, and almost always describe facts and do not show any creativity. Since they will almost always fall under "fair use" the discussion under which license to put them seems pointless.

I, and hopefully all others, do not post in public code that I care about enforcing copyrights on. I have no ability to sue someone half way around the world because he copied 3 lines of my code, therefor the pretense of enforcing any kind of requirement like attribution is laughable.

Even if the license is meaningful and have a standing in court and I actually can afford a lawyer to sue someone, how will I exactly prove that he copied the code from my answer and not from some other one or some third source?

This sounds like a change being done for the benefit of some legal department at some big corp and not for the benefit of the contributors of SE. Frankly if someone is in doubt if he can use my code then the answer is simple - don't use it. I will welcome payment if someone really feels like he needs an explicit license to use my code ;)

  • 3
    Hint: Code Review – Mathieu Guindon Dec 16 '15 at 20:16
  • 3
    Could you define a snippit? Is this code review post a snippit? – user213963 Dec 16 '15 at 20:16
  • If you can't define a snippet how exactly do you define "code"? If people are posting sensitive code (why code review people think it happens only there?) then how exactly are they going to maintain an IP to it? In practical terms, since it is impossible to prove code C&P in any project which is not open source those people are putting their code in public domain. – Mark Kaplun Dec 16 '15 at 20:25
  • 5
    Big Co. Legal Departments don't care; they'll cheerfully tell programmers that they can't use SO if they want to keep their jobs. Meanwhile, scandalous coders will cheerfully pass off others' work without attribution and fly under the radar. So the perceived ambiguity really only hurts the programmers working at places with over-tetchy legal departments; so those are the ones Sam's trying to help here. We can talk trash about lawyers and copy-paste coders all evening, but it doesn't change who is actual affected, or how hard it is to make folks honest; best just make it easy to be honest. – Shog9 Dec 16 '15 at 20:59
  • 1
    @Shog9, that is exactly what I meant, but stating who these changes are made for is a good thing IMO. I don't hate lawyers but not specifying what problem this change is meant to solve removes context from the discussion. Personally I am not interested in the problems that corps have with utilizing my code and I will gladly MIT it, but for many worthy profiles it is possible to reach to the actual person and request a license grant explicitly. – Mark Kaplun Dec 16 '15 at 21:27
  • I actually fail to see how you make life easier for the lawyers as they will still need to inspect the original post to make sure there is no attribution requirement and then make sure the code contains the attribution and do that for each release of the code. And this is before touching the edit problem. – Mark Kaplun Dec 16 '15 at 21:27
  • 3
    I have no idea what makes life easier for lawyers. Gel pens maybe? Hopefully, this helps keep lawyers away from coders. – Shog9 Dec 16 '15 at 21:32
  • 1
    "for the benefit of some legal department", spot on, you nailed it. Why the downvotes? This is very close to the truth, the comments and original post say this in fact. Makes no difference to me, I've never used a snippet in my final code that has more than a passing resemblance to what I got from se. Nor would I ever attribute, so functionally there is no change, as you said, this is only about lawyers for corporations, not actual real people. If I post some gpl code as a solution, it isn't suddenly not my gpl code, it's just a code solution online, same as all the others. Just ignore. – Lizardx Dec 17 '15 at 2:20
  • 2
    "Code snippets most likely do not deserve copyright protection..." Don't be too sure. Even a nine-line function that does something really simple can be protected by copyright (this happened in the recent Oracle v. Google case). – jkdev Dec 17 '15 at 9:33
  • @jkdev, sorry but summaries at /. is probably the least invormative thing you can read in the tech world (and I was reading ./ for about 10 years so I actually know). In theory you are right but that is an extremely rare case for which my "contact the user for permission to use his code" is the best thing to do – Mark Kaplun Dec 17 '15 at 9:39
  • 1
    I've read other articles on the subject as well (and can share some links if you want). As I understand it, the court held that copying a simple nine-line rangeCheck function was still copying, and not trivially small (not 'de minimis') but the amount of damages to Oracle was zero dollars since Google could have very quickly written its own code that served the same purpose. – jkdev Dec 17 '15 at 9:42
  • @jkdev,well if someone from sun have posted that code on SO with the "old" license scheme then google would have had hard time avoiding attributing properly attributing it but with the "new" scheme google could claim it is public domain even if that code was posted without any permit. Since you do not sign anything that claims that the code you post is your own it actually not going to help anyone for SO to say that it thinks it is licensed under MIT – Mark Kaplun Dec 17 '15 at 9:54
-5

Who are these people who will stop contributing answers to Stack Exchange because they won't get attribution? And does anyone really care if they no longer contribute?

  • 1
    Hmm. Your first question conflates two different things: those who consider lack of attribution a dealbreaker (probably not all that common, though probably not as rare as you appear to think) and those who merely strongly desire it. You are certainly free to attempt to use monopoly power to coerce the latter to choose between contributing without attribution and not contributing at all, but quite frankly, I think this is uncouth. Fortunately, the inherent highhandedness of this approach is well reflected in the language of this answer. – Nathan Tuggy Dec 27 '15 at 21:48
  • 1
    This doesn't seem to really add anything to the discussion over and above your earlier answer. Read uncharitably, it's rather inflammatory, although it fortunately doesn't seem to have sparked any fires. – Josh Caswell Dec 31 '15 at 18:59
-6

Different situations/use cases require different licenses

The Stack Exchange sites have obvious examples where the current and the suggested license models do not really work well (such as the previously mentioned Code Review, etc.). Therefore, I feel that the proposed change actually makes the situation more complicated without really solving the root issues. Also, there is the problem with the pre-change code which would still have the old license.

Why not generally aknowledge the need for different licenses, but in a different way?

  • Every question defines which license it uses for code (or maybe also for the text - to be discussed I guess), both for code in the question and also for code in the answers.

  • When one looks at a post or answers a post, the name of the applicable license is prominently shown (with a link to the full license). As a person seeking an answer, this tells me what I am allowed to do with everything I find in the question; as a person giving an answer, it allows me to decide if I'm okay with the license.

  • What license is linked to a question is only editable by the original author and only as long as no question has been posted, or by moderators, as to avoid robbing content by means of changing the license.

  • Everything posted until now remains with the license applicable to the respective site, so there is no transition issue at all.

  • Migrating questions is not a problem because the license is attached to the question.

  • Data exports and maybe even the data made available to bots could be made dependent on the license chosen if necessary.

I believe that this solution should be able to address most (if not all) licensing issues, without generating too much complexity and especially without adding ambiguity.

The good thing is that this would enable programmers to specifically ask questions requiring a liberal license if this is related to some closed-source project they're working on, without violating the license as it quite certainly happens now (without anyone knowing). On the other hand, it would allow to protect posts with significant amounts of code such as on Code Review. Everyone could get what they need for their specific situation.

  • 5
    Are you proposing to let the asker select a code license which the answerers must follow? I would see that leading to "plz give public-domain codes plz" questions. Code from the question modified in the answer would be a derivative work, but plenty of questions either won't include code or can be answered without reference to the original code. – Jeffrey Bosboom Dec 21 '15 at 3:20
  • @JeffreyBosboom Yes, that was my intention. If the asking person chooses an inappropriate license they will get no answers (but probably comments asking them to change the license), so I don't see that as a problem. – Lucero Dec 21 '15 at 3:35
  • 4
    What happens if I ask a duplicate question but specify a different license? – Jeffrey Bosboom Dec 21 '15 at 3:36
  • @JeffreyBosboom you mean if a question already on SO (for instance) is asked again just using another license? Well, it would probably be handled the same as today, which may mean that you don't get new replies. However, I believe that this would not often be problematic. Single-line API-Calls can easily be rewritten if one knows the name of the API without causing a license breach ; more complex duplicates where you actually need more than the textual answer are rare I believe. – Lucero Dec 21 '15 at 3:52
-7

I think code in questions should be regarded as not licensed, and code in answers should be public domain under the Unlicense or CC0 (as I have stated in reference to my own posts on my profile).

These non-licenses reflect the reality here -- we have no control over who duplicates the code we post, how it is used, or whether the code is attributed. Multiple contributors to the same posts muddy the water even more. The reality, too, is that it could be a full time job monitoring public code looking for violations; a few small tweaks to variable names or bracket syntax make this a nearly or actually impossible task, as does the fact that a lot of code isn't publicly searchable.

Face it: when you post code on Stack Overflow, you give it to the world. No licence.

  • 1
    Why should code in questions be considered not licensed, what does allow SE to publish it then, and are you sure building an answer based on the question should be prohibited? – Deduplicator Dec 19 '15 at 22:10
  • 2
    This is basically an argument that the entire web should be (or be considered) public domain. Frankly, I consider that ridiculous. – Nathan Tuggy Dec 19 '15 at 22:23
  • 1
    @NathanTuggy For all intents and purposes, it is all public domain. I don't argue that it is a good thing, but the fact remains that you can download and use any art, music, literature, code, or video that you can see. DRM fails, for example, because no matter what they do to the file you must be able to listen to it, and if you can listen to it you can record the audio and make a copy. However, when an artist publishes music, their intent is to make money, so it makes sense to protect their property. When we post help on Stack Overflow, the intention is to give knowledge. – Chris Dec 21 '15 at 8:16
  • 2
    @Chris While I'm no attorney, my understanding is that "public domain" has two major legal issues: (a) many jurisdictions do not recognize the concept, and (b) being "public domain" does not necessarily absolve you of liability. – Basil Bourque Dec 22 '15 at 2:47
  • 2
    If code in questions is unlicensed, no answer can legally copy, modify or otherwise use that code. Indeed, I can't legally copy the code to my machine and run it in private in order to try to reproduce the error the asker wants help with. So I can't even post an answer which says "In line 3, change the fourth word to this. Replace line 5 by that." Unless I can be sure of the cause and the solution simply by reading the code without any need for testing. Note that this is what "no licence" means. No licence means you grant no rights. The default is all rights reserved in most places. – cfr Dec 26 '15 at 1:20

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .