-347

Update: January 15, 2016

Thank you for your patience and feedback. The changes proposed here have been delayed indefinitely - we'll be back later to open some more discussions.


Important context for those arriving from reddit and slashdot links:
The status quo is not "public domain"; attribution is already required.

See:


TLDR: This is a follow-up to our initial proposal for transitioning to a more user-friendly code license. The purpose of this post is to address the concern expressed most frequently in response to the initial proposal: no attribution requirement. Also, we want to make sure everyone has ample opportunity to provide feedback and we have time to consider it. We are more concerned with doing this right than doing it fast, so please let us know what you think about this proposed change.

A month ago we proposed new licensing terms to cover code posted at Stack Overflow and across the Stack Exchange network. Hundreds of you voted on the proposal, and many of you let us know how we could improve. We gathered all your feedback, and after careful consideration we have amended the proposal.

2 changes:

  1. Attribution now continues to be required when you use code found at Stack Overflow and Stack Exchange
  2. The changes will now go into effect March 1, 2016 The changes proposed here have been delayed indefinitely.

Change 1 was made to accommodate contributors who want credit, plus to help developers identify the provenance of a Stack Overflow code snippet when they find it integrated into a project. Change 2 was made to allow you more time to digest this change and socialize it within your organizations.

Both changes were thoroughly vetted internally, with our lawyers, and with the OSI. We think they are an improvement upon the previous proposal, and a vast improvement upon the status quo.

As always, community input has been instrumental in moving this initative forward. We're fairly certain we've arrived at the best possible balance for everyone's needs, but if you spot anything new you think we've missed, please let us know.

The Fine Print:

When the change goes live, new 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. This optional exception to the MIT License will live in our terms of service.

The only difference between the terms described above and the previous proposal is the removal of the requirement to add attribution only “upon request of the copyright holder (or Stack Exchange on behalf of the copyright holder)”. “Reasonable attribution” is now required by end users of Stack Overflow and Stack Exchange.

What is reasonable attribution?

A URL as a comment in your code is reasonable attribution.

There are certainly other forms of reasonable attribution, depending on use, and you are welcome to go above and beyond what’s required and include username, date, and anything else if you like.

You are also welcome to use the MIT License as it is traditionally interpreted: by preserving the full license with relevant fields (copyright year and copyright holder) completed.

Full guidance will be provided in an upcoming FAQ.

When will the new terms go into effect?

March 1, 2016 The changes proposed here have been delayed indefinitely.

What about other sites on the Stack Exchange network?

The new terms will go into effect for all new code on all sites in the Stack Exchange network.

We understand that some users feel the new terms are not a perfect fit for certain sites, but we think fragmenting the license across the network will lead to ambiguity – the exact problem we’re trying to solve by updating the terms.

What about code contributed prior to this change?

This change is just a first step in establishing clarity for using code found on Stack Overflow and Stack Exchange. Code contributed prior to this change will be governed by the CC BY-SA license as it has always been. We are exploring ways we might distinguish code covered by each license regime, and we hope to soon roll out an opt-in mechanism to let users relicense their old contributions under the new terms.

But what is code?

We will give you guidance on identifying code in an upcoming FAQ, plus guidance on how best to comply with the attribution requirement. But ultimately, identifying code will be a judgement call on your part. We have full faith in your ability to do this.

What’s next?

We want to hear what you think. Barring any showstopper, these terms and a detailed FAQ will be rolled out March 1, 2016.

197
  • 504
    Do you actually expect people to do this? Will code be full of SO links, really? Given how many don't bother to upvote things they find useful, leaving a link in code -- which would typically not help maintainers of the code -- is hardly a consideration. Commented Jan 14, 2016 at 15:46
  • 362
    I'm going to just start putting an ingredient list on my projects. This software is made with 45% Stack Overflow recycled content. Commented Jan 14, 2016 at 15:47
  • 128
    The voting on the previous meta post is not a reliable indicator for how the community views this version of the proposal in my opinion. There are just too many different concerns mixed into this single number. Commented Jan 14, 2016 at 15:48
  • 126
    @samthebrand, "we think fragmenting the license across the network will lead to ambiguity". Then why do it? By having one license for 'code' and another for 'non-code', you are fragmenting the license across the network. This is lunacy.
    – user136089
    Commented Jan 14, 2016 at 15:49
  • 86
    I have full faith in any decent lawyer being able to present a convincing argument that whatever judgement call I made, it was wrong.
    – hvd
    Commented Jan 14, 2016 at 15:56
  • 441
    "But what is code? We will give you guidance on identifying code in an upcoming FAQ..." No, give guidance now. You're trying to change the license of code without clearly delineating boundaries for what is and isn't code. That's a very, very important part of this. Don't just hand wave it into the future long after this discussion should have been had.
    – Cornstalks
    Commented Jan 14, 2016 at 15:57
  • 94
    You will find better luck persuading many people if you follow Shog's advice here. This reads like, "we're doing this regardless of what you think, but please let us know your thoughts!" which... :(
    – enderland
    Commented Jan 14, 2016 at 16:02
  • 78
    I want to explain my down vote here. This idea is much better than the original post. However, I don't like that some key aspects are being pushed off. Please come back when you have a definition of code, an approach to help everyone understand what is licensed under what license, and the rest of your FAQ complete. Also, like @enderland suggested, follow Shog9's advice. Commented Jan 14, 2016 at 16:07
  • 91
    @Jaydles considering an answer saying, In summary, please don't do this to us had +426? I think it's worth saying the community is not quite in agreement...
    – enderland
    Commented Jan 14, 2016 at 16:16
  • 156
    What exactly is the problem that you are trying to solve here? Users aren't pissed off enough already? The community hates this and there has been little justification for the change, so, unless you want more resistance, learn to use meta properly and write a feature-request that details an actual problem that you want to solve.
    – bjb568
    Commented Jan 14, 2016 at 16:28
  • 242
    @Jaydles I wanted to downvote the original Meta post but I only have 101 rep on Meta so I can only upvote (even though I have 9k+ on SO.) Your assumption of community agreement is likely skewed by this fact.
    – xxbbcc
    Commented Jan 14, 2016 at 16:40
  • 159
    How are the 99.5% of Stack Overflow users who never visit meta, will never see the post, will never read the new ToS and more-so simply don't care or understand licensing agreements anyway going to be told to attribute code they copy from the site?
    – Cᴏʀʏ
    Commented Jan 14, 2016 at 16:51
  • 79
    Define "showstopper"? The feedback from the previous round and this round are both overwhelmingly negative. What's it going to take to drop this altogether? Commented Jan 14, 2016 at 17:48
  • 101
    Just one comment - If the license needs a FAQ to define the license, then it's not a license.
    – rolfl
    Commented Jan 14, 2016 at 19:58
  • 82
    I am baffled by the community's general reaction to these changes, which are long overdue, legally necessary, and eminently sensible. There are legitimate minor concerns, but the overall sentiment here is insane. Typical meta change-aversion run wild.
    – Jeremy
    Commented Jan 14, 2016 at 20:36

60 Answers 60

740

85% of votes on the proposal were upvotes.

I upvoted the initial proposal because I believe it is important, but I strongly disagree with it. I suspect a lot of other folks did the same...

Your response to the proposal was positive

I'm sorry, this conclusion is wrong and everyone knows that. At least lets be honest and say:

Your response was not positive but we still believe that this is the right thing to do.

I understand your concerns, and I sympathise that you made an effort to hear us, but I still stand by the most voted answer on the initial proposal.

34
  • 7
    @joojaa, what's the implied sneaky greedy business goal you think might be behind this? (I genuinely don't know what one would be. This is simply about shifting to a license that's less ambiguous as it relates to code.)
    – Jaydles
    Commented Jan 14, 2016 at 16:01
  • 31
    @Jaydles I dont really care about the lisense per se. This does not touch me in the slightest as the license claim you make does not change anything as far as I'm concerned short code snippets do not get copyright in my locale anyway. Im more concerned of the fact that the train went and despite some negative feedback you think your getting positive feedback.
    – joojaa
    Commented Jan 14, 2016 at 16:04
  • 8
    @joojaa, to be clear, we got lots of feedback. A lot of it was positive, and a lot of it wasn't. And no solution will make everyone happy, but we've worked hard to try to find the best possible balance. And if I'm honest, the assumption that it's for some secret business reason felt unfair, mostly because it genuinely isn't - a change like this is mostly hassle for us, but we've come to recognize that NOT giving users a clear license isn't fair to contributors or those who want to comply with the rules.
    – Jaydles
    Commented Jan 14, 2016 at 16:08
  • 86
    @Jaydles that's entirely fair. But what's not fair is taking a very clearly divisive post and then broadly generalizing by ignoring the significant negative feedback from other answers on the post -- that's... disingenuous at best. So don't wrap that attitude in a "the community response was positive!" wrapper...
    – enderland
    Commented Jan 14, 2016 at 16:24
  • 8
    I probably mischaracterized the community's response to the initial proposal - it was positive, with a few "buts". I've modified this follow-up so it's less of a black-and-white interpretation of the way the community feels. But can you tell me exactly what it is you disagree with in the current proposal (as opposed to the way that we proposed it)? Commented Jan 14, 2016 at 19:10
  • 53
    I have to disagree with you on the highest-voted answer from the last thread. It simply gets the "internet" flat-out wrong. I have trouble taking seriously anyone who comes to Stack Overflow with the intention of sharing code with restrictions on who can use that code and where. If you don't want people using your code, don't share it on a public (and largely anonymous) site.
    – TylerH
    Commented Jan 14, 2016 at 19:24
  • 7
    @TylerH What about Code Review? That's a code site on the Stack Exchange network. Or Code Golf?
    – thegrinner
    Commented Jan 14, 2016 at 19:33
  • 5
    @TylerH I doubt many people are posting questions on Code Review in the expectation other people will be able to use it freely. Similarly for Code Golf, I doubt every solution/entry is intended to be freely available for anyone who wants. They aren't question-answer in the same way Stack Overflow is, and they don't have the same licensing needs.
    – thegrinner
    Commented Jan 14, 2016 at 19:54
  • 17
    @thegrinner I doubt any people are posting in Code Review with the expectation that other people won't use that code freely. If any do, they need to manage their expectations. If you post code on a free, public (and largely anonymous) code help site, there's no license that can protect it. If you need a code review of code that needs to be restricted/private (and for some reason your workplace doesn't offer that), use one of the many private 1-on-1 code review services out there where there's accountability built-in. Any anonymous passerby can copy your Code Review snippet and use it.
    – TylerH
    Commented Jan 14, 2016 at 20:02
  • 4
    @thegrinner As for Code Golf, that's just a joke site, right?
    – TylerH
    Commented Jan 14, 2016 at 20:03
  • 9
    @TylerH, do you expect people who post code on GitHub (a free, public and largely anonymous site) to feel the same as you expect people who post on Code Review? And if not, why?
    – otus
    Commented Jan 14, 2016 at 20:06
  • 9
    @otus No, I expect them to feel only slightly different, because whole repositories and complete code bases go on Github. Github also has private gists for that, too, so that comparison isn't the best. Stack Exchange sites are for snippets with isolated problems. Like someone has suggested already on this page, do you expect a two-line snippet of code to instantiate a new class to be protectable by licensure? Or appropriate for licensure in the first place? Code that is substantive enough to require a license is probably code that doesn't belong on Stack Exchange sites.
    – TylerH
    Commented Jan 14, 2016 at 20:12
  • 13
    @TylerH, I agree that substantive code probably does not belong on Stack Overflow, but Code Review requires complete, working code and Code Golf is arguably substantive code as well.
    – otus
    Commented Jan 14, 2016 at 20:16
  • 44
    @TylerH As a moderator on Code Golf, I can tell you that while we like to have fun, we are most certainly not a "joke site." We have some incredible solutions to intellectually stimulating problems. I invite you to join the community and see what we're all about.
    – Alex A.
    Commented Jan 15, 2016 at 20:56
  • 15
    @TylerH More often than not, the real challenging aspect behind the problems posted on Code Golf isn't the minification, it's the problems themselves. We've had problems ranging group theory to image processing, music to statistics. Though finding clever tricks to shorten your solution is also a big part of the challenge. But you're right, Code Golf isn't really a Q&A site in the same way Stack Overflow is; our questions are challenges and our answers are solutions, much like Puzzling.SE. I'd say we're more "nonstandard" than "non-serious." ;)
    – Alex A.
    Commented Jan 16, 2016 at 18:26
581

85% of votes on the proposal were upvotes.

Not everyone active on Stack Overflow is active at SE.Meta. For those users, they can upvote (thanks to cross-network bonus) but not downvote (that requires explicit participation on this Meta, not the SO.Meta).

I'm using SO as an example, but it applies to all concrete SE sites due to how "main" Meta works.

So, your votes are necessarily heavily skewed. And yes, I'm posting this after being unable to downvote.

If you want my opinion on how that may be fixed - use highest reputation across the network as SE.Meta reputation and disable Meta reputation changes just like on concrete Meta sites. This is not a complete fix (novice users still can't vote - I assume you value their opinion as well) but an improvement.


Not to mention the fact that you used this as an approval rating without asking for such input - it's not the usual semantics for votes on questions, even Meta questions.

Voting up a question or answer signals to the rest of the community that a post is interesting, well-researched, and useful, while voting down a post signals the opposite: that the post contains wrong information, is poorly researched, or fails to communicate information.

Well, now you're getting a much more accurate picture when we know the "rules of the game".

Update: This part of the criticism may be invalid, since (another) FAQ entry expressly says:

Unlike normal Stack Exchange sites, Meta invites the community to discuss, debate and propose changes to the way the community itself behaves, as well as how the software itself works. On posts tagged feature-request, voting indicates agreement or disagreement with the proposed change rather than just the quality or usefulness of the post itself.

This may be a FAQ problem: various parts disagree.

13
  • 258
    Upvoted your answer, since I can't vote down at SE.
    – Teemu
    Commented Jan 14, 2016 at 16:49
  • 23
    This. Just saying, I posted the comment of the similar contents on the question itself, it scored 16 and was deleted (the justification is probably "we've removed these stats from the post", but it's still the fact - users just can't express their disagreement). This is even more annoying.
    – nicael
    Commented Jan 14, 2016 at 16:52
  • 16
    And, now you can downvote :) Commented Jan 14, 2016 at 18:41
  • 6
    @kkhugs True - in fact, I was able to within like 30 seconds of posting. And I did - not because I disagree with MIT in principle, but because I agree it's not fleshed out enough and using vote count as approval rating was wrong.
    – Xan
    Commented Jan 14, 2016 at 18:42
  • 1
    @Xan - Exactly. I would downvote if I could, but I also suffer from the cross-network bonus, not being active on SE meta. Commented Jan 14, 2016 at 18:48
  • 1
    Users are also penalized with -1 reputation for downvotes. Commented Jan 14, 2016 at 19:34
  • 4
    @BenMordecai Not on questions. And not on any other Meta.
    – Xan
    Commented Jan 14, 2016 at 19:34
  • 6
    +1 I can't UV this enough. Migrating the post from MSO was a horrible move imho.
    – Sam
    Commented Jan 14, 2016 at 19:35
  • Given the system is so opaque that I thought so, one must imagine that other people think so and its just another factor in the meaning of the votes Commented Jan 14, 2016 at 19:36
  • 8
    Yep, looks like we misread this. Take a look at meta.stackexchange.com/questions/273000/… if you're interested in changing rep required for downvoting on MSE. Commented Jan 14, 2016 at 21:16
  • +1. If they're going to count upvotes, they should've done it on SO, not here.
    – user446034
    Commented Jan 15, 2016 at 6:46
  • @DavidFullerton I have expressed my idea in more depth in the question you linked. Thanks.
    – Xan
    Commented Jan 15, 2016 at 10:27
  • 6
    Some users (hey, it's me!) can't even upvote answers in contrast with the proposals. I know my opinion can't matter as much as the one of an active SE user, but this way feedback from thousands of SE users and lurkers is just completely ignored, as if they didn't even exist.
    – fquffio
    Commented Jan 15, 2016 at 11:41
521

The year is 2018…

… and the economy is in a slump. Pundits on CNN are attributing the decline to a lack of growth in the computing sector. According to Alyssa P. Bitdiddle, senior analyst with the Society of Innovative Computer Programmers,

This has been a disaster in the making since March 1, 2016, a day that will live in infamy. That was the day when lawyers were invited into the software development process. Ever since Stack Overflow Inc. declared that all code snippets should be licensed as code rather than treated as knowledge, there has been a fundamental shift in programming culture. "Intellectual Property" lawyers throughout the industry have had a field day looking for violators. Nearly every software company outside of Somalia, Chad, and North Korea is vulnerable. By my estimates, software development productivity has dropped to pre-Stack Overflow levels. The average developer quality has declined as well, as programmers aren't putting their code up for review anymore. Software companies now spend a majority of their budget on lawyers, and they simply aren't hiring.

She added,

Ironically, this culture of licensing paranoia started with noble intentions. The founders, Jeff Atwood and Joel Spolsky, wanted to promote remixing and reusing content. Creative Commons licensing was used as a pact with the contributors: since the community owned the content, the knowledge base could never be privatized like IMDb, CDDB, or Experts Exchange. Later, concerns were raised that somehow code should not be Creative Commons-licensed, one thing led to another, and now the entire industry is paying dearly. We will never know for sure, but if Stack Overflow had been a normal forum without the Creative Commons license, software developers today would not have to struggle with licensing code snippets — as if the software patent minefield weren't bad enough already!

How did we get there?

Despite a top-voted analysis that said, basically, "Please don't do this", Stack Overflow staff billed the feedback as "highly positive". This ignored the fact that some people upvoted the question because they thought that licensing was an important issue that deserved attention, rather than because they agreed with the proposal.

I think we've learned our lesson this time. This question has been downvoted off the front page of Meta.SE. Is that a clear enough signal? If not, then what would constitute the "showstopper" that you require?

What did people say last time?

Key points from the previous round were:

  • What exactly is the problem that the proposal aims to solve?
  • We're sharing knowledge, not code.
  • Permissive license is inappropriate for questions.
  • Permissive license is inappropriate for Code Review, Programming Puzzles and Code Golf, and most sites other than Stack Overflow.
  • License fragmentation is an administrative nightmare.
  • Administrative overhead of licensing has the potential to break the Creative Commons culture and our Stack Exchange communities.
  • What is the status of pre-transition snippets that get edited after the new policy?
  • If code that appears on Stack Exchange is treated as licenseable, can we discuss code for which we don't have the right to relicense?
  • Is there a threshold of originality before the MIT license kicks in?
  • A crayon license is legally unsound, logically inconsistent, and perhaps unenforceable.
  • Attribution is important to many of us.
  • If you are serious about license enforceability, attribution and transitivity are essential to cover second-generation copies.
  • What exactly did OSI say about the proposal, and how did they miss the legal unsoundness that was so obvious to many of us?
  • For a permissive license, CC0 or WTFPL may be more appropriate than MIT.
  • If there is a second license, then code should be dual-licensed, not permissive-licensed.
  • What constitutes "code"?
  • Is permissive-licensed code visually distinguishable from the rest of the content?

Out of all those issues, this revised proposal addresses approximately three. Even if this were a good idea (which I think it isn't), it would still be a half-baked idea.

What "code" are we talking about?

@MarcoAurélioDeleu has pointed out the absurdity of requiring attribution for short snippets. If you're using Stack Overflow as a resource to start learning some programming language, it would be as if you, as a tourist, had to give credit to your foreign language phrasebook for every utterance you made. Yes, the phrasebook is copyrighted. No, you are not allowed to reproduce the book. But using the book for its intended purpose is just not a copyright or a licensing issue. If you string together the lookup results for "Hello", "My stomach hurts," and "Where can I find the bathroom?", that's fine. If the book's appendix has a sample cover letter and you use it to apply for a job, that's fine too, even though the appendix is a non-trivial creative work.

Does this licensing proposal apply to the Stack Overflow documentation project? If so, you might as well kill that project now. Who would want to use that documentation resource if it meant you had to cite all the example code from it?

Do reasonable (i.e. non-troll) Stack Overflow contributors actually post original works worthy of licensing? My impression is that Stack Overflow answers are either going to be short enough that the answerer is giving it away as free advice for no-strings-attached usage, or it's substantial enough that it's going to be hosted on GitHub under the author's own terms.

So, what problem, exactly, does the proposal solve? By declaring code as subject to licensing, aren't we just feeding the trolls?

24
  • 10
    Sadly, I've expended all my votes on this question before you posted this answer. A virtual +1 from me for the SICP quote. Commented Jan 14, 2016 at 19:16
  • 91
    That last point about "worthy of licensing" I think is really the crux of the issue for me. In a simple Q&A format, its hard to think of a reasonable example that is worthy of copyright or license.
    – StingyJack
    Commented Jan 14, 2016 at 19:27
  • 21
    "So, what problem, exactly, does the proposal solve? By declaring code as subject to licensing, aren't we just feeding the trolls?" I think the problem this solves is that code is already subject to licensing. And it's subject to a license that was never meant to be applied to code, and which the Creative Commons themselves recommends against applying to code. This change addresses that issue.
    – Ajedi32
    Commented Jan 14, 2016 at 19:59
  • 12
    @Ajedi32 By making a code-vs.-advice distinction and putting different license terms on them, we are endorsing the mindset that copyright trolls would like to promote. CC-BY-SA would work just fine if Stack Exchange declared, for the sake of clarification, that all content is treated as advice. Commented Jan 14, 2016 at 20:08
  • 5
    @200_success Wouldn't doing that implicitly outlaw copy-pasting code snippets from SO into your codebase? And even if you're not directly copying, just basing your implementation on a code snippet you saw in a SO answer could theoretically get you into legal trouble. Ever heard of clean room design? Currently that's the only way to be 100% sure you're not violating the copyright of some codebase. I think a lot of people here don't realize just how bad the status quo is.
    – Ajedi32
    Commented Jan 14, 2016 at 20:19
  • 2
    I would upvote this if not for the intro.
    – otus
    Commented Jan 14, 2016 at 20:30
  • 4
    I advocated regarding all answer code as CC0 or Unlicense, essentially public domain. I was downvoted heavily for it :p
    – Chris
    Commented Jan 14, 2016 at 20:33
  • 9
    @otus I just chose to ignore the first part and upvote based on my 1 billion percent agreement with the rest of the post. :P
    – Alex A.
    Commented Jan 14, 2016 at 20:58
  • 34
    Why are there no robot assassins in this story? I was told there'd be robot assassins. What kind of half-rate dystopia doesn't have robot assassins? Are you gonna tell me that all the killer robot companies got sued out of existence and the future will have no roving killbots at all?!
    – Shog9
    Commented Jan 15, 2016 at 0:03
  • 1
    @Ajedi32 IANAL, but copyright requires minimum creativity to be valid. Very basic code is so generic that it is not copyrightable (no one holds rights for print("hello world"), although someone probably does for the compiler below that). A lot of the generic loop/syntax stuff could've just as easily been copied from a doc or from a person standing next to you... Commented Jan 15, 2016 at 0:05
  • 2
    @AnnonomusPenguin Right, but where do you draw the line? Unless you are a lawyer, you probably aren't qualified to make that determination. In all but the most trivial of cases, the only way to be sure is to assume the code is protected by copyright and proceed accordingly. When CC-BY-SA is involved, that's where things start getting really messy...
    – Ajedi32
    Commented Jan 15, 2016 at 0:14
  • 6
    Alyssa P. Hacker and Ben Bitdiddle got married? When did I miss this?
    – Jason S
    Commented Jan 15, 2016 at 2:55
  • 1
    @JasonS they wanted to keep it secret but Cy D. Fect spoiled it
    – gnat
    Commented Jan 15, 2016 at 7:55
  • 4
    "We're sharing knowledge, not code." - No. Quite often we share both.
    – user
    Commented Jan 16, 2016 at 8:33
  • 2
    @Yakk - No. I don't understand where the break in the communication of this idea is happening. The creative value of a piece of code should not matter. If you post here in order to help someone, then you should expect them to use what you posted, and not have to abide by some viral license.
    – StingyJack
    Commented Jan 17, 2016 at 20:55
156

This is a greatly improved step in the right direction. But I still have problems.


BEGIN TL;DR

First, I want a complete proposal. I don't want things that aren't provided. I want to see everything laid out before this change happens and with enough time to have community review of it - the full and complete proposed terms of use / terms of service, FAQs, guidance, mockups of user-facing tools. Preferably things in both human readable English as well as the appropriate legalese deemed necessary by lawyers.

Second, I want whatever license is applied to code to be comparable to CC BY-SA 3.0 Unported:

  • I want people to be able to copy and redistribute my source code as source code files or in binaries.
  • I want people to be able to transform or modify my source code.
  • I want my source code to be available for both open and closed source software.
  • I want my source code to be available for both non-commercial and commercial software.
  • I want visible attribution.
  • I want to ensure that it is clear that I may not endorse the use of or user of my Stack Exchange Contributions.

The only aspect of the CC BY-SA license that I don't necessarily care about is Share Alike - I don't care if people distribute my contributions under the same license or not, as long as I am granted visible attribution.

END TL;DR


This is an incomplete proposal.

A lot of this information is still not disclosed. Full guidance for reasonable attribution "will be provided in an upcoming FAQ". You are still "exploring ways" to distinguish code under various licenses. You "hope to soon roll out an opt-in mechanism" for relicensing contributions. You don't define what, exactly, code is.

Based on this post, you'll be releasing these other things on March 1st. That's the same day that the license change will be rolled out. That give us 0 time to review everything and find errors or raise concerns.

Please, come back when you have these details ironed out - they are important for me (and I'm sure others) to decide if this is truly a good idea.

As others have pointed out in the comments, you should also learn from Shog9 and how to persuade other people.


You leave defining code up to the judgement call of the person using it.

This is not acceptable. There are many, many users on Stack Overflow. I'm sure there are almost as many definitions as to what should be and should not be code. This is a legal matter with copyright and licensing. It should not be a judgement call, but needs to be clearly defined and documented somewhere.


Your definition of "reasonable attribution" isn't reasonable.

First, the MIT license requires two things for attribution: the copyright statement and the reproduction of the license. You are requiring one thing: a link to the post. I agree with the idea of making it easier to attribute a post. However, your scheme of attribution has issues.

The proposed method of attribution requires an Internet connection and access to Stack Overflow. I regularly work in areas without access to the Internet. If I were to follow your proposed rules for attribution, if someone viewed the code in this environment, they would not be able to see the name of the author, the date it was posted/modified, or the license that it was released under.

The proposed method also is effective to no attribution in a closed-source project. The MIT license does allow for use in closed-source projects. This is a good thing, and allows my contributions to SO and other SE sites to be more widely used. However, I would not get any visible attribution in these instances. Again, I think it's OK to not require the full text of the MIT license, but perhaps a requirement for a text file that lists the URLs and author names to all code contributions and a one line statement that some of the code base is MIT licenses would be sufficient for me.

I agree with the modified terms, however any attribution should also include the user name of the author of the code as well as the license that it was released under. I don't think the full license is required, but a two or three line attribution is all it would take.

For me, attribution is the singular most important thing to my participation on Stack Overflow and Stack Exchange. If I submit code that meets the criteria for copyright (and therefore can be licensed), I expect nothing short of a visible indication of the use of my work. I fully support allowing a less verbose attribution than the standard MIT license, but I don't support an invisible attribution or an attribution that requires connectivity to Stack Overflow / the Internet to view. If I don't get that, I don't want my code hosted here.


There is no protection against using my name to promote a product.

I would recommend looking at the Apache 2.0 or BSD 3-clause license.

The license currently applied to contributions to Stack Exchange has this segment in it:

You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.

I think this resolves some of the concerns brought up by Jon Ericson in the comments, and it would make me feel better, too. I do think some modifications would need to be made to not require the full license text to be copyied (and I'd be OK with these modifications).

26
  • 8
    The last paragraph resonates with me. On "Jobs", there is a theme about "showing your awesomeness" - that's what "developer stories" are for, so I assume SO gets it. Attribution to the originator of an original thought or expression is a key reward for contributors here, magical unicorn points aren't enough. But simply linking to SO will tend to dilute that individual recognition -- eventually it could be akin to the ubiquitous quotes which cite "Wikipedia", wherein the vehicle of communication appears to get the attribution owed the creators of content.
    – Mogsdad
    Commented Jan 14, 2016 at 16:17
  • 73
    Personally, I'd rather not have my name attached to all possible closed source projects that might reuse my code. For instance, if a pornography website uses a bit of SQL that I contributed to Stack Overflow, they are welcome to the code without attribution since I don't want my name publically associated with that sort of thing. In general, I would be fine with attribution in a comment regardless of how visible the code is. The important thing (to me at least) is get credit from the people who really appreciate my contribution: the project's developers. Commented Jan 14, 2016 at 16:32
  • 13
    @JonEricson That's a personal decision. However, I contribute here (meaning all SE sites) because I know that I will be recognized for my contributions. The BY part of CC-BY-SA is the most important thing to me. Under these new terms, I'm not getting the attribution that I expect or require. Commented Jan 14, 2016 at 16:36
  • 3
    Right. The current license certainly doesn't require closed source projects to publically acknowledge code they found on a Stack Exchange site. That's probably for the best. For one thing, it's a big burden to track (making content significantly less useful). For another, it can be misleading without actually seeing how the code is used. Obviously it would be nice to see how your code propagates, but why should your preference be privileged over other people's? Commented Jan 14, 2016 at 17:11
  • 6
    @JonEricson It actually prevents closed-source commercial applications from using the code. That's the SA portion. I'm not entirely sure about freely available closed-source applications. Commented Jan 14, 2016 at 17:18
  • 22
    @JonEricson: Note that the status quo (CC BY-SA) protects you against smears by association. Any site that can't comply with the attribution requirement and also the "You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work" requirement simply can't use the content at all. This protection would be lost under the MIT-lite plan.
    – Ben Voigt
    Commented Jan 14, 2016 at 17:32
  • 2
    @ThomasOwens: Yes, those protect the author significantly better than MIT does (and the proposed MIT-lite is even worse than vanilla MIT license)
    – Ben Voigt
    Commented Jan 14, 2016 at 18:28
  • 12
    When I worked for a government contractor, we never distributed code (or executables). But if I found a useful answer on Stack Overflow, I'd stick a comment in the code. (I rarely copied code wholesale, but I believe attribution is the right thing to do when I got help.) I think it's a fine idea to require that level of attribution. Requiring more would likely make getting approval to open source from a Software Release Authority more complicated. If it's easier to skip attribution than include it, I imagine many people will take the path of least resistance. Commented Jan 14, 2016 at 18:49
  • 2
    @JonEricson I work for a government contractor and we do distribute binaries (libraries or executables) and never source code. Right now, I'm not able to directly use SO code. I'd like to be able to, and changing to MIT (or, preferably Apache or BSD 3-clause for the reasons Ben Voight pointed out) would help. We already have guidance for these three (and other common) open-source licenses on how we can or cannot use code under those licenses in our products from legal. We regularly use software with these licenses, in binary or source form, and generally have no issues with it. YMMV. Commented Jan 14, 2016 at 18:54
  • 24
    If it were up to me, I'd make the attribution a point of professional courtesy rather than trying to jam it into a licence. Stack Exchange content gets used all the time by ethically-challenged people and there's not a lot we can do about it. Changing the license isn't going to fix that problem. If some other programmer thinks my answer on Stack Overflow helped enough to acknowledge in release notes, that's far more valuable (to me at least) than if it was a requirement they followed out of duty. Commented Jan 14, 2016 at 19:05
  • 4
    @JonEricson There are two kinds of people - those that will follow the license and those that won't. The license terms should be easy to follow, but I want those honest people to know that they need to visibly attribute me by name when they use my contribution. Commented Jan 14, 2016 at 19:11
  • 12
    As a closed source developer, I strongly suspect that a requirement to include a stackoverflow.txt file with applications stating that questions by users A, B, C, D, and E, and answers by users F, G, H, I, J, K, L, and M were looked at during the creation of the software instead of references in the code would result in stackexchange being banned and blocked at the corporate firewall. Commented Jan 14, 2016 at 19:58
  • 1
    @JonEricson & others on this thread, another reason to support CC-BY-SA 3.0 is this part of its clause 4a: "If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(c), as requested." That is, if someone (e.g. a porn site) adapts your work and you don't want your name on their adaptation, you have the right to insist that they remove your name from their adaptation.
    – user136089
    Commented Jan 14, 2016 at 20:37
  • 2
    @sampablokuper No CC license is idea for shipping software source code or binaries. It is OK for software documentation (user's manuals, developer guides, etc). There are many, many issues with CC-BY-SA on Stack Exchange, though. Commented Jan 14, 2016 at 21:42
  • 2
    @chirlu That's a valid point. Perhaps BSD 3-clause is better for Stack Overflow. Commented Jan 14, 2016 at 23:01
136

We want to hear what you think. Barring any showstopper, these terms and a detailed FAQ will be rolled out March 1, 2016.

Please do not do this. The FAQ should be out and we should have some time to go through it before the changes are actually made. You have also stated that a definition for what is considered "code" would come out at the same time

We will give you guidance on identifying code in an upcoming FAQ, plus guidance on how best to comply with the attribution requirement. But ultimately, identifying code will be a judgement call on your part. We have full faith in your ability to do this.

This is another reason to have the FAQ out before the changes are made. We should have the time to go over all this before the changes are made to the license and terms of service.

7
  • 17
    I wonder if having nearly -100 score on the post (as of this writing) would count as a showstopper. :P
    – Alex A.
    Commented Jan 15, 2016 at 2:25
  • 3
    Over -200. Still no sign. Commented Jan 15, 2016 at 16:44
  • 3
    @AlexA. -250 now, and, apparently it does count as one :P
    – BMWurm
    Commented Jan 16, 2016 at 10:25
  • 9
    -255. Show has been stopped.
    – Alex A.
    Commented Jan 16, 2016 at 20:29
  • @AlexA. was the question previously featured? It's not currently.
    – Nemo
    Commented Feb 2, 2016 at 8:02
  • 1
    @Nemo It was. That lasted until about -200 and something. Commented Feb 2, 2016 at 12:50
  • @NathanOliver that definitely explains the slowdown in downvoting!
    – Nemo
    Commented Feb 2, 2016 at 19:08
96

Meta meta-Meta

For a post that was intended primarily to address one of the concerns raised (repeatedly) in the previous discussion, this sure has kicked up a lot of dust. I got to talking with a few people in chat earlier, and they... Kinda seemed surprised by a few things that I thought were obvious.

And I realized... I've been sorta following this conversation internally for months, and seeing where all the different pieces arose, why the plan has taken the direction it did. But y'all haven't. There's been one previous post, and both that and this kinda make it sound like a done deal and not checkpoints on a long road toward solving a difficult problem.

So I think it's worth noting a few things, for the benefit of the folks who don't hang out in The Tavern:

  1. We're working on this because folks have been complaining about it for years. Search the site - you'll find angsty posts about licensing going clear back to '09, full of fear and frustration. That hasn't gotten any better with time; unfortunately, several recent high-profile court decisions have made a bunch of people all sketchy about software copyright law, and monsters under the bed in the form of database companies in particular - nevermind that nothing anyone does on SO is likely to get you sued, seeing huge companies lose cases over literally a few lines of code has a chilling effect on everyone, and uncertainty surrounding the license used here just fuels the fear.

  2. There's no hard time limit on getting this done. We've set a deadline so that we're all motivated to work on it, but it's the third deadline so far and there's no reason it can't be bumped again if there's good reason to do so. We're doing this to be good stewards (see #1), but no one's breathing down our neck about it - if it takes another month or another year to get it right, so be it; the important thing is to get it right and only then get it done.

  3. The voting on Meta doesn't really matter; voting here is a means of prioritization, not a mandate. It's fun and interesting and useful when it flushes out useful arguments, but don't get all sad if someone downvotes your opinion or mad because you can't downvote theirs - it's far more important that you take the time to express your opinion here in a way that others can understand than it is that you vote; this is a discussion, not a straw-poll.

That out of the way...

Thoughts on licensing

...I've occasionally participated on these sites too, so I feel entitled to chime in with my own opinions here. Especially since I haven't voted yet. There are a few things expressed here (and in the previous discussion) that I think are... Understandable, but naive. So I'm gonna talk about them. I wanna stress, these are my opinions - they haven't been vetted by any lawyer, any president of vice, or any sane person. This goes for just about everything I write here, but on the off-chance that you haven't learned that already, I wanna make double sure ahead of time that you know I'm as likely to be full of it as I am to be right (and that's pretty damn likely).

Licensing does not prevent careless or malicious use

If you're worried about a more permissive license leading to a heyday for students cheating on their homework or careless workers engaging in Stack Overflow-driven Development, then... You're a real optimist. This nonsense was rampant back when I was first getting into this stuff in the late '90s, and no amount of licensing has made a difference that I've seen. Folks who want to cheat will cheerfully lie about where they got the code they're submitting or committing, strip identifying comments, even obfuscate the symbols. I was dealing with this crap from cheap fly-by-night consultants long before Stack Overflow was even a glimmer in Jeff's eye, and I'm sure the old-timers here have been dealing with it a lot longer. Licensing doesn't stop it any more than laws against stealing protect that $20 you carelessly dropped on your front lawn; laws and licenses - like door locks - exist to keep honest people honest, not to rein in the committed dishonest.

Nor does licensing force folks to treat code as examples for writing their own, much as we might hope it would. When I was still working as a programmer, this was something we had to teach every new recruit, sitting them down and working through the process of taking some MSDN snippet and re-writing it with proper error-handling, structure and testing. Often as not this was the first code review. It's a critically important skill, but not an obvious skill - especially when the forbidden fruit seems so sweet. I'd love to see folks come together to create some guidance for folks struggling with this, but a license isn't gonna force it.

An effective license is one that the licensee understands and can comply with

This has been the achilles heel for CC-BY-SA all along; it's trivial to apply for posts, but folks struggle to apply it correctly to code. Chances are, the vast majority of one-liners out there aren't even copyright-able... But how do you know that? When does the attribution requirement kick in, how does that even apply to compiled or server software, what does the "viral" aspect even mean when all that's being "shared" is a binary? These are all questions that any proper software license answers, but which CC-Wiki ignored because it wasn't meant for software.

Common-sense tells you that - when someone asks, "How do I do X?" on SO and someone else responds, "Use this function" - you should expect the latter person wants you to use that function in your code. And so most folks do just that, and don't even think about the licensing. End result? Licensing punishes the conscientious.

So what do we really need here? Something that folks can apply in a common-sense fashion without being dishonest and without violating a license. This is what Sam's been poking away at for months now, the idea that we can make more people honest by making it more obvious what that even means.

I think we're getting closer. I'm not a lawyer, or even a licensing wonk, but on a gut level "tell people where you got this" seems like a reasonable expectation for using stuff that was posted publicly on The Internet.

But ultimately, I think this has to be something that everyone can get comfortable with. And there are still some rough edges, so I'm gonna shut up for a bit and finish reading what the rest of you have had to say about it.

24
  • 20
    Good point: Licensing does not prevent careless or malicious use. I'm surprised about how many people are thinking that this license will let them steal their code, because it's already happening right now. I don't want to sound pessimistic, but when thousands of people break a license/law/contract, it's a bit of a lost cause. You're not significantly damaged in a direct way, so honestly, let it go...
    – Zizouz212
    Commented Jan 14, 2016 at 22:45
  • 8
    ... All I want is to make sure that no one can come up to me if something of mine screwed something on there side. Aside from that, I don't care about people who don't attribute me: chances are, they have no moral sanity, and I will appreciate the people who do, and help me out. As it is, I'm 16, I share what I know with a good heart, and in a well-spirited manner, and at the end of the day, knowing that I was able to help someone out makes my day.
    – Zizouz212
    Commented Jan 14, 2016 at 22:48
  • 4
    I was clearly referring to durians, @abby. Which are, in fact, forbidden in some places with good cause.
    – Shog9
    Commented Jan 14, 2016 at 22:56
  • 5
    why don't we all just agree that given the size and scope of posts on SO that they are all FAIR USE and that by posting it you agree that anyone using any code posted here is indeed fair use.
    – Mgetz
    Commented Jan 14, 2016 at 23:26
  • 2
    @Mgetz Because I don't want someone to sue me if my code breaks their system. Fair Use is not a defined term, and would make for a worse situation than the status quo.
    – Zizouz212
    Commented Jan 14, 2016 at 23:44
  • 6
    Well, we can't actually declare anything "fair use", @Mgetz; that's something that has to be decided in court, if the concept even exists in your country. Aside: mourn the TPPA.
    – Shog9
    Commented Jan 15, 2016 at 0:08
  • 5
    And how is that a problem, @Jesse? D'you think folks are commonly sharing the codebases they use code from SO in now? Is that even an expectation we're setting, or have ever set? A rule that everyone breaks is worse than no rule at all.
    – Shog9
    Commented Jan 15, 2016 at 1:49
  • 1
    @JesseWatZ Quite honestly, I doubt anyone follows that. No one copies code directly. Do we even need things to be copyleft? Probably not - people who work on the job just want help, and they should have some sort of freedom in that. Beside, the copyleft suspects are generally the GPL. Eww... (Disclaimer: I have an unknown tendency to absolutely hate, with a passion, anything that contains the letters G, P, and L, especially when they are right beside each other, or come after an L, or an A.
    – Zizouz212
    Commented Jan 15, 2016 at 1:54
  • 2
    @Mgetz, why would (the fairly narrow) legal idea of "fair use" be the only way code shared here (or anywhere) is usable? It's just ONE way. Lots of code is too short or functional to be covered by copyright at all. Other code is explicitly licensed for use by others (whether by CC-SA or some other license). Even if "fair use" does apply to code use, it's only one of the ways someone can legally use someone else's work.
    – Jaydles
    Commented Jan 15, 2016 at 16:38
  • 1
    "There's been one previous post, and both that and this kinda make it sound like a done deal and not checkpoints on a long road toward solving a difficult problem." I think what made it sound like a done deal was when the previous post said this will be in effect by January 1st. It is rather hypocritical to blame the users for a failure to communicate. Even this current post has an air of urgency, noting an upcoming change written in stone for March 1st. If these really are just "checkpoints", then call them that and let everyone retain at least some of their dwindling sanity.
    – Travis J
    Commented Jan 15, 2016 at 16:46
  • 3
    I'm not blaming the users, @TravisJ - I'm blaming me, us: when you've been talking about something weekly for months it gets hard to remember who you've talked to and who you haven't. Hence this answer - I'm trying to clarify and dump some of the things that've been tossed around in our internal conversations but don't seem to have made it into the public dialog.
    – Shog9
    Commented Jan 15, 2016 at 16:50
  • 5
    @Mgetz, this does nothing to change what "fair use" is (or isn't). If code fell under fair use for CC-SA, it's still fair use under MIT, or anything else. "Fair use" is a literally a case where a license or grant of rights is not required, so WHICH license might be if it weren't fair use is moot.
    – Jaydles
    Commented Jan 15, 2016 at 20:35
  • 1
    I was completely unaware that "folks have been complaining about it for years", and most of the people I've talked to about these proposals in chat also don't seem to be aware of that. So it seems like the whole idea of changing SE's license came out of nowhere without any real justification. I'm still waiting for a follow up post that makes some attempt to convince me there's even a real problem here in need of solving. Until then, the only opinion I can reasonably support is that changing the license for no apparent reason is a really bad idea, no matter what that change is.
    – Ixrec
    Commented Jan 15, 2016 at 23:48
  • 1
    No offense, @Ixrec, but... you're kinda new here. Why would you be aware of that? Start at the beginning, follow the "linked" sidebar down the rabbit hole.
    – Shog9
    Commented Jan 16, 2016 at 0:56
  • 1
    @Shog9 -- the problem is, because a distinction between code and non-code, in this context, is very difficult and unclear (IMO), licensing "code" under a non-copyleft license will bleed over to offering everything under such a license, which undermines a lot of (my, and I suspect others) willingness to contribute it. Commented Jan 18, 2016 at 18:28
63

Thanks for listening to the community. I felt there was a huge resistance and that was primarily caused by not listening. So thanks for taking our opinion in consideration now. (I still don't agree, but at least we can have some influence on the outcome)

To talk in a little more detail about the updated proposal:

I think the proposal lacks a very important part: old posts and updated posts. In short: this proposal isn't ready yet! Okay, there will come a FAQ entry in some time, but how things are handled should be discussed now, and not in some time in the future. We all need time to go over it. In my opinion, old posts should have the old license. An indicator of which license is applicable would be very nice then.

Another suggestion regarding the above: a suggestion has been done a few times already to have a 'copy the code' button. If that can be implemented, can you put in a prefabricated comment in there with the required attribution? That would make users actually follow the guidelines you set now.

Another thought: on SO we had some 'Our answer to your questions' post. I think that would be useful for all the high-scoring answers on the previous post, so we have an official and clear statement on the questions posted there.

11
  • 1
    "Starting March 1, 2016, new contributions across the network will be licensed". Nothing is said in terms of the old contributions; I'm sure nobody is going to relicense / require relicensing them...
    – nicael
    Commented Jan 14, 2016 at 15:50
  • @nicael I think the question was whether an update to a post counts as a new contribution. Maybe?
    – Rainbolt
    Commented Jan 14, 2016 at 15:50
  • Did you read "What about code contributed prior to March 1, 2016?" @nicael Rainbolt gives one concern, maybe there are more. But we don't know since it is not here. Commented Jan 14, 2016 at 15:51
  • I think asking for a FAQ now is a little bit pushy. I would be happy with a FAQ some time before the changes take effect.
    – Rainbolt
    Commented Jan 14, 2016 at 15:53
  • I am not asking for a FAQ. Just a set of guidelines. Commented Jan 14, 2016 at 15:53
  • 4
    Most edits will produce a derivative work, which will continue to be licensed under whatever license applied to the original code. However, a substantial edit might be said to create an entirely new work, in which case the MIT would apply. To be on the safe side, always include a comment with a link back to the post so that revisions and authors can be tracked. No matter the license, giving credit is always a good choice. This is something that will be clarified further in the FAQ, but I encourage you to post this as a question in Meta so we can get started drafting the FAQ now. Commented Jan 14, 2016 at 15:55
  • 1
    Okay, what is the keypoint of that question @samthebrand When the license changes on a existing post? Commented Jan 14, 2016 at 16:19
  • 10
    @samthebrand can someone else editing a post actually change the license? Isn't that something the original poster would have to agree to? Edit: In general, I'm still very concerned about what happens when someone who is not the original poster edits a question or an answer.
    – thegrinner
    Commented Jan 14, 2016 at 16:27
  • 3
    One other thing that the FAQ should answer is what happens if I quote code from another work. I cannot license it under the not-MIT considered here, but then I cannot license textual quotes under BY-SA either. It is the whole work that is licensed, quoted material remains its original authors'.
    – otus
    Commented Jan 14, 2016 at 19:45
  • @samthebrand is it still useful to start this discussion or should we wait? Commented Jan 15, 2016 at 23:28
55

I get from your comments ("in response to specific concerns about the license not being appropriate") that the current situation might be less than ideal (lots of people think it is) - but I don't really know enough about the legalities behind it to suggest what to do. But I trust SE enough to believe there must be an issue if they want to change something.

I can, however, read feedback. Which it seems you haven't.

This is an important topic - but you say this:

"Both changes were thoroughly vetted internally, with our lawyers, and with the OSI. We think they are an improvement upon the previous proposal, and a vast improvement upon the status quo."

The main thing that is missing is the community being involved. Sure, you've asked us on Meta.SE (the wrong place) and you've posted a banner containing this:

"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."

Highlighting mine.

I assume this is said follow-up - but I don't think it has done either of those points.

You've not answered any questions here - certainly not mine. Most notably, "What is code"?

And the "addressed the concerns" part? Let's check the first post. It had 592 upvotes and 95 down, so 86% of people "agree". It also has 37497 views, so only around 1.8% of people voted on it. Maybe that could be off by a factor of 5. That's not a lot of people.

You seem to be ignoring the concerns I've read. These comments come from the top answers. I'm not cherry picking - the top 12 are negative.

enter image description here

As much as I love SE (I really do admire what you have made), you seem to have ignored this quite a lot. Maybe this is as SE get's bigger, it's harder to involve the community. Maybe the SE format of Upvote and Downvote is not the right way to get feedback on this. And (almost certainly) Meta SE is the wrong audience.

The top answer has 460 upvotes and 23 down. That suggests that 95% of people agree with them. And disagree with you. That's throws the 86% figure out the window, eh?

Sure, something seems to be done. But you're a) Twisting the facts and biasing the vote by posting here, b) Not suggesting the right thing (I don't know what that is) but this is not based on other answers and c) not doing what you said you would - answering questions of addressing concerns.


For anyone interested, here is the Word Cloud of the first announcement:

And here is it for this one:

9
  • 5
    I like everything you've said above except, "I get it. The current situation is less than ideal. And this is an important topic. ... Sure, something seems to be done." Is CC-BY-SA really less than ideal? So much so that something needs to be done? In what way is it bad? So, for the time being, I'm neither upvoting nor downvoting your answer. Might upvote if you clarify these points. P.S. You might also want to clarify your point about "5% of people": it's a bit ambiguously-worded :)
    – user136089
    Commented Jan 14, 2016 at 17:55
  • thanks. I figured that if you felt confident enough to say "I get it. The current situation is less than ideal." then that "I get it" part meant that you "got" the way in which the current situation is less than ideal. (Otherwise, you surely don't get it.) So, if you do get it, please articulate it. And if you don't, then please don't say you do. Thanks again :)
    – user136089
    Commented Jan 14, 2016 at 18:06
  • 1
    it's a bit better now, and I appreciate your effort. Still, though, you say, "I know that I trust SE are trying to solve a problem and that CC-BY-SA is bad for code and software." In what way is CC-BY-SA bad for code and software? I'm not persuaded that it is. Indeed, I think it is an excellent license for Stack Exchange sites and that changing the licensing terms is wholly unnecessary. So when you imply that you "get" that "something needs to be done" to replace CC-BY-SA 3.0, I would be grateful if you would either justify that remark or remove it. Thanks again :)
    – user136089
    Commented Jan 14, 2016 at 21:23
  • Tim, "I trust that they wouldn't say that without good reason." May I encourage you to be a bit less trusting in this case? Please consider the case critically (on its merits) instead. "CC-BY-SA says in it that it's not for software, quite blatantly." Not that I can see. Here's the CC-BY-SA 3.0 license. Please show me where it says that :)
    – user136089
    Commented Jan 14, 2016 at 21:59
  • Tim, fair enough. I agree with your unhappiness about how SE did this and that they are proposing to force it upon the community. I respectfully disagree with you about the rest. Thanks again for your time and consideration :)
    – user136089
    Commented Jan 14, 2016 at 22:13
  • 5
    I agree with a lot of this. You did a wonderful job summarizing the sentiment visually. However, I'd like to know, if Meta.SE is not the right audience, then what is? (Keep in mind that the proposal was first posted to Meta.SO before being migrated to Meta.SE because it would affect all Stack Exchange sites.) Commented Jan 15, 2016 at 2:28
  • @200_success Sure, it affects them all. Now look at the % affected? Stack Overflow is such a large amount (e.g. (95% + I guess) and so few participate here...
    – Tim
    Commented Jan 15, 2016 at 20:45
  • Asking out of curiosity — are those word clouds weighted by comment/answer score as well as frequency? Commented Jan 16, 2016 at 2:33
  • @200_success no, just word frequency. I removed all Vote counts etc from the page to unbias the cloud
    – Tim
    Commented Jan 16, 2016 at 13:21
44

The only justification you've given so far for this change is the following:

...it’s always been a little ambiguous how CC-BY-SA covers code. This has led to uncertainty among conscientious developers... Uncertainty is a drag on productivity...

So, if I understand correctly, this rather significant change is intended to increase developer productivity.

Would you please expand on this, showing, perhaps, actual instances where developers have actually been hampered by the existing licensing scheme? (ie, not theoretical situations, but actual complaints)

Building this change on a foundation which shows the change is needed, necessary, and will provide significantly more benefits to all users than detriments might go a long way toward convincing the "who moved my cheese" users that this is an improvement.

If this is merely a philosophical choice, with no actual basis in objective needs, that's fine, but you're still not explaining the foundation well, and you're going to get a lot more pushback until you express the why more clearly than you are right now.

16
  • 12
    Ambiguity is the path to the dark side. Ambiguity leads to uncertainty. Uncertainty leads to futility. Futility leads to suffering.
    – Pollyanna
    Commented Jan 14, 2016 at 16:48
  • 2
    I couldn't agree more with this. Also, I've found a comment from Tim Post elaborating a bit more on these changes necessity.
    – falsarella
    Commented Jan 14, 2016 at 17:20
  • 7
    I can't share what people have contacted us privately to discuss, but the ambiguity surrounding how exactly CC-BY-SA applies to code is sufficient for many project managers to say "It's probably not compatible with what we're using" That's not to say it's incompatible, or that CC-BY-SA would bring unknown future complications - that's just it, it's hard to tell. Code trolls are an unfortunate part of life and companies are getting more defensive than ever. It wasn't that big of a problem 6 years ago (and I'm sad that it is now).
    – user50049
    Commented Jan 14, 2016 at 17:34
  • 7
    We are definitely not doing this for philosophical reasons. We're doing this in response to specific concerns about the license not being appropriate for code. I'd love to be able to share more about it but am being told that we can't for some reason I don't fully understand. Commented Jan 14, 2016 at 17:47
  • 19
    @DavidFullerton Just my view from the sidelines, but that lack of transparency is probably responsible for some of the pushback on this proposal. Commented Jan 14, 2016 at 17:57
  • 13
    @DavidFullerton it might help if you provide the generic concerns (examples) that have been raised, no one expects you to share who has raised them specifically. If there can't be given a sound rationale for this change it is likely to have some goofy background and the community is right to reject it, if for nothing else than 'unclear what you are intending' (to paraphrase a common close reason)
    – miraculixx
    Commented Jan 14, 2016 at 19:43
  • 4
    @TimPost Would you consider reaching out to those who have been affected and requesting they comment on this proposal, or they give you permission to share some reasonable level of detail about their difficulty? Alternately, consider reducing it to numbers - more than a thousand but less than 100,000, or more than 100k but less than one million, etc people contacted Stack Overflow, Inc about this problem? The highest voted meta question about this issue isn't very highly voted or commented on - meta.stackexchange.com/questions/12527
    – Pollyanna
    Commented Jan 14, 2016 at 20:24
  • 10
    @AdamDavis Based on this level of secrecy, I suspect that the parties are unable to speak out because they are involved in an active lawsuit. Stack Overflow staff have been consulted for assistance with the defense. This rushed proposal is an attempt to contain a problem before it spreads. (In my opinion, the proposal — or even the fact that the proposal was raised — would make things worse, by endorsing the trolls' mindset that code is licenseable and thus giving them the home court advantage.) Commented Jan 14, 2016 at 20:47
  • 3
    @200_success Interesting consideration. Perhaps Stack Overflow has been named in one such lawsuit. Would be interesting to search court cases filed where Stack Overflow is party.
    – Pollyanna
    Commented Jan 14, 2016 at 21:01
  • 9
    Even if one accepts the premise that the current situation generates uncertainty, the proposed change does not actually fix it.
    – abligh
    Commented Jan 14, 2016 at 21:25
  • @abligh I agree, but honestly I can't come up with a better licensing solution. I think this solution protects Stack Exchange better, and it appears to align better with what the OSI is trying to accomplish generally - one aspect of which is clearly delineating between code licenses and other copyrights. Because Stack Exchange is a business, they can't just use a fully permissive license, they must demand attribution, which complicates the problem significantly. They tried to resolve it with the previous iteration of this license and got bonked on the head because it won't work.
    – Pollyanna
    Commented Jan 15, 2016 at 12:00
  • @abligh But I've come to the conclusion that this change isn't worse than the previous license. I'm still going to have to do my little clean room reverse engineering thing anyway. I just don't think there's a way to get around that with any license. If this is the path they want to pursue, then while I won't support it, I don't think I'm going to try to convince them to try another path - I don't think it matters at this point.
    – Pollyanna
    Commented Jan 15, 2016 at 12:03
  • @AdamDavis I don't quite understand why StackExchange need attribution for a couple of lines of code snippet (the code) as opposed to the rest of answers. I understand why some authors might want it. This is the distinction between helping, and supplying intellectual property. In any case an attribution could be to the author without reference to SE.
    – abligh
    Commented Jan 15, 2016 at 12:18
  • @abligh This is largely to protect Stack Overflow from copycat sites who repost stack exchange data without attribution. It hurts the business financially. So anything and everything on the SE network needs to be protected with some attribution requirement for them to avoid the worst of the copycat sites.
    – Pollyanna
    Commented Jan 15, 2016 at 12:34
  • @AdamDavis if only the code had a 'no attribution' alternate licence (but not the remainder of the question or answer) this would still defeat the scraper sites. Of course this requires defining 'code'.
    – abligh
    Commented Jan 15, 2016 at 12:47
44

Another META META site question that impacts a site I have high rep for that I cannot downvote because its moved to Meta Meta. Thanks.

Also this post does not cover the scenario where a SO user advertises a different license or waving of any attribution requirement in their network profile. How is that to be handled or affected?

8
  • 5
    The meta-meta issue is something we're working on. As for custom-licensing your code: As always, you will be free to dual license your contributions however you like, but users will be free to also use your code under the license in the terms of service. Commented Jan 14, 2016 at 18:44
  • 1
    Yeah, I am in this boat for downvoting privileges (20k rep on SO, but nothing here).
    – Frank
    Commented Jan 14, 2016 at 18:44
  • 6
    @Frank Post an answer and you'll have your rep within minutes, I'd guess....(not that that fixes the underlying problem, but still.) Commented Jan 14, 2016 at 18:46
  • "Also this post does not cover the scenario where a SO user advertises a different license or waving of any attribution requirement in their network profile. How is that to be handled or affected?" That's outside the scope of SO. Anyone can license their code (which they own) under any terms they want, in addition to the terms they've granted SO. That's not specific to SO, that's just how the law works.
    – Ajedi32
    Commented Jan 14, 2016 at 20:01
  • 1
    It's not outside of scope, as they may conflict. What happens if I add a more restrictive license in my profile (all your code belongs to me)?
    – StingyJack
    Commented Jan 14, 2016 at 21:16
  • 1
    @StingyJack there are two choices: Either you publish anything you write under both your licence (as a separate choice to the user) and the SO standard licence under a dual-licence scheme (which means users can just ignore your more restrictive licence and go with SO’s, or – in my case – they can ignore SO’s more restrictive licence and go with the one from my profile) or you violate the SO Terms of Service contract.
    – mirabilos
    Commented Jan 15, 2016 at 11:22
  • 1
    @mirabilos - thats fair, I would just expect it to be spelled out either above or before it goes into effect.
    – StingyJack
    Commented Jan 15, 2016 at 18:36
  • 1
    @StingyJack The licencing in effect here works like this: You write a post, you can licence it however you want, using different licences for different or even the same target groups. When you post it at SO, you implicitly (via the TOS) grant SO a licence under (currently) CC-BY-SA, which SO then uses to display the post. You can issue a separate licence to people who view your post, but you’re not allowed to remove from the CC-BY-SA licence to SO just as SO is not allowed to change the CC-BY-SA terms they got from you (e.g. require a link, or change old posts to MIT). It’s law not site policy
    – mirabilos
    Commented Jan 16, 2016 at 23:19
43

Last time this was brought up, I posted this answer. This new version still has many of the problems I set out in it.

  1. You're still creating a crayon license.

    If you're going to do MIT, do MIT like MIT was meant to be done. The requirements for using code haven't really changed - all you've done here is say "now you have to have a comment in your code". That's less than is required with the current license.

    More to the point, you haven't actually changed anything here. Let's compare last time round:

    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.

    to this time round:

    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. This optional exception to the MIT License will live in our terms of service.

    You have essentially removed two words: upon request. The attribution is still not MIT attribution, and is still creating a crayon license.

  2. It's still far too easy to claim an illegal use is legal.

    Essentially, someone can get my code from somewhere I use it - perhaps in a commercial open-source product of mine - and not attribute it to me attribute it to me with a single comment. When I chase them down on that (because they aren't complying with standard MIT), they can simply claim "oh, I got it from Stack Overflow", and get away scot-free.

The fact that I'm able to directly copy-paste most of last time's answer to this one should tell you that the changes made here are not enough.

So now I've had my little rant, how do you fix this?

I've already mentioned it in the first point. If you're going to do MIT, do MIT like MIT was meant to be done.

12
  • 19
    Don't post code on the internet if you don't want other people to use it...
    – brso05
    Commented Jan 14, 2016 at 20:51
  • 7
    Why do you feel the need to have your name credited in someone else's code. Who is ever going to see that?
    – brso05
    Commented Jan 14, 2016 at 20:52
  • 12
    @brso05 That's not how licensing/copyright works, thankfully.
    – thegrinner
    Commented Jan 14, 2016 at 20:52
  • 9
    @thegrinner if you don't want others to use your code don't post on SO!
    – brso05
    Commented Jan 14, 2016 at 20:53
  • 2
    they can simply claim "oh, I got it from Stack Overflow" How can they claim that, if they don't have a link to the post they got it from (because in your hypothetical, that post doesn't exist)? If they don't have a link to the post, they're already in violation. If they're simply lying, they could just as easily have lied "Oh, I got it from a public domain project." Commented Jan 14, 2016 at 20:55
  • 1
    @DavidRobinson I never said the code wasn't on Stack. It's true that this argument is weaker this time round now that attribution is at least required in some form, but I felt that it was worth putting in because it likely does create some janky loopholes.
    – ArtOfCode
    Commented Jan 14, 2016 at 20:56
  • How did the code get on Stack? You just said they got it from somewhere else (someone can get my code from somewhere I use it) Commented Jan 14, 2016 at 20:58
  • 9
    @brso05 Don't forget Code Review and Code Golf. The license being discussed here explicitly impacts all Stack Exchange sites.
    – thegrinner
    Commented Jan 14, 2016 at 20:58
  • 1
    @DavidRobinson ...I can still post it on Stack, can I not?
    – ArtOfCode
    Commented Jan 14, 2016 at 21:00
  • 2
    Then it would be under this license and therefore legal... how would them getting it from a different project be relevant? You're saying "What if they did something illegal, but by coincidence it happened to be legal." Commented Jan 14, 2016 at 22:05
  • @DavidRobinson As I said, this argument is far weaker this time around.
    – ArtOfCode
    Commented Jan 14, 2016 at 23:15
  • 1
    This answer remains a very good point, even this time around. If it says "Licensed under MIT" at the bottom of each page, but the exceptions hidden away in the TOS make it illegal to post MIT licensed code here, it's hard to see the labelling as anything but deliberately misleading. I know that's not the intention, so we need to get away from using a name that already exists for something different. Commented Jan 22, 2016 at 3:35
29

I've had a scenario pop up in my head in discussions in comments, and I kinda want to see how this is expected to be handled.

  • Alice answers a question on Stack Overflow, and provides some code for, say, frobnicating widgets in JavaScript.
  • Bob, knowing the code is MIT-licensed, re-uses that code in his company's widget portal software. It's all closed-source code, but the MIT license is okay with that. Normally, he'd need a full copy of the MIT license to accompany his code, but Stack Overflow waives that. A quick comment in the JS at the top of the widget.frobnicate() function is all he needs!
  • Carol works on the re-write of the widget portal a year later. Part of this includes putting a proper minifier in place in the build process. Carol looks through the whole codebase, doesn't see that one little comment, and moves forward. Unfortunately, the minifier is stripping out comments, so Carol and Bob's company is now shipping code without attribution (I.E. illegally).

The problem isn't limited to JS and minifiers, obviously. Any time you re-use someone else's code that happens to include a Stack Overflow attribution, this can come up.

Legally, the fault in my scenario lies with Carol and/or the company. Code being re-used without checking it with a fine-tooth comb is always a potential source of copyright violations. But I'm really uncomfortable with Stack Overflow, quite possibly the largest source of programming help/resources/etc. in the world is helping to create landmines like this.

Don't get me wrong, I love the idea of not having to include the whole license text when I use stuff from Stack Overflow. But I worry that not having that license requirement is just asking for people to miss the much shorter attribution line, and break the law. And, given that the whole point of this exercise is to try to align the legal situation with reality, I'm worried it's a bit self-defeating on that point.

I've been mulling this over in my head for an hour or two, and I'm still not sure if it's really a big problem or not. So, what do other people (Stack Overflow employees or otherwise) think about this? Is this a problem, or is it merely something people will have to take note of in the future?

10
  • 11
    I regularly strip the attributions out of code that I find in the repository. They rarely add value in terms of readability or maintainability, and more often than not actually add confusion as the code changes but the attribution remains. It never has occurred to me that I might be violating licenses by doing so. And at what point, as the code goes through changes over time, can the attribution finally be removed?
    – Sterno
    Commented Jan 14, 2016 at 19:24
  • 2
    Billy, you say "the code is MIT-licensed" and "Legally, the fault in my scenario lies with Carol and/or the company.". As you'll know from our discussion below my answer, I believe those statements are false. The result is that neither Alice, Bob, nor Carol has broken the law in your scenario, in my view. That is the strict implication of the proposed new Stack Exchange licensing terms, and illustrates well why those terms completely fail, ultimately, to ensure respect for the Stack Exchange contributors.
    – user136089
    Commented Jan 14, 2016 at 21:33
  • 6
    @Sterno, please revert any such changes you have made to software that you are distributing, if they breached licensing terms. In the case of such software already distributed, please make every effort to contact every recipient and supply them with all attribution and licensing statements required by law. I'm not joking.
    – user136089
    Commented Jan 15, 2016 at 2:27
  • @sampablokuper Well, that's my point. I have no idea what the licensing terms might have been if I'm not the one who added it. I'm not following every link to a URL I find in our source code to try to decipher whether or not having that URL in our code somehow makes it compliant for licensing.
    – Sterno
    Commented Jan 15, 2016 at 3:09
  • If it makes you feel better, I'm betting most of the places I've done it don't meet what "code" is probably going to end up being defined as. I mean, would something like this really require attribution (ignoring for the moment it's self-answered... although that also makes me wonder if you need attribution when you self-answer, too)?
    – Sterno
    Commented Jan 15, 2016 at 3:14
  • 1
    @Sterno, "would something like this really require attribution"? In the event that the author/owner claimed it did, and the defendant claimed it didn't and did not offer to settle, then that would be for a court to decide. Here is an example of a similar case over 9 lines of code: Oracle v. Google. (Here are the 9 lines in question.)
    – user136089
    Commented Jan 15, 2016 at 3:19
  • 6
    @Stemo "I'm not following every link to a URL I find in our source code" - you should be ! That's part of the process. If you aren't following it you open yourself up to lawyers. If you are a one-man-band, then perhaps it's less enforceable, but larger companies will open themselves up to litigation. At least one company I worked for, had someone who's responsibility it was to chase these things up.
    – Neil
    Commented Jan 15, 2016 at 10:05
  • 2
    Just distribute both the minified and non-minified JS, which you ought to have been doing anyway, and which is already a requirement for inclusion e.g. into Debian which (for extremely good reasons) insists on being able to build from (nōn-minified) source.
    – mirabilos
    Commented Jan 15, 2016 at 11:25
  • 3
    @sampablokuper Thanks for enlightening me. This is pretty much making me never want to use StackOverflow again. Certainly not without heavily rewriting the answer to one of my questions.
    – Sterno
    Commented Jan 15, 2016 at 15:57
  • 1
    @Sterno, you're welcome :) And there's no need to stop using Stack Overflow just yet! The licensing terms are linked at the bottom of every page (and have been for years). Act in accordance with those terms, and you'll be fine.
    – user136089
    Commented Jan 15, 2016 at 17:55
28

This doesn't really answer any of my concerns that started with the original proposal. A comment from the posting mod on my response to the original proposal said, about determining what's code and what's not (emphasis added):

Just to clarify, we never said code is anything inside a code block. It might be up to a user to decide what's code and what isn't, just like he/she may have to make a judgement about whether something crosses the threshold of originality. Ultimately, always, it's on a code user to decide how he/she wants to use what they find here.
samthebrand♦ 12 hours ago

This was one of the biggest sources on confusion for me, and it seems like it'd be one of the easiest to address. Leaving it open causes a number of issues:

  • Inline code, or just code blocks?
  • Documentation strings in code?
  • Comment blocks in code?
  • What about edits that turn one into the other?
  • Why on earth would it be up to the user, not the author to make this determination?

I'd like to say that this revision answers some of these questions. It doesn't though. These issues just get punted a little longer, except that a little bit of the confusion is cemented (emphasis added):

But what is code?

We will give you guidance on identifying code in an upcoming FAQ, plus guidance on how best to comply with the attribution requirement. But ultimately, identifying code will be a judgement call on your part. We have full faith in your ability to do this.

This shouldn't be on the user of the code. If I walk into a bookstore and there are free flyers for local events on a table by the door, I don't get to decide that the contents of the bookshelf nearest the door are also for free; the bookstore gets to decide that. It needs to be clear what content is available under what terms.

What’s next?

We want to hear what you think. Barring any showstopper, these terms and a detailed FAQ will be rolled out March 1, 2016.

I'd say that the lack of a detailed FAQ is the showstopper (negative sense).

4
  • w00t; didn't realize how easy it'd be to get a "Reversal" badge on Meta Commented Jan 15, 2016 at 17:13
  • 3
    JoshuaTaylor, I agree with your post entirely except for this: "I'd say that the lack of a detailed FAQ is the showstopper." I totally agree with that sentence's sentiment that clarification is needed. But an FAQ isn't the place for that clarity. This excellent comment by rolfl sums it up: "If the license needs a FAQ to define the license, then it's not a license."
    – user136089
    Commented Jan 15, 2016 at 18:43
  • @sampablokuper I entirely agree. (Though a well written license may still generate frequently asked questions, since many license readers aren't necessarily lawyers, so there are many legitimate questions about what the license means.) I think that by the time such a FAQ is in place, the license will have been pinned down, too. Commented Jan 15, 2016 at 18:46
  • 1. The license should stand alone. 2. In order to get community feedback on that license, there needs to be a FAQ addressing the many questions from the community. All the answers should already be covered by the license, but a FAQ makes discussion much more likely and useful. Commented Jan 22, 2016 at 3:48
28

The changes will now go into effect March 1, 2016

We want to hear what you think. Barring any showstopper, these terms and a detailed FAQ will be rolled out March 1, 2016.

I would like to see the changes be delayed an extra month or 2, just so there will first be feedback on the FAQ that will be rolled out on the 1st of March and any missing information can be filled in so the community fully understands what this means for their post and the usage of code from SE sites and what exactly changes before implementing it.

1
  • 2
    Can’t upvote this enough…
    – mirabilos
    Commented Jan 15, 2016 at 11:23
26

Update: I'll take back my claim that SE does not have adequate legal support. However, as mentioned in comments, they are yet to provide a justification for their action.

Why must you dictate?

Even on the previous post, there was a comment criticizing your attitude over the whole issue. And again, even on this post, it does not propose March 1 as a starting date, instead it declares that March 1 onwards, we will bring this license.

Was there any significant support for such a license on the previous post? Is there any list of reasons why this license is better than every other license there exists?

Are you capable of deciding?

And lastly, does SE lack the legal support to actually determine the best license (and justify it adequately to the public), instead of relying on the up-votes (which themselves are disputable) of an online crowd? I have a strong feeling that this is so.

I personally have no opinion on the issue (read no clue what's right or wrong), but it does look bad on your part that the SE admin is boldly declaring their intentions only to receive a flood of down-votes. If you cannot decide (or else justify your decisions), then why do you?

12
  • 5
    We have one of the best lawyers in the world (in this field) working on it with us (he teaches this sort of coursework at Fordham). We look at votes to get an idea of how people feel about it.
    – user50049
    Commented Jan 14, 2016 at 18:07
  • 31
    @TimPost Then he should be able to justify his decision rather than having a moderator just declare it to us. Commented Jan 14, 2016 at 18:14
  • 16
    @TimPost You're normally really good at this - but recently that has... changed. I'd like to see at least the impression of democracy back. What's the point in these posts if you give the impressions you've decided everything?
    – Tim
    Commented Jan 14, 2016 at 20:28
  • They are very much capable of deciding and that is clearly visible in their previous and this version of proposal. (It is another matter how an SE user perceive their decision: clear and helpful or ambiguous) What they are trying to see here is what the community think about their decision, since no matter how hard they try, community (given its diverse nature) has the possibility of coming up with a better decision or at least with some critical input which may have been overlooked during decision making. The problem I see in your answer is that I don't understand why it has been posted.
    – 286110
    Commented Jan 15, 2016 at 2:20
  • 3
    @TimPost - A teacher? You need to hire a real law firm. Researchers have terrible track records when it comes to the private sector.
    – Travis J
    Commented Jan 15, 2016 at 16:50
  • Check what the creator of SO states under his "90% of all community feedback is crap". (he is right).
    – user
    Commented Jan 16, 2016 at 9:07
  • @Fermiparadox But how will you get the 10% useful feedback if you don't provide the reasoning behind your decisions? Commented Jan 17, 2016 at 15:52
  • @ghosts_in_the_code My comment was related to the "Why must you dictate" part of the answer. Dictating sometimes can be very beneficial.
    – user
    Commented Jan 17, 2016 at 15:58
  • @Fermiparadox Not against a unanimous feedback Commented Jan 17, 2016 at 16:00
  • @ghosts_in_the_code Why not?
    – user
    Commented Jan 17, 2016 at 16:01
  • 1
    @Fermiparadox Even if 90% of the users give useless feedback, that doesn't mean they all will down-vote. I would have agreed to the fact that people are down-voting excessively if the mod had provided justification the new license over the old (in layman's terms). Since he hasn't, the post is poorly written, for starters. If this was a feature-request by a user instead of a declaration by a mod, it would have been closed due to lack of reasoning given. Commented Jan 17, 2016 at 16:07
  • Indeed it seems StackExchange is not doing their homework. They might have hired a teacher (but why not someone more experienced like FSF, CC, EFF or Software Conservancy?) but they apparently didn't ask to be taught about dual-licensing among other things meta.stackexchange.com/questions/272956/…
    – Nemo
    Commented Feb 2, 2016 at 8:13
26

If you are going to fix it, fix it properly; do not apply a band aid

I don't support this, but for different reasons to the remaining answers (as far as I can tell). I have a feeling I'm going to get a pile of downvotes, but...

The original proposal gave (almost) the right answer, but you went about it the wrong way, and it was incomplete (for all the reasons set out in almost every answer). The right answer (as far as I'm concerned) is to MIT licence new posts (not MIT with attribution) as you suggested, but with a dual licence for CC-BY-SA, and to leave old posts as they are. Then ensure the licence is actually listed with the code.

What you're now suggesting is MIT with attribution. Really, that doesn't help. MIT with an exception that the licence does not have to be reproduced with attribution is not an OSI approved licence, and we don't need yet another licence around - licence proliferation is a bad thing. If you are going to require attribution, use an OSI approved licence that has an attribution requirement rather than making another one up.

But is attribution really necessary? In my view, the answer is no.

Firstly, Stack Exchange contributions are to share know-how. They are not to share intellectual property. Typically we are talking about small pieces of code - if not, why are you pasting them on Stack Exchange? Whether these are sufficiently large to constitute an independent work protectable by copyright that does not come under a 'fair use' provision is going to turn on the facts, and be a matter that can be debated by lawyers. So if I want to use a little code that's on Stack Exchange, the licence is of no help to me. As Ian Ringrose pointed out, does a call to create a new GUID require attribution or not? Under the existing CC-BY-SA licence, we don't know (because we don't know whether the one line of code is a 'work', and we don't know whether it is within a fair use extension), and under the proposed new licence (MIT with attribution) we also don't know. I'm guessing not for one line. If it's 100 lines, may be yes (but what's 100 lines of code doing there?). Five lines? You are not actually helping your readers.

Let's not assume that this only impacts people writing proprietary software. Even an open source project using an Stack Exchange contribution has just as many licence compatibility issues as under the previous licence (because that open source project is unlikely to be using your mangled MIT licence). You haven't helped.

And you aren't actually helping your contributors. If someone wants to create a new GUID, and I tell that person how to create a new GUID in the most efficient possible way (with a line of code), I want to do just that. I want to teach them, and to make their life better. I do not expect every time they use that technique to reference an article on Stack Exchange to acknowledge that I was the guy who taught them how to create a new GUID (NB it was actually someone else). This is a qualitatively different action from publishing software on GitHub, where (incidentally) I get to choose any licence I like. I don't need the attribution, so don't give it to me. Just like I don't need it to be a GPL type licence (and you didn't give that to me).

The only conceivable result is those using short bits of code will be no more happy with MIT+attribution than they were with CC-BY-SA. I.e. they will either just ignore it, or be in a position where they don't know what the right thing to do is, and possibly rewrite in order to disguise a copy. This helps no one.

Additional (technical) issue

The licence has the text:

"Contributors agree to give code users permission to ignore the MIT License’s notice preservation requirement"

So, if Alice copies Bob's code, Alice has to copy it with an attribution, but may omit the text of the licence licence. Charles then copies Bob's code, and no longer has to acknowledge the original author (Alice), because the license that requires it has been removed. But had Charles copied it directly from Stack Exchange, Charles would have had to do something different. This makes very little sense.

Even better, unpleasant Stack Exchange scraping site B can legitimately copy every post on Stack Exchange, attributing them properly, but not replicating the licence. Unpleasant Stack Exchange scraping site C can then copy scraping site B without attribution. Yuck.

14
  • 8
    "if not, why are you pasting them on StackExchange?" You hit the nail on the head.
    – TylerH
    Commented Jan 14, 2016 at 19:45
  • 3
    "They are not to share intellectual property." -- All of my creative content - my words, my code - is my intellectual property that I'm choosing to release to the world under a particular license. I expect that license to require attribution. If it doesn't, I won't contribute under another license. Commented Jan 14, 2016 at 19:58
  • 3
    @ThomasOwens I'm talking about the purpose of a post to SE. The purpose of posting on SE (as far as I'm concerned anyway) is not to share something which is intellectual property (like it is uploading s/w to Github where you get to pick your licence). The purpose is to ask questions or help people out. That may incidentally require sharing something that might or might not be protectable intellectual property. In my view this objective is not achieved by licences whose obligations are unclear or (see last para) bizarre. And by your argument, you should get to pick whatever licence you want.
    – abligh
    Commented Jan 14, 2016 at 20:01
  • 8
    "...if not, why are you pasting them on StackExchange?" Don't forget SO isn't all of Stack Exchange. Code Review requires complete, working code, as does Code Golf.
    – thegrinner
    Commented Jan 14, 2016 at 21:11
  • 4
    This is a good argument regarding the situation on SO, but the matter is worse on other SE sites such as Code Review – here people routinely share their fully functional, often quite large programs so that others can provide feedback. With the license change, new questions would fall under the faux-MIT which might be quite unattractive for many contributors, though I'll doubt most would even be aware that by asking for feedback, they've released their code under an extremely liberal license…
    – amon
    Commented Jan 14, 2016 at 21:14
  • @thegrinner & amon fair point. Comes down to how SE defines "code" (which is not defined anywhere AFAICT). Code Review in particular is in less need of fixing in the first place.
    – abligh
    Commented Jan 14, 2016 at 21:15
  • 1
    @abligh it really does, and the lack of the definition concerns me. Admittedly, I'm more afraid of what edits (and the review queue) will do to make that more ambiguous :(
    – thegrinner
    Commented Jan 14, 2016 at 21:17
  • MIT without attribution is not an OSI approved licence, Ummm... Yes it is. CC0 is the public domain dedication. It's basically an open source license - The reason why it wasn't approved is not because of the attribution segment, but because of patents - which is a completely separate issue.
    – Zizouz212
    Commented Jan 14, 2016 at 22:56
  • @Zizouz212 thanks, I wrote that completely wrong and have fixed it. I meant that the mangling of the MIT licence proposed is not an OSI approved licence, IE the provision that you can omit the the licence itself if it's attributed.
    – abligh
    Commented Jan 14, 2016 at 22:59
  • 1
    @abligh, "if Alice copies Bob's code [and solely attributes, then Charles can obtain it under Bob's license terms instead of Alice's]. This makes very little sense." Right. In my answer, I've fleshed out the scenario you describe.
    – user136089
    Commented Jan 14, 2016 at 23:36
  • @sampablokuper yep. Public domain / CC0 or whatever is actually a viable option, but if SE are intending that, it should be explicit, not a loophole.
    – abligh
    Commented Jan 14, 2016 at 23:40
  • 1
    No, waiving MIT's license inclusion requirement doesn't magically make the code public domain. Under the Berne convention, everything is copyrighted, all rights reserved by default. Licenses grant permissions that are normally protected by copyright. So without the license, you don't have permission until you follow that SE URL, and find out that there is a license (SE's custom MIT or whatever). Commented Jan 14, 2016 at 23:51
  • "Typically [...] small pieces of code" -- for which copyright often doesn't apply, as non-creative works, so what are you complaining about? Commented Jan 15, 2016 at 13:04
  • @phyzome Both the current situation and the proposed new situation give significant uncertainty as to the obligations of someone using the code snippet. It's SE (not me) that is advocating the change, and I am pointing out that the change they advocate does not actually reduce the uncertainty, i.e. 'it's not helpful'.
    – abligh
    Commented Jan 15, 2016 at 13:22
22

In case no one has said it already: add a licence selector to a posts where code is detected. If there are multiple blocks, give the option to select fine-grained licences for each one of them. Default it to no licence, or a user-configured one.

I personally consider any code I might write in SO public domain, not MIT or a modified MIT. And I certainly do not want code spammed with SO links.

19
  • The problem is that public domain may not exist in all areas. It's a meaningless thing. Commented Jan 14, 2016 at 19:34
  • @ThomasOwens What do you mean by "areas"?
    – TylerH
    Commented Jan 14, 2016 at 19:44
  • @TylerH Countries. Legal jurisdictions. Commented Jan 14, 2016 at 19:55
  • @ThomasOwens At that level you're getting into international law between nation states... there isn't anything an individual can do there no matter what license you use.
    – TylerH
    Commented Jan 14, 2016 at 19:59
  • 3
    @joojaa Which is why SE shouldn't change the license. They should go with an existing license without modifications. Those should generally work around the world. Commented Jan 14, 2016 at 19:59
  • 1
    @TylerH Teams of lawyers have written and vetted things like MIT, Apache 2.0, and BSD 2- and 3-clause for use around the world. Commented Jan 14, 2016 at 20:00
  • 1
    @ThomasOwens Yes but the problem is that my jurisdiction does not accept wrapper licenses, so whatever stackexhange does is problematic still. The entire concept that the TOS is valid is at stake
    – joojaa
    Commented Jan 14, 2016 at 20:03
  • @joojaa I don't know what you mean by "wrapper license". You'll have to provide something for me to read on the subject. If vanilla MIT/BSD/Apache/OSI-approved/FSF-approved licenses were used, I'm not aware of any jurisdiction that would have a problem with them or where they couldn't be enforced. Commented Jan 14, 2016 at 20:05
  • @ThomasOwens Okay, but if a country doesn't honor another country's licenses then what are you going to do?
    – TylerH
    Commented Jan 14, 2016 at 20:06
  • @ThomasOwens its not that, but the problem is that users aren't bound by conditions set by others, Ticking a checkbox saying i understand the deal isn't necceserily binding.
    – joojaa
    Commented Jan 14, 2016 at 20:06
  • @TylerH A country doesn't develop a license. They also don't honor licenses. Individuals honor licenses. Organizations honor licenses. Commented Jan 14, 2016 at 20:07
  • 1
    @ThomasOwens So what are you going to do if an individual person doesn't honor your license? Sue them? What if they're in a country that doesn't honor your country's laws or internationally-agreed upon licenses? Try to get that individual renditioned to your country for trial?
    – TylerH
    Commented Jan 14, 2016 at 20:08
  • 1
    @TylerH If I felt it was important. I like having that option open to me, yes. It's my content and my intellectual property, I'm going to protect it to the level that I see fit. Would I for a Stack Overflow answer? Probably not. But it's nice to have a strong legal foundation to stand on. Commented Jan 14, 2016 at 20:11
  • 1
    How would edits work with your licence selector?
    – abligh
    Commented Jan 14, 2016 at 21:20
  • 3
    @MarcoAurélioDeleu That's nice, but I hope that you realize that I'm asking for code to be made available under a license that provides similar protections to the current CC BY-SA license and that are well understood and vetted around the world. I would hope that anyone who wants to provide high quality answers and share their knowledge (and on some sites, like Code Review, their "questions" and code for review) would also want the ability to protect their intellectual property as well. Commented Jan 15, 2016 at 0:58
21

David Thornley has some good insight on this issue which hasn't received much positive attention:

CC-BY-SA is not an all-permissive license like the modern BSD type. It's much closer to the GPL, in that derivations have to be under a share-alike license.

For some programmers, this is fine. I work on internal software, so it really doesn't matter what Free/Open Source licenses we use. All we need is permission to use, modify, and distribute internally, and that's what we do.

On the other hand, some of us make money by selling software in the traditional sense, and CC-BY-SA isn't compatible with that business model. (I've had a couple of jobs like that.) Some of us work for companies with lawyers or managers who don't "get" free/open source software. (I've had some clueless managers.) In this case, anything short of a BSD-type license might frighten them.

Nor does the "excerpt" idea necessarily help. There is, as far as I know, no official lower bound of what is copyrightable, and there is not necessarily a right to use excerpts. In the US, "fair use" is in the copyright law, but again there's no actual definition: it's a judgment call that should consider several things. There's legal dangers with rewriting snippets also, in that it isn't clear what's a derivative work. All of these would potentially have to be decided in a court of law, and that's expensive.

So, there is a very real problem for individuals or companies that sell proprietary software and don't want to be in the position of having to defend what they include in court.

I think it would help if we had a handy BSD-type license we could slap onto code snippets as we wished.

From What is up with the source code license on Stack Overflow?.

Another example where the existing license is shown to be wholly inadequate:

If you are talking about taking code from Stack Overflow for use in your work, I would be very careful. Even if it is the opinion of the people here that posts to Stack Overflow are covered by Creative Commons, you will need to be able to prove that you got the code from here.

A Short Story To Illustrate:

  • Someone else decides the code is a good solution for a problem they are facing, and decides to copy it into their open source GnuFizzBuzz project, covered by the GPL.
  • Five years from now, someone is doing an open source audit on your code (maybe you are selling to a nervous customer, or your company is going public).
  • The open source audit finds the snippet of code you got from Stack Overflow, and recognizes it as originating in GnuFizzBuzz.
  • You are now stuck explaining how/why you have GPL code mixed into your commercial product, or proving that the code was actually from Stack Overflow. Can you prove that the person posting the code to Stack Overflow owned it to begin with (maybe they actually copied it from GnuFizzBuzz to begin wih).

It may sound unlikely, but I have seen this exact situation with my own eyes. The safe thing to do is to regard any code snippets you find as explanations of how something could work. Read, understand, and write a solution based on your understanding. Don't ever cut/paste code you found on the Internet if you are working on a commercial product.

(source)

9
  • Other problems with CC-BY-SA (3.0): it is incompatible with GPL (although version 4 is compatible with GPLv3); it has an anti-DRM clause that makes it impossible to use in e.g. App Store or Steam; the "share alike" clause doesn't differentiate between source and binary forms, so it's a broken copyleft. Commented Jan 14, 2016 at 23:58
  • @congusbongus, I think you'll find that CC-BY-SA 3.0 is effectively compatible with GPLv3.
    – user136089
    Commented Jan 15, 2016 at 2:31
  • 8
    Adam Davis, "the existing license is shown to be wholly inadequate" Er, no. It is admittedly - and rightly - inadequate for people with sketchy business requirements. It is wholly adequate for everybody else :)
    – user136089
    Commented Jan 15, 2016 at 2:35
  • 2
    @sampablokuper Are you indicating that the two people I've quoted above that showed problems with the existing license have sketchy business requirements, and we should dismiss their experiences because we disagree with their work?
    – Pollyanna
    Commented Jan 15, 2016 at 11:52
  • @otus This post is intended to demonstrate the issues with the existing license. At least the first person suggests that a BSD like license (which the MIT is) would resolve their problem. They haven't been on this network for a few months, though, so I'm not sure if these specific changes would resolve their problem. The point of this answer is to demonstrate a need for a license change.
    – Pollyanna
    Commented Jan 15, 2016 at 11:54
  • @AdamDavis, no. I am indicating that those two people haven't shown problems with the CC-BY-SA 3.0 license. It is your claim that CC-BY-SA 3.0 is "wholly inadequate" for SE, and your suggestion that the quotes you provided in any way back up that claim, that I believe to be false.
    – user136089
    Commented Jan 15, 2016 at 13:16
  • @sampablokuper You and I apparently disagree, then, on a more fundamental issue of licensing. From your perspective I can see why you'd oppose this change, and why you would make this particular distinction. Thanks for your input.
    – Pollyanna
    Commented Jan 15, 2016 at 13:32
  • @AdamDavis, ok, the part you deleted seemed to indicate otherwise (i.e. that the suggested license change would do nothing).
    – otus
    Commented Jan 15, 2016 at 13:38
  • @otus Yes, your comment helped me to see that it was confusing the issue, so hopefully the answer is more self-consistent.
    – Pollyanna
    Commented Jan 15, 2016 at 13:58
20

A few thoughts (that may be familiar to those who read my last answer):

1. The CC BY-SA license should apply to the whole post

Making only non-code contributions be licensed under the CC BY-SA is a completely unnecessary complication. Dual-licensing the code will be much smarter.

2. You need to define what "code" is

Some other posters are saying this will be very complicated, but I don't think it will be. If the dual licensing applied only to code in code blocks, then I think that would be a clear and unambiguous definition. It wouldn't catch all code ever, but that's okay. (Yes there would also be some false positives, but I think the simplicity of a definition like this outweighs the downsides.)

3. Don't pretend this is the MIT license!

Don't pretend you're using the MIT license when you're not. If you need a unique license for a unique situation then just use a unique license. While crayon licenses in general are a problem, I think that this the Stack Exchange network is a situation where a new ultra-basic license would be warranted. And I know you'll use your legal team to prevent the problems with other crayon licenses.

4. It would be best to make a new license

I think it would probably be best to write a new license which is very basic and allows reuse as long as a URL of the post is attached to the borrowed code. It may make sense to make that a non-transferable license, so that those who want to redistribute it again must do so only under the full MIT.

5. The license needs to be self contained

You can't have the license, and then list exceptions to it in the terms of service. The terms of service are an agreement between us users and the Stack Overflow corporation, but the post license is an agreement between us and the post authors. Confusing the purposes of a copyright license and a website terms of service is a fundamental mistake.

If a post is contributed under the MIT license then that is its license, and I doubt it would even be legal for the terms of service to give an exception to it. In addition, the license should apply no matter when you find the post, whether it be here, at some kind of mirror, or at archive.org.

6. Each post should show its applicable licenses

Each post should indicate below it what the relevant licenses are. If the user has selected only CC BY-SA or CC0 then it could show it. Old posts would show only CC BY-SA (unless perhaps their author edits them and ticks a box saying "update to the new SE-Attribution license"). Posts edited by multiple authors would show only the compatible licenses: new posts without any user opt-ins would be the same as if they only had one author, but if the user did opt-in to CC BY-SA only, then the posts would be only CC BY-SA.

7. Fix your footer "attribution required" link

It is against the terms of the CC BY-SA license to require specific attribution formats. It is dishonest and disingenuous to keep that link in the footer.

6
  • 1
    Applying a blanket definition of "code" to anything in code blocks will end up with a lot of false positives as well.
    – user307833
    Commented Jan 15, 2016 at 4:20
  • @Mego Sure, but again I don't think it's a big problem. The definition needs to be clear and reasonably reliable. Commented Jan 15, 2016 at 4:25
  • It's clear, but not reliable at all. Though code blocks may mainly be used for code on SO and a few SE network sites (Code Review, Code Golf, Programmers, ...), there are many sites that have absolutely nothing to do with code (SFF, RPG, Arqade, ...). On those sites, under your proposal, anything in code blocks would be treated as code, even though it is almost surely not code. It's a flawed definition.
    – user307833
    Commented Jan 15, 2016 at 4:29
  • 1
    @Mego: Other sites (that don’t use code) shouldn’t use code blocks. Among other things, they make it hard for people using screen readers.
    – chirlu
    Commented Jan 15, 2016 at 11:02
  • @chirlu I have myself sometimes used them as a substitute for tables. (Which Stack Exchange really should just support directly!) But even so, I don't think it's a prohibitive use case. Commented Jan 15, 2016 at 11:17
  • 1
    All good points, this one particularly so: 5. The license needs to be self contained (and by extension, of course, it won't and can't be the MIT license). Commented Jan 15, 2016 at 11:44
17

Reactions to this proposal fall into different camps, because there are different kinds of users of the Stack Exchange sites, in particular Stack Overflow. I am not sure this license change will serve all of them. In particular, I believe other mechanisms might be a better solution to the problems this license change is trying to combat.


Jonny can't get his code to work, and dumps it on Stack Overflow

To be clear, this already is a problem. If Jonny works on some commercial project, or is contributing to a copyleft-licensed project, it is quite unlikely they can share that code under CC-BY-SA on Stack Exchange. Of course, the real solution is that they create a MVCE specifically for their Stack Overflow question rather than dumping their actual code. But by changing the default code license from CC-BY-SA to the faux-MIT, this problem is worsened. Whereas sharing a short snippet of internal code with a copy-left license might be forgiveable – it's unlikely to be used in other projects given that the copy-left CC-BY-SA is not compatible with proprietary code –, giving everyone a license to do what the f* they want is far more troubling. I would be surprised if a reasonable company would continue to allow their employees to freely ask questions on SO.

The “what about Code Review?” argument also falls into this category. Here, large complete programs are shared to be improved. This is already unlikely to be done with commercial code, so questions are mostly by people learning a new language or otherwise improving their skills in their own time. The CC-BY-SA license is fairly safe here, but I doubt most question askers on Code Review would be fine with giving their programs away under an extremely liberal license: I wrote this program, and all I got was this lousy link.


Janine likes helping people, and is fine with her code being used

Then she can already point out all her code is free. This does not necessitate a network-wide license change. Most positive reactions I see to this proposal seem to fall into this category, but it is the least important. If you'd like to make this easier, you could introduce a per-post license selector rather than forcibly relicensing all contributions to this mind set. Such a license selector would merely add formal support for the already common practice of dual-licensing code in posts via a notice in the user profile.


Jerome searches for his problem, finds an SO answer, copies the code

While this may be common practice, Jerome is not allowed to do this under the CC-BY-SA license[1]. He would be well-served by this change. As already pointed out elsewhere, the only safe way to use code found on SO is to do a clean-room re-engineering, or to rely on Fair Use laws or limits to copyrightability, which are not consistent across the world.

I am not convinced that this should be encouraged. Maybe SE is right and this is a futile war on license violations, and the best way forward is to legalize what everyone is allegedly already doing? Or SO could invest in better education explaining what is OK and what is not OK to do. In particular, this would imply moving the focus away from debugging questions back to knowledge questions.

[1]: Jerome can only incorporate CC-BY-SA code in his project if (a) the project is never published, or (b) the project is also licensed under CC-BY-SA (see section 4.b). This rules out usage of SE code in most commercial and open-source projects.


Julia likes sharing her knowledge, not her code

This is where I find myself in this discussion. I love writing stellar answers that provide lasting value. In my experience, the best answers on many sites I participate on (Programmers, Code Review, Stack Overflow) do not actually contain much code. And I am fine with people using this knowledge for whatever purpose. Curing Cancer? Coding Porn Sites? I'm fine with that: knowledge can't be copyrighted.

But expression of knowledge can be, and this extends to code examples I might include in my answers. When I write an answer, I want to be attributed. Properly, with not only a link but also my nick, and with a reference to the license so that people that read my writings know their rights (and restrictions).

In particular, I don't want to feel like I'm doing work for free for other people (which is why I stopped answering all those debugging questions on SO). The copy-left CC-BY-SA license does not forbid commercial use, but it makes sure my answers and all parts thereof will continue to stay free. This is in stark contrast to the faux-MIT license suggested by SE, which would allow my contributions to be made non-free.

Changing the license will alienate contributors like Julia or me. If this change comes, I'll think twice before I use runnable code to illustrate my knowledge – maybe, more text or pseudocode would be a better mechanism.


Peter doesn't use Stack Overflow, doesn't care

Why is SE complicating licensing for half the SE network that has nothing to do with code? From Seasoned Advice to Super User, this change adds no value to every site that isn't Stack Overflow. Yes, I'm exaggerating. Other sites that might benefit from this change are Game Development, Tex, Wordpress, …, but these are the minority. I understand the desire to limit license fragmentation across the network, but this is a change that should really be applied on a per-site basis, after discussion on that site's own meta to assure that this change is a benefit. SE will already need a per-post license indication because they can't re-license old posts, so a per-site policy would make it even simpler for many users!


In summary, I do see the appeal of this change for the majority of passive SO users, but I don't see the value for active SO users, or non-SO users. I'd very strongly rather not see this license change happening. And I'm saddened I had to do this analysis myself. It would have been nicer, less sneaky, for SE to demonstrate up-front how this change would impact different users.

8
  • Related answer on the predecessor: meta.stackexchange.com/a/271179/257849 Commented Jan 15, 2016 at 16:01
  • I'd like to see actual examples of people actually copying code from SO/SE/CR. If you read a solution and want to use it, it's very unlikely that you will actually copy some creative part of it. You will use the knowledge gained from the demonstrated solution in your own project, in your own way, and the result will be your own work. The result is no more a copy than this sentence is a copy pieced together from words copied out of the OED.
    – Brandin
    Commented Jan 15, 2016 at 17:37
  • 1
    Interesting...I identify completely with "Julia" and you as far as the character of my contributions to SO, but I'm perfectly okay with MIT (although I do wish it wasn't faux-MIT, as you say.
    – jscs
    Commented Jan 15, 2016 at 19:53
  • 1
    "Jerome searches for his problem, finds an SO answer, copies the code. While this may be common practice, Jerome is not allowed to do this under the CC-BY-SA license." False. Under CC-BY-SA, everyone is explicitly allowed to copy content (and make derivative works, and sell them for profit, etc), as long as they do so in accordance with the terms of CC-BY-SA.
    – user136089
    Commented Jan 16, 2016 at 16:33
  • @sampablokuper CC-BY-SA does allow copying and creating derived works, but those would have to be licensed under a compatible license (see §4.b in CC-BY-SA v3.0). If I copy a CC-BY-SA code snippet into a larger work, I'd argue this larger work would fall under CC-BY-SA as it is an adaption of the original code. Since outside of the code on SE practically no real code is available under this license, it is safe to say that Jerome cannot copy code into a project that would be published under a different license, e.g. GPL or a proprietary program. This wouldn't be a problem with the non-viral MIT
    – amon
    Commented Jan 16, 2016 at 23:44
  • @amon, your statement in the comment above ("CC-BY-SA does allow copying and creating derived works, but those would have to be licensed under a compatible license") is true. However, the earlier statement you made that I said was false, was false, & at time of writing it is still in your answer. A logically sound argument cannot contain false premises. Therefore the argument in your post was (& remains) logically unsound. Logically unsound arguments should, IMO, be downvoted. If you want to make your answer worth upvoting, please edit it to make it into a logically sound argument. Thanks :)
    – user136089
    Commented Jan 17, 2016 at 0:00
  • @sampablokuper A logically sound argument can use simplifications, and focus on the common cases. I tried to create personas for different user types, but not everybody will find themselves in one of those I suggested. In particular, Jack is missing. Jack works on a personal project, researches a problem on SO, and copies some code. Jack is fine as long he never publishes the project. However, I think it's reasonable assume that most license violations happen by employed programmers or programmers working on projects that will be published.
    – amon
    Commented Jan 17, 2016 at 0:24
  • @amon, "A logically sound argument can use simplifications, and focus on the common cases." Only if the stated premises are true within the universe of discourse. Otherwise, the argument becomes logically unsound. The statement of yours that I called out was false, even in the universe of discourse of your illustrative use case (correct me if I'm wrong!). Anyhow, the footnote you've added in response to my comments improves your post somewhat, so thanks for that :) You might find this interesting and relevant.
    – user136089
    Commented Jan 17, 2016 at 0:43
16

So you are saying that every time anyone writes

Guid optional = new Guid()

they must include a link to this question in a comment?

Just having the possibility of a company getting into legal problems due to their employees not keeping to this, will be enough to get stackoverflow outlawed by lots of legal departments.

10
  • 17
    doesn't CC-BY-SA require them to do this already? I'm not clear how this proposal changes what does or doesn't require attribution...
    – KutuluMike
    Commented Jan 14, 2016 at 17:24
  • 3
    @MikeEdenfield, maybe it does, but this mess needs sorting out if you every expect people to respect a licance.. Commented Jan 14, 2016 at 17:25
  • 11
    This is currently required by CC-BY-SA. The ambiguity in the language of the license when it comes to code is precisely what we want to fix, because it can have precisely the effect you describe. Not because it's known the code came from SO, but because it's unknown if CC-BY-SA is compatible with whatever license they're using.
    – user50049
    Commented Jan 14, 2016 at 17:26
  • 15
    This is an extension of the point I made last time. By treating the content as licensed code rather than advice or knowledge, we would be bringing lawyering into the software development process. Precisely the kind of productivity drag that developers loathe. Commented Jan 14, 2016 at 17:45
  • 16
    @TimPost Can you get a lawyer to confirm that? That line of code does not meet the threshold of originality in the United States, so it's not copyrightable. Since I don't hold a copyright on that line of code, I can't license it to anyone else. The same goes for simple sentences: if I have the sentence "No, I don't think you should do that.", no one needs to do anything special if they happen to use that one sentence. Now, that "answer" would probably be deleted on SE, but that's not the point. Commented Jan 14, 2016 at 18:26
  • 6
    @ThomasOwens Correct. And this license change doesn't affect that fact, because it legally can't. It only applies to code which it can apply to. (Obviously.)
    – Ajedi32
    Commented Jan 14, 2016 at 20:04
  • 5
    This is not how copyright works. You can independently write the exact same code and remain its author. Commented Jan 14, 2016 at 23:44
  • 3
    No at both Ian’s question and most comments – such a trivial line is not covered by copyright law and thus doesn’t require a licence. It’s truly in the Public Domain, anywhere.
    – mirabilos
    Commented Jan 15, 2016 at 11:17
  • 1
    Just because it is OK in the USA TODAY does not make it safe, as software is worldwide and lasts for a long time. Commented Jan 15, 2016 at 19:12
  • @mirabilos is right.
    – Nemo
    Commented Feb 2, 2016 at 8:10
15

I generally agree that the license change is a good idea. I would have personally preferred something even less restrictive, but I can understand why the MIT license was chosen.

One part that is getting a bit lost in the discussion here is how problematic the current license for code is. The Creative Commons licenses were never meant for code which leads to various issues when you use them for code as SE is currently doing:

We recommend against using Creative Commons licenses for software. Instead, we strongly encourage you to use one of the very good software licenses which are already available. We recommend considering licenses made available by the Free Software Foundation or listed as “open source” by the Open Source Initiative.

Unlike software-specific licenses, CC licenses do not contain specific terms about the distribution of source code, which is often important to ensuring the free reuse and modifiability of software. Many software licenses also address patent rights, which are important to software but may not be applicable to other copyrightable works. Additionally, our licenses are currently not compatible with the major software licenses, so it would be difficult to integrate CC-licensed work with other free software. Existing software licenses were designed specifically for use with software and offer a similar set of rights to the Creative Commons licenses.

I'm not a laywer, but because the CC license isn't meant for code it means I'd probably need one to figure out the implications of using CC-BY-SA code in a project. The license is not compatible with all the common open source licenses, and the SA clause is likely to be very problematic in closed source programs.

For me, code in answers is meant to be used. Having a license that can prevent some people from using it is problematic, and something worth fixing in my opinion.

Using a license meant for code makes sense and removes ambiguity. That is why I like the idea in general. There are certainly issues with the current proposal, but I think they're much smaller than the issue we have right now with the existing license.

3
  • 8
    "I can understand why the MIT license was chosen.". Ahem. The 'MIT License' was not chosen.
    – user136089
    Commented Jan 14, 2016 at 19:24
  • 3
    @sampablokuper I'm not a lawyer, I suspect you're wrong, but I can't be sure. So I'll just contine assuming the chosen license is MIT, at the very least that is the intent Commented Jan 14, 2016 at 19:25
  • 3
    "I'll just contine assuming the chosen license is MIT, at the very least that is the intent". If it were the intent, why did SE's staff decide to expend great effort (hiring counsel, etc) on overriding such a core part of the license as the notice preservation requirement? Seriously, if they intended to go with the OSI MIT License, nothing was stopping them just doing so.
    – user136089
    Commented Jan 14, 2016 at 20:24
14

Just looking at some points you make.

Attribution will be required when you use code found at Stack Overflow and Stack Exchange

I don't get it. Isn't that the case already?

Either I've missed something, or... nothing changes there?

Next one.

We understand that some users feel the new terms are not a perfect fit for certain sites, but we think fragmenting the license across the network will lead to ambiguity – the exact problem we’re trying to solve by updating the terms.

I can be mistaken, but I don't recall different sites of Stack Exchange family to have their content licensed differently. As the footer stays, "user contributions licensed under cc by-sa 3.0 with attribution required". Currently it says so on any SE site. Then the license doesn't appear to be fragmented? There's no problem then, let's keep the old good traditions... But wait, you're now changing the license and it appears to cause problems. Isn't that a sign that something is done not in the right way?

This change is just a first step in establishing clarity for using code found on Stack Overflow and Stack Exchange

As I've mentioned above, the footer says the attribution is required... linking to Jeff's blog post. Anything you mention doesn't appear to contradict with the point of Jeff and hence the rules which we're complying now. In fact, the blog post is being more descriptive regarding the contribution.

Also, we want to make sure everyone has ample opportunity to provide feedback and we have time to consider it. We are more concerned with doing this right than doing it fast, so please let us know what you think about this proposed change.

...

We want to hear what you think. Barring any showstopper, these terms and a detailed FAQ will be rolled out March 1, 2016.

Woops. Doesn't it look like you won't consider the feedback provided there? I mean, possible at first, and evident now, the "showstopper" is the feedback posted here and in the previous thread of yours. This means that asking for the feedback doesn't make any sense... Or probably the question should be reworded (note that some of us have been already tempted to close it as "unclear what you're asking").


I'm not discussing the advantages of one license over another, just because I have no idea what it gives. You change the license and the reason of the change seems to be missing - if you'd like to receive more valuable feedback, probably it'd be better to list the FAQ you're mentioning.

14

The proposed terms are reducible to any license, including CC0 or WTFPL.

For 'code' (which you can't even be bothered to define), the terms you are proposing possess a gaping license-laundering loophole and are legally reducible to CC0 or any other desired license. I'll explain how.

The post above proposes the following new licensing terms.

Starting March 1, 2016, new 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. This optional exception to the MIT License will live in our terms of service.

That "MIT License" (which is really the OSI MIT License or the Expat License) states:

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so.

The only restriction the OSI MIT License imposes is the requirement to include a copy of the copyright notice and the permission notice. However, Stack Exchange's proposed terms waive that requirement (see above: "Contributors agree to give code users permission to ignore the MIT License’s notice preservation requirement").

This means that:

  1. A first generation derivative work would have to include attribution, but would be able to be distributed under a license not requiring attribution or sharing alike, e.g. CC0 or WTFPL.

  2. Anyone receiving such a first derivative work is therefore not required to attribute or to share alike (e.g. in any second derivative works).

  3. Anyone will be able to re-license, in this way, any 'code' posted to Stack Exchange sites.

  4. 'Code' posted to Stack Exchange sites can therefore ultimately be used in any way a plagiarist derivative author wishes. As such, it is effectively CC0 (or WTFPL, etc) licensed.

This loophole means that your proposed change to Stack Exchange's licensing terms ultimately undermines any desire you (or we!) may have that Stack Exchange contributors should be required to be treated with respect and acknowledgement by users of their contributions.

Please don't go ahead with your proposed change to Stack Exchange's licensing terms.

59
  • 14
    This is completely incorrect. The MIT license would apply to any downstream copies you provide, or any combined work. The downstream recipient is free to not carry the license, as you were - but the second they remove the URL, they forfeit their privilege to not reproduce the license. It's MIT (which, fortunately, is compatible with every less-permissive license known, so it's not a big problem) but we'd in no way become a 'laundry service' for code licensing.
    – user50049
    Commented Jan 14, 2016 at 16:49
  • 8
    @TimPost, I believe you are mistaken. A person who receives a work that purports to be under some specific license conditions is only bound by those license conditions in relation to that work (and of course also bound by the (inter)national laws in place in the relevant jurisdiction).
    – user136089
    Commented Jan 14, 2016 at 16:54
  • 9
    They're bound by the terms of the license in which the work is granted to their use. Much like I couldn't take code from GNU Bash, post it on Stack Overflow and say "Hey look, this is CC-BY-SA (or, soon, MIT) now!" It's not, it's GPL3+. There will always be bad actors that don't respect the terms of a license, and some areas in the world where the sparse amount of copyright law doesn't make them enforceable (or even legal) - but this is not a new problem, and not at all specific to us.
    – user50049
    Commented Jan 14, 2016 at 16:58
  • 9
    @TimPost, have you even read the OSI MIT License? It explicitly states, 'Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so.'
    – user136089
    Commented Jan 14, 2016 at 17:00
  • 3
    @TimPost, "I couldn't take code from GNU Bash, post it on Stack Overflow and say "Hey look, this is CC-BY-SA (or, soon, MIT) now!" That's because GNU Bash is under GPLv3+. However, if GNU Bash was licensed under samthebrand's proposed terms, you could legally do anything you wanted with it, including claiming you wrote it yourself, by simply following the steps that I outlined.
    – user136089
    Commented Jan 14, 2016 at 17:07
  • 4
    @TimPost, the only restriction the OSI MIT License imposes is the requirement to include a copy of the copyright notice and the permission notice. Since your proposed terms waive that requirement, your terms are effectively CC0.
    – user136089
    Commented Jan 14, 2016 at 17:11
  • 6
    Again - if they got the code from one of our sites, they can't distribute it unless they keep the URL in tact or reproduce the MIT license as required (their option). And again - there will always be bad actors that don't follow the rules, but most developers (at least that I know) are pretty careful to do the right thing when it comes to licenses, and just giving people credit. There is no perfect bullet proof scheme, and if there were, it would be so rigid that nobody could use it.
    – user50049
    Commented Jan 14, 2016 at 17:21
  • 3
    @TimPost: We're not discussing "got the code from one of our sites", we're discussing "got the code from an intermediate", where that intermediate got it from StackOverflow, and elected to use attribution without including the MIT license, via the crayon option samthebrand wrote in.
    – Ben Voigt
    Commented Jan 14, 2016 at 17:36
  • 8
    @sampablokuper Step 2 is illegal. The person doing it just has to hunt around and find the Stack Overflow link buried in the code to know that. They're ultimately re-using code licensed under SO's modified MIT license, so they have to meet the original license requirements, even though they were never given a copy. So, really, it's more Step 1 that's the problem, because the code wasn't strictly CC0. The new code in the first generation work was CC0, but the stuff pulled in from SO wasn't, since they don't have the right to relicense it quite that way. I think. Consult your local lawyer. Commented Jan 14, 2016 at 17:41
  • 6
    @sampablokuper Re-reading it a bit more, I'm 99% sure step 1 in your scenario is the illegal bit. You won't have to re-include the full license text, but this iteration of the new license absolutely requires reasonable attribution at all times. The person making a CC0-licensed work is including code without attributing it, and in so doing is breaking the law, because they're claiming the code they're releasing is all CC0. The fact that you don't need to include the full text of the license, doesn't change that it's still under that license. (cont...) Commented Jan 14, 2016 at 18:10
  • 8
    Folks - when you get into these kinds of waters there's a subtle difference between being not wrong and being correct. I believe I'm not wrong, but I'm not entirely certain that I'm correct (you can be correct in all cases but something). I'm going to check with our counsel (this could take a few days), and I'll relay his take.
    – user50049
    Commented Jan 14, 2016 at 18:13
  • 13
    Errr, MIT does not give you the right to relicense as CC0. It gives you the right to relicense as any compatible license, but CC0 ain't one. Never has been, and I'm not sure where you got the idea that it is. Commented Jan 14, 2016 at 19:23
  • 5
    Yes, but I don't see how redistribution under a different licence can ever be "legitimate", because regardless of whether the copyright notice is preserved or not, the MIT terms still apply. Just because "MIT without notice preservation requirement" is basically the same as CC0, it does not mean that one can arbitrarily decide that the licence is CC0. If one has any sense, one will preserve the notice. At least that would be my position on it. I (think I) understand what you are driving at, but your interpretation seems to be borderline pathological--not that this is a bad thing. Commented Jan 14, 2016 at 20:28
  • 5
    You've comprehensively rehashed the same misunderstandings, yes. Carry on.
    – jscs
    Commented Jan 14, 2016 at 21:20
  • 5
    It seem to me that a core part of the difficulty in this conversation is the attempt to create a crayon license. We don't actually know what the terms of the license will be, because it's only been presented as "MIT with the preservation requirement waived". That's incredibly unhelpful when it comes to evaluating the precise legal impacts of the license. It would be far easier to have this conversation if SE would just create a new license that is explicit in its legal requirements, or if they're not willing to do that at least give us the wording of the waiver.
    – Tim
    Commented Jan 15, 2016 at 4:46
13

If there has to be a new code license:

Please license code additionally under CC BY-SA.

So that everything (like posts and threads as a whole) is licensed under CC BY-SA, and code is licensed under the code license in addition.

16
  • 6
    As someone who isn't the most familiar with licenses, can you explain why this is important / what benefit this has?
    – Vlad274
    Commented Jan 14, 2016 at 16:04
  • 3
    @Vlad274 CC BY-SA enforces that you can share or alter the original material, but you must leave attribution to the original material and must release it under CC BY-SA. As for benefits, I am unsure. More info on CC BY-SA.
    – Dan
    Commented Jan 14, 2016 at 16:06
  • 7
    @unor, I don't believe this makes sense, on two fronts. 1. Dual-licensing under CC-BY-SA and MIT won't require anyone to abide by the terms of CC-BY-SA, as long as they were abiding by the terms of MIT. 2. Despite what he says, samthebrand isn't proposing code be licensed under the MIT license, he's proposing a crayon license that is significantly different from the MIT license.
    – user136089
    Commented Jan 14, 2016 at 16:18
  • 10
    @Vlad274: It makes it easier for people that want to use CC BY-SA, e.g., for sharing/publishing/archiving/etc. whole questions with all answers (like it’s currently possible): they shouldn’t have to look into MIT at all.
    – unor
    Commented Jan 14, 2016 at 16:30
  • 2
    @MarioTrucco That doesn't matter. Compatibility means using work licensed under one license in a project licensed by another. You can multi-license your content under any licenses that you want. It's your content. Commented Jan 14, 2016 at 16:37
  • @sampablokuper: Regarding 1.: Yes, it’s for people that want to use CC BY-SA, without having to worry or care or attribute according to or read about the (additional) code license. The proposal should ideally keep everything like it is (licensed under CC BY-SA) and license code in addition under whatever license.
    – unor
    Commented Jan 14, 2016 at 16:38
  • @ThomasOwens But can you multi-license your content under licenses contracdicting each other? I wasn't aware of that Commented Jan 14, 2016 at 16:39
  • 6
    @sampablokuper: I don't think anyone here believes that dual-licensing means that both license terms would need to be followed. It just means you can choose which license to use the work under. I definitely agree that a post as a whole should still be CC-BY-SA, no matter what licensing applies the "code parts" of it.
    – Bergi
    Commented Jan 14, 2016 at 16:40
  • 3
    @MarioTrucco Yes. If it's multi-licensed in one location, the user gets to choose which license he uses it under. If it's available at different locations, the user needs to abide by the license by which he or she received it. Commented Jan 14, 2016 at 16:40
  • 10
    A big reason that we're doing this is the wording of cc-by-sa is really ambiguous when compared to wording in strictly-code licenses, which makes compatibility a frequent point of consternation. And it's a growing problem. The MIT license is compatible with every single OSI-approved licenses in existence (and most of the ones that aren't approved too). What the problem means to some people is their boss telling them they can't check in any code from SO, even if it's their own code someone was nice enough to help them fix.
    – user50049
    Commented Jan 14, 2016 at 16:41
  • 8
    @Bergi, AFAIK the OSI MIT License is CC-BY-SA compatible. That means that it is perfectly legal for work licensed under MIT to be incorporated/adapted into a derivative work that is licensed not under MIT but rather under CC-BY-SA. So, if a work is already licensed under OSI MIT, then dual-licensing it under CC-BY-SA is, although not harmful in any way, also completely pointless. Correct me if I'm wrong.
    – user136089
    Commented Jan 14, 2016 at 16:49
  • 4
    @sampablokuper: Thanks, that's a valid point (if you're right, and if the same applies to the not-quite-MIT-thing). But apparently nobody knows this. Dual-licensing the code might be pointless from the legal standpoint, but imo it makes my choices easier to understand.
    – Bergi
    Commented Jan 14, 2016 at 16:56
  • 1
    @TimPost: So the reason for not licensing code additionally under CC BY-SA is to enable people to post code that currently aren’t allowed to (e.g., their boss says: permissive = yes, copyleft = no)? If that’s the case: I could take MIT-licensed code posted to SO and share it under CC BY-SA (if I add, or keep in tact, the MIT notices), right? So the boss wouldn’t be happy anyway.
    – unor
    Commented Jan 14, 2016 at 17:06
  • @TimPost It's not clear the advantages of these changes (the first post pointed the problem being that code licensing is currently covered with some uncertainty). Your comment showed a new aspect of it for me (despite I still don't understand what's the problem in checking in SO code). Exploring the reasoning behind that move would be important to better understand the whole change motivation and know what's the real problem with the current (well accepted) status quo. We're having all these discussions, and we still don't have an easy way to properly identify the trade-offs of each proposal.
    – falsarella
    Commented Jan 14, 2016 at 17:12
  • 3
    @TimPost IMO, the best way to resolve that problem, which will comprehensively address it without introducing new problems, is simply to declare the new licence to be CC-BY-SA 4.0 rather than the existing 3.0. It does not contain any unwarranted assumptions about the work being artistic or creative in nature, and overall it is quite clear how it can be applied to code. Commented Jan 14, 2016 at 19:24
13

This whole thing is moot, because you have no idea about the status of anything that is posted to this site.

Simply demanding that it must be MIT licensed doesn't make it MIT licensed.

#include <std/abe-lincoln-dog-leg-tail-quote.h>

People will do things like, "Oh, we solved that problem here at XYZ Inc. with the following code; I'm sure my boss won't mind if I share a few lines ...". Only they won't say that part, but rather only think it as they copy and paste.

And what about all the people who contribute answers to SO, but are doing it on work time, using company equipment? That code could be owned by the company, according to the employment agreement, even if it is invented on the spot and doesn't appear in any company product.

Therefore, everyone in their right mind will not use anything more than a three-line snippet from some random website without paraphrasing it so that it doesn't resemble the original.

Attributing it is the stupidest thing you can do; you're exposing yourself to legal problems when your program clearly reveals the origin of some section of code, and that section of code is under a legal contention (it was posted to a website, but is in fact proprietary).

As a developer using snippets of other people's code of uncertain origin, you have two main responsibilities:

  1. Don't do it.

  2. If you must do it, make it yours. Paraphrase the code into your own expression. Work with it. Understand every detail as if you had written it yourself. Basically, use the original as an implementation guide. If there is ever the slightest suspicion that it is a knockoff of that original, you will easily be able to play dumb---by playing smart! You know that code inside out and can answer questions about it as if you had written it yourself, and can probably reproduce most of it from memory.

Basically, the honest thing in StackOverflow is to just have a big disclaimer:

We don't really know where any of this code came from, or what is its licensing status; if you incorporate anything verbatim into your product, you implicitly acknowledge that you do so at your own legal and technical risk. Stack Exchange offers no protection from infringment claims arising from third parties, and makes no warranties about the correctness of any code or its suitability for any purpose. Imagine the most draconian legal disclaimer that your eyes have never seen. Now multiply it by two.

That's it! Everything else is superfluous posturing that doesn't mean a thing and won't hold up in court.

Here is something to consider:

When you contribute original code to a GNU Project project, you will be asked to assign the copyright to the Free Software Foundation. Not only that, but you need some affidavit letter from your employer that the code is really yours to give away; that they lay no claim on it. (I have been through this myself, so I know!) That's what then enables the GNU Project to claim that the code is under the GPL, with a fairly certain copyright status. StackExchange neglects to put contributors through anything of this sort (for understandable reasons, such as it putting a huge damper on the party). But that means there is no basis for asserting any fact about the copyright or licensing status of anything that is posted.

9
  • 1
    A large part of why we have content licenses is to protect content consumers from the unwitting actions of employees as you describe. Commented Jan 15, 2016 at 5:41
  • 3
    @SeanAllred What does that mean? Will StackExchange take the fall for me if I use something and end up in hot water? "Protect" is something to which we can attach a dollar figure. For instance, when you buy some kind of insurance, it is spelled out what is covered for how much: everything is in dollars.
    – Kaz
    Commented Jan 15, 2016 at 6:08
  • 1
    In case proprietary code is posted on SO, wouldn't the user who posted it be held legally responsible? I can see how removing code that turned out not to be under MIT from a program might be problematic, but I m not so sure about who would be in real ($) trouble.
    – user
    Commented Jan 15, 2016 at 10:21
  • 4
    Re proprietary code: You can't post that on SO, it's aginst the terms of service. See §3 - Subscriber Content: "You agree that all Subscriber Content that You contribute to the Network is perpetually and irrevocably licensed to Stack Exchange... Subscriber warrants, represents and agrees Subscriber has the right to grant Stack Exchange and the Network the rights set forth above..." Commented Jan 15, 2016 at 11:51
  • @T.J.Crowder, you absolutely can post propriertary code, it's just that you are not allowed to. Else this whole legal thing would not be necessary. Commented Jan 15, 2016 at 13:05
  • @EikePierstorff: There's no question what "can't" meant in my comment, fiddling about with semantics is not useful. You can rob a store, drive while drunk, and evade taxes. You're just not allowed to. Further, the change under discussion has nothing to do with posting proprietary code and "not being allowed to" isn't the legal issue at hand. The legal issue at hand is using code that has been posted, and what the license says about what you need to do when doing so (and what license you're granting when posting). Commented Jan 15, 2016 at 13:28
  • Funny, I was thinking the same thing re semantics. I don't want to argue, I am saying that - since clearly people "can" steal code and post it here - the only "protection" that is added by the license is that I can try and argue that I used the code in good faith. This will not help me in a court of law. Commented Jan 15, 2016 at 13:33
  • @Kaz I'm on mobile and can't respond to everyone, but to clarify: SE licenses content CC and makes this known. This would mean (to my understanding) that liability rests solely with the employee. Commented Jan 15, 2016 at 13:51
  • This answer is the answer. This whole ordeal by SE appears to be a way to "legally" enforce a "solid" system. As you point out, this is impossible. Maybe the code I've shared, I've decompiled from someone's closed-source project. Maybe I stole it from work. Then there's the other side of it. I've spent 5 years part and full time developing a very complex program. I want to share part of it on an answer here, but I don't want my license changed to X. Therefore, I pack up and take my knowledge elsewhere. This is all bad, they should have left it alone.
    – user159773
    Commented Jan 23, 2016 at 18:28
13

We're talking about a somewhat drastic change and I can't even give my voting input on this; this is problematic.

Additionally, I'd like to suggest the FAQ created not be an incomprehensible collection of legal jargon. Many people are just starting with programing in general, let alone licences. To add to that, this is a site where many people's first language is not English.

You must be able to present things in a way most people can understand.

8
  • 3
    An answer is a far better way to express your position than a single, silent downvote.
    – Adam Lear StaffMod
    Commented Jan 15, 2016 at 16:10
  • 5
    @Adam, as of now 486 votes (both sides) have been cast on this question. Had everyone posted an answer instead of voting, the whole thread would have become unexploitable. Commented Jan 15, 2016 at 16:37
  • @FrédéricHamidi Sure. There's the option to upvote existing answers that state whatever points you'd make, though. The whole "I'm posting this answer only to gain rep so I can downvote" thing (see revisions on this post) is pure noise either way.
    – Adam Lear StaffMod
    Commented Jan 15, 2016 at 16:39
  • @Adam, you have a point, I did miss the first revision of this answer. Commented Jan 15, 2016 at 16:47
  • @AdamLear An overwhelming majority of downvotes is a message in itself.
    – Raphael
    Commented Jan 15, 2016 at 16:51
  • @Raphael I'm not arguing against voting. See my previous comment.
    – Adam Lear StaffMod
    Commented Jan 15, 2016 at 16:51
  • 3
    @AdamLear The post was pretty much a knee-jerk reaction to the "Your response to the proposal was positive – 85% of votes on the proposal were upvotes." line. I really agree with you, an answer is a much more efficient mean to transmit ones thoughts. The problem seems to be that conclusions are based on vote count, not answer content. Commented Jan 15, 2016 at 16:53
  • 2
    @Jim Yeah... we took a wrong turn there, I agree.
    – Adam Lear StaffMod
    Commented Jan 15, 2016 at 16:54
12

But what is code?

As non-SO user, this is the central question for me here. My main hub of activity is Computer Science SE, and we have quite a lot of maybe-code there.

You say:

We will give you guidance on identifying code in an upcoming FAQ, plus guidance on how best to comply with the attribution requirement.

Before you do this, it is impossible to give feedback. Please provide this FAQ asap.

But ultimately, identifying code will be a judgement call on your part. We have full faith in your ability to do this.

Who is "your"? Authors? I guess. Other regular users? Maybe. Visitors? No way.

Drive-by visitors can on average not be bothered to adhere to even the most basic things prominently put in the FAQ, and you want them to read the ToS? Do they even have to accept them when they to not register? They certainly don't when they just google upon some content. The footer? Good look expressing the rules clearly in that format.

Even if I do read the rules as a visitor (a popup when I hit CTRL+V maybe?), what am I to do? Risk that somebody sues me?

Summary

Case distinction:

  1. Most users of SE (visitors and registered users) are not aware of the license-for-code topic. "SE is CC, right?"

    Consequence: the code license is useless.

  2. Users are aware, but we don't actually punish violations of the license, because we have to assume it was by accident ("Ah, they probably thought that was not code") and we don't want to be dickheads.

    Consequence: the code license is useless.

  3. Users are aware, and we actively try to punish violations of the license whenever we notice them (an event I estimate would have extremely low incidence).

    Consequence: nobody copy-pastes anything from SE anymore because they won't want to open themselves up to litigation. Plus, we have become dickheads, arguably.

Conclusion

Without strict objective guidelines and visual indication about what constitutes code (and thus which license applies), a code license is useless and/or harmful for non-programming sites that deal with any kind of "code" (read: sites on which there is any amount of ambiguity as to what is code and what is not; some SO answers may even be affected).

Please don't.

6
  • It is also not possible to form popup on event - just block JS or visit from text browser - any agreement on license if not explicitly stated before downloading the code is problematic. If code was taken from copy of content, and there is no explicit license - it has probably none (it was released, author is not embeded, license is not given).
    – Evil
    Commented Jan 15, 2016 at 18:19
  • @EvilJS I agree. That parenthetical remark is mostly a cynical joke; even if possible, it would clearly be a horrible idea.
    – Raphael
    Commented Jan 15, 2016 at 18:30
  • In some cases - to honor authorship - full name and contact info is needed, and author is obliged to provide license. So attribution goes like this "I credit EvilJS for code given via chat". Seems cool, but I do not need it, and when this is really needed - somebody would have to contact me. Here is a problem - nobody can assure 100% success. And still several years ago it was easier to buy cd with linux than download it - there was evidence of rights to use it... If I am needed to show that I wrote it I would need court to get ISP logs - which in other case are unavailable even to me.
    – Evil
    Commented Jan 15, 2016 at 18:46
  • 2
    "Do they even have to accept them when they to not register?" - If I get it right, you imply that someone can avoid accepting ToS/not read ToS, and do as he wishes with the code he copies? The copyright of the code won't just magically disappear because they didn't care to read it. This answer looks so incorrect.
    – user
    Commented Jan 16, 2016 at 9:46
  • "..because they won't want to open themselves up to litigation." - Currently everything is under CC-BY-SA. Using content already is under legal restrictions.
    – user
    Commented Jan 16, 2016 at 9:53
  • 1
    @Fermiparadox There already are rules, but they are the same always. Not with the proposed changed, which introduces uncertainty about what the rules are. The issue with the ToS is tangential; it's an argument that the expectation expressed in the proposal that user's will all be able to identify code in the same way is overly optimistic.
    – Raphael
    Commented Jan 16, 2016 at 15:29
12

The core problem that all of this is intended to solve is that people are copying material from Stack Overflow into their code... and that the license for CC-BY-SA isn't ideal for code.

The question behind this problem is "why are they copying the code?"


Let's take an old post on SO: Apache POI autoSizeColumn resizes to minimum width. When one looks at the code in the question, it is clear that it is an MCVE. It does stuff, but it clearly isn't actual code. Likewise, the answer presents knowledge of essentially "you need to call this method."

As the code presented in the question was an MCVE and the code in the answer was in the form of knowledge, it should be fairly clear to people that there will be no copyright or licensing issues generated from this Q&A post - no one is copying any code.

However, I believe that this question is the exception to what SO has become. The vast majority of the questions are not MCVEs but rather "here is my actual code from my homework or real code from work" and the answers are snippets of code rather than information about solving the problem.

Question

I have a problem.
Here is my code.

{large block of code}

Thanks.

Answer

Try

{block of code}

Hope this helps.

And here, the licensing of the question and the answer is critical because the answer will be copied directly into the code outside of SO.

No longer is this about transferring knowledge about a problem - it is a code writing and debugging service.

There are many individuals on Stack Overflow who are providing knowledge to people - knowledge about how to fix the problem rather than the fix itself. Yes, this is a gray area. There are some that are clearly on one side of the line, there are others that are clearly on the other side of the line.

I contend that questions that ask for solutions rather than knowledge are becoming by in far the dominant type of questions on SO. And likewise, answers that hand the actual code that can be copy and pasted into the problem code are likely the dominant type of answers on SO.

This isn't the case on most other technology sites, even where code is presented.

Trying to apply this solution to an SO problem across the entire network, while consistent, makes for many headaches on other sites where it is knowledge that is being transferred and any code is demonstrative of that knowledge and not intended to be copy and pasted into a solution.


One thing that should be looked at in part on this is an attempt to redirect the culture of asking and answering on SO back to transfer of knowledge rather than 'fix my code'.

If, on the other hand the 'fix my code' with 'here is the answer' is the intended state of Stack Overflow, reexamine how to fix Stack Overflow's Q&A model to better reflect that along with the necessary licensing changes. Don't change everyone else's licensing because people are indiscriminately copying code from SO answers into their code.

Sites that go more into explaining code may need to use material from other projects that isn't compatible as code into CC-BY-SA, but is acceptable under fair use; that the material there is intended to explain - not be copied into other projects. Pulling a method out of some GPL code to show an of mapping something too large to fit into the return type of hashCode() when talking about the pigeonhole principle. Applying the solution to SO's problem that the code in the post is MIT licensed will have a significant negative consequence on the ability to draw upon other resources for these sites to explain and transfer knowledge.

2
  • "the answer is critical because the answer will be copied directly into the code outside of SO". No, it won't. The example you chose is good to see this. Consider the first line, a package directive. In your own project, you wouldn't copy this. The next few lines are import statements which are simply required for Java to work properly. The next line is a class declaration. In your own project, you wouldn't copy this, but you would choose your own name. And so on... the result is simply not a copy.
    – Brandin
    Commented Jan 15, 2016 at 17:08
  • 1
    @Brandin the POI one is where the code won't be copied. However, you should look at the others link I provided and reconsider the practicality of C&P. I contend that the POI question is an example where the knowledge is more important than the code - but is the rare exception of questions and answers on SO.
    – user213963
    Commented Jan 15, 2016 at 17:09
11

The terms under which users are willing to share their code can vary a lot.

Some don't care about attribution, others consider it mandatory. Some want to release their code with no restrictions whatsoever.

Votes on OP and answers are biased

Votes on the OP or the top answers are biased for two reasons:

  • Many users don't have down-vote rights on MSE, so they can't express their disagreement.
  • An answer (especially on a matter we aren't experts on: law) can sound very .. accurate, while on the contrary, is completely wrong. I'm not saying most votes are bandwagon-votes, but some of them definitely are.

Find out what users want the right way.

If you truly want to accurately know how many users will be displeased or happy with this change, it might be best to make a survey.

Ask users how strongly they agree or disagree with specific proposals. Also, make sure you take into account that many (most?) users are unfamiliar with licenses and are not lawyers.

1
  • 1
    I don't think a survey would help at this point, judging by the way our SE overlords have handled this discussion so far. There's a huge difference between the question “Do you want to be able to freely use all code you see on SO?”, and “Do you agree to publish all your future code contributions under a liberal license so that other people can freely copy&paste from your questions and answers?”
    – amon
    Commented Jan 14, 2016 at 21:18

You must log in to answer this question.

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