Hacker News new | comments | show | ask | jobs | submit login
JSON.org License Literally Says it "shall be used for Good, not Evil" (dzone.com)
138 points by friendlytuna 1932 days ago | hide | past | web | 70 comments | favorite



The JSON spec is no longer exclusively under this license as it's part of both the ECMA 5 specification and formalised under RFC 4627 so the "do good not evil" tidbit (which, by the way, SQLite - http://www.sqlite.org/different.html also mentions) to me, doesn't appear to apply.

Can we get over this and move on? Anyone would think a lot of people were swindled of something that was clearly not ill-intended.


Technically SQLite is in the public domain, so you can do evil with it (public domain works are inherently more evil than Open Source-licensed works), and they only offer a blessing and not a requirement to do no evil. So SQLite is way more evil than JSON.


Forgive me, but could you expound further on how public domain works are inherently more evil than FOSS?


The complaint is going to be the same tired old saw that "OMG if you release under anything that isn't the GPL with assignment to FSF, um, I mean, anything that isn't strong-copyleft, then some EVIL COMPANY might take the software and build it into a commercial project!"

GPL folks are willing to accept fewer rights in exchange for a guarantee that at least that subset of rights will be passed on to all parties. Permissive (BSD/MIT/etc.) folks are OK with the idea that someone might build proprietary software someday, and prefer the license that lets you do the most stuff right now.


First read the Open Source Definition: http://www.opensource.org/docs/osd

Almost everything in there is dedicated to giving rights to the user instead of the other way around. In the end, even if a work is created "for evil", you can get the source code, change it and make it be for good. (Not to mention the whole non-discrimination thing is considered by some to be pretty "good" in nature)

Public domain allows you to do anything you want at all with the source material and the product never has to give anyone any rights, prevent discrimination, allow access to the source code, or do anything positive whatsoever. I can take the SQLite source code, rebrand it "SQLPeter", change it so it corrupts your data randomly, remove all documentation and tests and keep the source code from you and charge $1,000 for support.

The work itself may be made with the best of intentions, but the license (public domain) allows it to be used for more evil than the Open Source license would have permitted.


Er, how does what you've asserted comport with code released via MIT/BSD? The only strictures that they impose is retaining copyright and license notice.

No restriction on usage or brand confusion. That seems a rather immaterial difference along a hypothetical alignment spectrum.


Just don't try rebranding Linux b/c you'll end up trying to sell something called Penux.


I believe you'll find his explanation in the dictionary, somewhere between "humor" and "sarcasm".


What does "you can do evil" even mean? Evil by definition is doing something you shouldn't do, so banning evil is as silly as passing a law saying that breaking other laws is illegal.


Is this a troll? Fuck it, i'll answer it anyway.

First.

Evil by definition is:

  6. that which is evil; evil quality, intention, or conduct: to choose the lesser of two evils.
  7. the force in nature that governs and gives rise to wickedness and sin.
  8. the wicked or immoral part of someone or something: The evil in his nature has destroyed the good.
  9. harm; mischief; misfortune: to wish one evil.
  10. anything causing injury or harm: Tobacco is considered by some to be an evil. 
(http://dictionary.reference.com/browse/evil)

Therefore, if you want to 'do evil' you can harm, cause mischief, cause misfortune, cause injury or harm, etc etc etc. So that's what "you can do evil" means.

Second.

Evil is not by definition, "doing something you shouldn't do," as evidenced in the definition in the URL linked above. Evil is just bad. Sometimes it might be necessary to do evil. The bible has innocent god-fearing people do evil all the god-damn time - but it's something they do In The Name Of The Lord.

Third.

Why the hell are you telling me this? I never said anyone should or should not 'ban evil', I was merely stating that the potential for good or evil in a public domain-licensed piece of software like SQLite can't be compared to an Open Source-licensed product because the public domain is inherently more evil than Open Source.

Fourth.

'Banning evil' is not even comparable, to saying that breaking a law is illegal. Saying that breaking a law is illegal is a truism. Banning evil is a sometimes-necessary act in order to enforce a punishment for doing evil, which is the whole basis for a system of laws and penalties. You have to define what evil is and define a punishment for varying degrees of evil. Without specifically defining such laws you have a kind of tribal unspoken law which is quite subjective and not compatible with things like copyright law or software licenses.

Does that clear things up?


jslint (and it's derivatives) are still under this license.

(which is a shame, because this clause makes it incompatible with the GPL family of licenses).


I happened to come across that clause last week and tracked down some humorous commentary by jslint's author:

  Douglas: That's an interesting point. Also about once a year, I get a
  letter from a lawyer, every year a different lawyer, at a company--I don't
  want to embarrass the company by saying their name, so I'll just say their
  initials--IBM...

  [laughter]

  ...saying that they want to use something I wrote. Because I put this on
  everything I write, now. They want to use something that I wrote in
  something that they wrote, and they were pretty sure they weren't going to
  use it for evil, but they couldn't say for sure about their customers. So
  could I give them a special license for that?

  Of course. So I wrote back--this happened literally two weeks ago--"I give
  permission for IBM, its customers, partners, and minions, to use JSLint for
  evil."
http://www.mail-archive.com/debian-legal%40lists.debian.org/...


His javascript minifier 'jsmin' was causing projects to get removed from Google Code and other places that only host open source code, so I emailed Mr. Crockford to ask if I could get the same extension he gave to IBM. His response was less than thrilling-

I released to free use for all with the only condition that it not be used for evil. If that is unacceptable to you, then you may not use it. Your options are to bend to the pro-evil fanatics, or to find a more reasonable hosting solution.

Ultimately I wrote my own called JShrink (which I just moved to github this weekend - https://github.com/tedivm/JShrink).

The point being, he's not actually willing to make the change.


Nice work. Google also reimplemented jsmin as jsmin.py here: https://github.com/v8/v8/blob/master/tools/jsmin.py

Now we just need an evil-friendly reimplementation of jslint.


A quick search shows quite a few examples lurking on Google code

http://searchco.de/?q=The+Software+shall+be+used+for+Good%2C...

Is Google actually enforcing this? I would be curious to know how many projects have been affected by it.


The video of that talk (relevant portion here: http://www.youtube.com/watch?v=-hCimLnIsDA) is available further down the page: http://news.ycombinator.com/item?id=3693327


Can he now be accused of being an accomplice of the evil doing of IBM?

If this evil thing is also illegal, is he putting himself into legal risk? After all, he explicitly agreed on the evil task.


Mmm, well I'm assuming that when you are using jslint to check your javascript you are doing so much good (avoiding increasing the amount of crappy javascript in the world) that it doesn't really matter if the javascript you are writing is for the skynet website. Plus we wouldn't want a xss attack to take down skynet allowing pesky humans to survive. That would be just wrong.

(Last part was a joke :P)


The clause doesn't just make it incompatible with the GPL, it makes it not open source.


Only for some bizarre definition of open source in which the words open and source do not mean open and source.


Nope. Read the Open Source Definition as defined by the Open Source Initiative. To be Open Source (tm), you need to not discriminate against any "fields of endeavor".

http://www.opensource.org/docs/osd#fields-of-endeavor


The open source initiative failed to obtain the trademark. So "Open Source" as a term is not trademarked, and can mean anything.

IMO, the only useful description of open source is source code licensed under one of the licenses approved by the Open Source Initiative, but there is no trademark protecting that particular use.


I have as little respect for people who redefine open source as for the people who redefine free software.


People may make light of this, but as the dzone.com article points out, it's what's known as a Field of Use limitation [1], and it's an actual problem.

The "good" vs "evil" thing is perhaps a red herring, but you can imagine the practical consequences if "free" software developers licensed their work for all purposes except competitors, etc.

The Free Software Foundation raised this issue in the context of royalty-free patent licenses years ago [2], and the Open Source Initiative went so far as to say that if a license allowed for a "Discrimination Against Fields of Endeavor" then it wasn't an open source license at all [3].

I'm sure D. Crockford didn't do this to be malicious in any way, likely he even did it just to be cute, (maybe he even meant well by it!), but it's also a shame that it's persisted this long, as it sets a bad example for others.

  [1] http://en.wikipedia.org/wiki/Field-of-use_limitation
  [2] http://www.gnu.org/philosophy/w3c-patent.html
  [3] http://www.opensource.org/osd.html


What a rotten shame that an author decided what he did or didn’t want others to do with the fruit of his labours. As you point out, this sets a bad example for others.

Seriously? He’s an adult, he makes his choices, if it means people prefer other, fully free software that doesn’t necessitate lawerly wrangling, so what?

His software isn’t free, and I’m fine with that, he did the work, he decides what we can or cannot do with it.

http://raganwald.posterous.com/the-freedom-to-drink-coffee


Sure, but his making this choice means that his work is incompatible with the much larger body of already-established work. His decision is his own, but it's a direction I wouldn't want others to follow, since we all benefit more from the common adoption of a smaller handful of mutually compatible open source licenses.

(Being legally allowed to remix code across projects is one of the great things about the OSI model. There are some silos within open source, such as copyleft vs permissive licenses, but at least each of those are already big enough sustain their own ecosystems.)


Tricky tricky. Is it evil to release software that may not be used for evil?


If so, would that make it illegal to redistribute code with a license like this?


I remember a talk of Crockford, where he explained that. He also explained that it worried IBM lawyers, to the point that he signed them a document "authorizing IBM to do evil with his software".


Here is a clip from that talk where he mentions IBM contacting him. Pretty funny. http://www.youtube.com/watch?v=-hCimLnIsDA


An hour long video by Douglas Crockford where he explains about the licence somewhere after 40-45 minutes i think. http://www.infoq.com/presentations/Heretical-Open-Source


He mentions that he put that clause in there after 9/11 and the war on terror had just started.

So great, anyone who asks for exception from the clause should be the next focus of the Surpreme Lord and Ruler (the US government)... no need to waste all this money snooping through people's email and facebook accounts!

Pretty funny nonetheless, more people should add these little clauses in :D


> Pretty funny nonetheless, more people should add these little clauses in :D

No they shouldn't. To you it's cute. To anyone who's serious about using JSON it's an arbitrary field of use limitation that could be construed to mean anything. In other words, it makes the software unusable for Real Work (TM).

(Disclosure: I am not a lawyer.)


I meant it as a joke, but... That's the problem with the world and software today. It's a trigger happy lawyer friendly world that everyone is too quick to go sue for a quick buck. It wrongly taints legitimate people's work like this.

If I was was Douglas then I would, at this point, refuse to change the license. If you don't want to use it due to some anal overpaid lawyer then your problem, use something else.

A lawyer may tell you this makes your software unworkable, but common sense tells me that this clause means jack all. As you say, it could be construed to mean anything and a court with any common sense would throw out any claim. It would be difficult to fully define the term "evil".

(Having said that, I understand it would probably cost a bucket load through the legal system, that same lawyer bending you over again)


I think IBMs concern was them being held responsible for their customers actions, rather than that they were concerned they might directly do something Crockford considered evil.

An amusing anecdote none the less!


> But, the most important thing I take away from this license is that this additional clause adds an unnecessary complication…

The standard (and correct) response to this is that if you don't like the license either don't use the code or negotiate (as IBM have done in this specific case) alternate terms.

> one that many people don’t even know is lurking in their dependency tree.

That is a due diligence failing on the part of those people, rather than a problem with this specific license. If you don't know that this clause is relevant to your dependencies then what else might be hidden in there that you are unaware of?

A bit like the "blue M&Ms" (and other such) found in the riders for celebrities, they do that as a test to make sure people have bothered to read the information provided rather than any real need for the specific demand to be complied with.


I saw this license buried within the iOS "Settings -> General -> About -> Legal Notices".

So I guess neither Apple nor any iPhone-owning user may use the phone for evil.


Well, what if they do? Would they get sued for at least two crimes? How silly.


There's a common mistake - assuming "evil" is a crime. (and it's obvious counterpart, that "good" can not be a crime)


Being evil is not necessarily a crime, but now we've got both problems covered :)


JSMin was removed from Google Code because of this licence. Douglas Crockford explains the reasoning behind the license: http://wonko.com/post/jsmin-isnt-welcome-on-google-code


Courtesy @llimllib:

  "The Software shall be used for Good, not Evil.” site:http://code.google.com
  yields 35k results, they’ve got a lot of banning to do


The problem with this license is that this phrase is simply there to be cute. There is no legal definition of Evil and I don't see how you can come up with one. It accomplishes nothing other than making the license incompatible with other licenses and adding uncertainty.


They should probably ban themselves while they are at it...


Given their motto, shouldn't this particular clause be required rather than banned.


I have been using similar license with my freeware apps for some time http://www.rw-designer.com/entry/315

I think when giving something away for free, it does not hurt to try to make the world a little better...


You're not making the world better though. Evil people will ignore your warning, and, if you're releasing as open source, people who are serious about licenses can't integrate your code with other stuff because of the "weird" license that doesn't make sense (who gets to define "evil"?).


Who and/or what defines "good" and "evil" for you?

I see the list of you-may-nots on your site, but those also aren't (a) conclusive and (b) strictly defined (what constitutes an 'extreme' position, etc?).

It's evident when certain articles are posted on Hacker News that even this crowd's diversity in backgrounds, experiences and morals vary over quite a range.


So creating an image arguing that software patents shouldn't be banned would violate the license?


I've been thinking about this problem with law a bit lately. It seems like our laywers & politicians want every legal question to be completely decidable, and this attitude leaks into popular culture too (or is it the other way around?), hence this article's preoccupation with the fact that good or evil intent cannot (as far as we know) be identified by any mechanical process.

This type of thing is of course a problem in computer science, but the law is not a computer, and I wish we could stop treating it like one. With humans involved, it's quite feasible to make decisions about undecidable things. This process is called exercising judgement, and we hire judges to do it. Frankly, I don't see what the problem is with a "don't be evil" clause. Pretty much everyone understands what it means in most any given circumstance, even if we can't write down a decision procedure for it.

I understand that part of the motivation here is the urge to CYA and offload all accountability for bad decisions from people to "the law". Not sure what to do about that.

Further reading: http://www.newyorker.com/arts/critics/atlarge/2012/01/30/120... ; appeared on HN yesterday; from paragraph 7, argues that these attitudes are partly responsible for the current incarceration problem in America.

(I wonder, can we make a proof of the undecidability of the good-vs-evil problem? I don't think it'll be as easy as for the halting problem; we know how to make a program halt or not halt, but it's unclear how to make a program "do something evil" or "do something good".)


There is a very good reason we want legal questions to be completely decidable - if they're not, people can't be sure ahead of time if they're breaking the law, which makes it ethically very problematic to actually enforce that law. ("You broke the law, and we're going to fine you." "But it was impossible to know that it was against the law!" "...")


The law should be predictable. This is obviously also not perfectly attainable, but we should not deliberately put ambiguities in there. Unpredictable laws directly lead to rule by men (as opposed to rule by law) and there's a lot of history and tradition on why that is undesirable.


Very good point. Thank you.


Well there goes my evil scheme to take over the world with a lightweight, text-based open standard. CURSE YOU LICENSING AGREEMENT!!!!


+1000 for Dr. Doofenshmirtz allusion.


"The Software shall be used for Good, not Evil."

Surly this is just a statement of fact. That once embedded in your software, you program will be considered Good.

It doesn't change the line above which grants the user the rights to use the software "without restriction"


This would also appear to violate the Debian Free Software Guidelines (DFSG), clause 6, and possibly 5.

http://www.debian.org/social_contract

... and there's a reimplimentation, jsmin.py:

http://wonko.com/post/jsmin-isnt-welcome-on-google-code#comm...

(Joey Hess is a long-time Debian developer).


I don't understand why this poses a problem, even for lawyers. The clause is clearly unenforcible so why can't it just be ignored? Is there seriously some concern that a judge would decide that it is enforcible?


But how can the Javascript Object Notation have a license? It's part of the Javascript language isn't? So we cannot use javascript objects for evil or?


Google won't have any problems then.


Iff “don’t be evil” = “don’t do evil”.


Evil is as evil does. Or are you suggesting that it's possible to be evil without doing evil, or vice versa?


If you do evil despite such a license, and get caught, are you forced to undo it?


isn't it also has an exemption for "IBM and their minions" to do evil with json?


Good for who?


whom


Sorry, English is my 4th foreign language. However, for more than some decades, both is gramatically correct (unlike in my native language where you actually have to use declinations).

Anyway, it was a serious question.


While we're at it: "both are grammatically correct", would be grammatically and homographically correct, though counterfactual.

But yes, the license does raise some rather intractable problems.


So the TSA and CIA cannot use it?


More emo trash on Hacker News. 4chan invasion?




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: