So as we all well know, Stack Exchange has been proposing that we change the license used for code to MIT.

Is this change, or a change to any other license for code, necessary at all?

If it is, why? What problem does the license change solve, in detail? If we can get some of this explained, then it may be easier to explain when the next iteration comes around why this is necessary.


Yes, doing something is necessary.

CC BY-SA is a copyleft license. If you incorporate something that is CC BY-SA into a larger work, that larger work must also be released under a CC BY-SA or compatible license.

Creative Commons does not recommend the use of a Creative Commons license for software. Their licenses do not recognize distinctions between source distribution and binary distribution, do not discuss linking, and do not discuss patent grants. Note that the CC0 Public Domain dedication is acceptable for software.

Right now, if you took copyrightable code from Stack Overflow (or any Stack Exchange site) and used it in your application, your application would need to be released under a compatible license. This is not desirable for an organization that wishes to release closed-source software.

If Stack Exchange migrated from CC BY-SA 3.0 to CC BY-SA 4.0, it would make it slightly easier. The Free Art License (analysis, comparison) and GPLv3 (analysis, comparison) are compatible with CC BY-SA 4.0. This means that if you have content licensed CC BY-SA 4.0, you can use it in a Free Art Licensed or GPLv3 licensed project. You can also very easily include Free Art Licensed software in a post on Stack Exchange. However, you cannot as easily include GPLv3 licensed software as it is only one-way compatible with the BY-SA 4.0.

Even after a migration, there are still issues that would need to be ironed out. Most open source software is released under a permissive license - 25% MIT, 22% Apache 2.0, 6% BSD 3-Clause. There are also a large number of closed-source software projects that exist. Due to the viral nature of the ShareAlike clause of the Creative Commons licenses, the Free Art License, and the GPL, these closed or permissively licensed projects would not be able to use any copyrightable code posted on Stack Exchange sites. That's closing the door on a lot of people.

  • Being copyleft is an advantage, not a problem. See this. – PyRulez Jan 24 '16 at 0:07
  • @PyRulez Copyleft is not always an advantage. If you cannot (for legal, regulatory, or business reasons) release source code, you cannot use copyleft software. Since Stack Overflow's purpose is to make developer's lives better and more awesome, using copyleft would be detrimental to that as developers working on closed-source projects (personally or professionally) would not be able to use copyrighted code licensed under a copyleft license that was posted. – Thomas Owens Jan 24 '16 at 0:10
  • It hasn't been a problem so far. It encourages more developers and businesses to give our code back to us. – PyRulez Jan 24 '16 at 0:14
  • @PyRulez It hasn't been much of an issue so far because most code on Stack Overflow doesn't meet the threshold of originality, so it can't be copyrighted. If it can't be copyrighted, then you can't license it. However, it has been a problem - I found a class written by a JAXB developer that fixed weird behavior between JAXB1 and JAXB2. Because it may have met the threshold of originality and I can't use code under a copyleft license, I could not use that class in a project at work. I prefer to not release my personal projects under a copyleft license, so I need to be careful there, too. (1/2) – Thomas Owens Jan 24 '16 at 0:18
  • @PyRulez Simply put, if you want all developers to feel safe and comfortable using code found on a SE site, then you can't use a copyleft license, plain and simple. However, there may be issues with permissive licenses and people posting large amounts of code on Code Review, where the code is in significant amounts (likely to meet the threshold of originality) and they may not want their code to be widely used. But in terms of sites like SO, Programmers, and other sites, wide usage of answers should be one of the most important factors to consider. – Thomas Owens Jan 24 '16 at 0:20
  • You also want developers to feel and comfortable posting code to SE. Some businesses may not allow developers to post to SE if it uses a permissive license, since this makes it easier for competitors to use in their products without giving the code back. Also, some developers don't want to use a permissive license. – PyRulez Jan 24 '16 at 0:23
  • @PyRulez As far as businesses, no one should be posting company-owned code. I don't own any code that I write at work. I can't post it because I'm not legally allowed to offer it under the license (any license - copyleft or permissive). You can't license what you don't own. As far as individual developers, that's their decision. However, if you look at my posts in a few questions advocating permissive licenses, they are among the most highly upvoted. Plus, SE was considering a permissive license in MIT. Keeping a copyleft license for code is going to be an uphill battle. – Thomas Owens Jan 24 '16 at 0:26
  • The thing is, any code you write while at work is company owned. Companies will also want to discourage employees from giving competitors code, by discipling anyone who does (you don't have to do anything illegal to get fired). – PyRulez Jan 24 '16 at 0:31

No, it is not necessary.

CC-BY-SA 3.0 is a recommended license for publishing heterogeneous content that intended to be collaboratively edited and collaboratively curated:

If your work is not being created for use with a particular software project, or if it wouldn't be appropriate to use the same license as the project, then we only recommend that you choose a copyleft license that's appropriate for your work. We have some of these listed on our license list. If no license seems especially appropriate, the Creative Commons Attribution-ShareAlike [CC-BY-SA] license is a copyleft that can be used for many different kinds of works.

That is why it was adopted by Wikipedia, and it is eminently suitable for Stack Exchange.

It is concise, comprehensible, and easy to comply with. Following the terms of the license will protect contributors and end-users alike from misappropriation and from the erosion of the commons.


Yes, but it is not sufficient.

Many professional developers are subject to a wide variety of contractual obligations as part of their employment. Some post to Stack Overflow on company time or equipment. Others have contracts mandating copyright transfer of all code. Enforceability and legality are both questionable here, but simply sticking our collective head in the sand and ignoring the issue is not a solution.

As a developer, of course, my obligations are clear: I cannot do anything w.r.t. Stack Exchange which violates my employment contract, such as submitting code belonging to my employer. But as a reuser, my obligations are currently unsustainable. I have to psychically know that the answer I want to use is not subject to copyright problems, that the developer who wrote it was not violating their employment contract. Copyright liability is quite possible even if you don't know you're infringing.

So that's the problem. What's the solution?

There is no silver bullet, but I think a good starting point would be for Stack Exchange to make contact with some of the larger employers and negotiate some kind of licensing arrangement. We could then put a special indicator (like Twitter's "verified account" badge) on the info cards of users affected by those licensing arrangements, to indicate that Stack Exchange has a deal with the user's employer and we know there aren't any copyright issues. This would make reusers' lives much easier, since we can just look for the licensing icon.

  • 3
    I don't think Stack Exchange cares about our employment contracts - it's up to us (as users) to make sure that we own them and can license them under the defined terms. I think the only issues are what I pointed out - it's really hard to use any code that is copyrighted and falls under the license in projects. It forces CC BY-SA 3.0 on the project, which is a terrible license for software. – Thomas Owens Jan 18 '16 at 19:24
  • @ThomasOwens: As I said, necessary but not sufficient. I am not willing to guess about the copyright status of other users' posts. That means I cannot make use of a significant portion of Stack Exchange content. This is a Bad Thing. – Kevin Jan 18 '16 at 19:26
  • 1
    I'm a little unclear on the proposal you make. Are you saying that SE would certify that the code posted by a particular user account was free of copyright issues? Based on the employer of the user? That doesn't make much sense to me. What's the connection? – jscs Jan 18 '16 at 19:27
  • @JoshCaswell: Certifying is legally risky. I was thinking something more along the lines of "this user told us they work for X and we have a deal with X, so assuming the user is not lying about working for X, you can reuse this content." – Kevin Jan 18 '16 at 19:27
  • In that respect, I don't see how SE content is different than any other content on the Internet that you may want to use. How do you know anyone who posted any content anywhere actually has the rights to release it under the license that they have? At some point, you just need to trust. – Thomas Owens Jan 18 '16 at 19:28
  • 1
    Or do you simply never use content from anywhere on the Internet? Because that seems like you'd spend a lot of time reinventing the wheel. – Thomas Owens Jan 18 '16 at 19:28
  • @ThomasOwens: You don't know. That's the reality of the internet. Everything is potentially infringing, and a lot of it really is infringing. Copyright law is currently a mess. Why can't we try to make it less bad? – Kevin Jan 18 '16 at 19:28
  • 1
    I don't really see how that solves the problem: the paranoid legal department who won't let J. Programmer use SE code now isn't likely to go along with that either, since it involves trusting not one but three other parties (poster, poster's employer, and SE). – jscs Jan 18 '16 at 19:30
  • @JoshCaswell: I don't understand this objection. If there is a valid license in place, that's it, you don't have to trust anyone. – Kevin Jan 18 '16 at 19:31
  • 3
    This sounds like a bureaucratic nightmare. And I should I know about bureaucratic nightmares - I work in the defense industry. There are methods to report content that infringes on copyright to Stack Exchange. If a company wants to enforce this, they could issue takedown notices for content they feel they have a claim to. – Thomas Owens Jan 18 '16 at 19:34
  • @ThomasOwens: That helps SE, but it doesn't help me as a reuser. I've already used the content. I am liable. – Kevin Jan 18 '16 at 19:34
  • Well, but there's already a license in place, so what benefit does this statement from SE "This user's code is, like, totally okay to use! Probably!" provide? – jscs Jan 18 '16 at 19:41
  • @JoshCaswell: I said you need a valid license. If the code actually belongs to someone else, it's not valid. We're just trying to establish that the code is actually the submitter's to give away. – Kevin Jan 18 '16 at 19:42
  • But if SE's not going to make a legal statement to that effect -- and it's hard to see how they could even if they wanted to -- what difference does a virtual thumbs-up-and-a-smile make to my determination of the validity of the license? – jscs Jan 18 '16 at 19:44
  • @JoshCaswell: Honestly, not much. But short of completely rewriting the copyright laws, it's the best we can do, so far as I am aware (feel free to propose some other system!). And it is better than nothing. It at least provides a chain of title back to the employer, which would simplify litigation. I don't understand what downsides are causing people to downvote this. So far as I can tell, there are none. – Kevin Jan 18 '16 at 19:46

You must log in to answer this question.

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