> If you’re not versed in legal matters, that probably seems like an odd restriction. By rejecting JSHint, are people admitting that they want to do evil? And is that clause actually enforceable, anyway?
> The answer to the second question is “no,” and that helps answer the first question. Legally-conscious objectors aren’t betraying their own dastardly motivations; they’re refusing to enter into an ambiguous contract. Put differently: they’re not saying, “I’m an evildoer,” they’re saying, “I don’t understand what you want.” This consideration disqualified JSHint from inclusion in all sorts of contexts.
That isn't true at all. If someone takes GCC, makes some changes and re-releases GCCv2 as closed source, there's no open source boogeyman that will force GCCv2 developers to release their code. It's up to courts, and by extension lawyers. Free software implicitly depends on lawyers to hold up the contract of Free Software.
If lawyers tell you "this contract is unusable because of this clause" then you don't have free software, you have a weird proprietary license. The entire point of free software licenses is to define rules for lawyers to play "their games in court". It's worthless otherwise.
Many licenses haven't been tried in court, including the AGPL, yet it's used fairly broadly.
Corporations vastly prefer BSD/MIT style licenses or at most GPLv2.
GPLv3 is avoided, AGPL is avoided even more.
Likewise for GPLv3 and Tivoized corporations.
That is the context from which I'm speaking, where enforcing openness through legal means is not a concern as the license is permissive (I imagine you were thinking of protecting GPL software, which is kind of the opposite situation). There have been zero court cases involving legal dispute over MIT licensed software.
The question is, how do I know that a contributor to software under the JSLint license (perhaps a corporation that paid an employee to contribute something) won't sue me on the grounds that I'm doing evil with their code?
To quote https://www.gnu.org/philosophy/free-sw.en.html
"The freedom to run the program means the freedom for any kind of person or organization to use it on any kind of computer system, for any kind of overall job and purpose"
Do no evil is maybe tounge in check, but its a real issue when people put things in licenses like "nobody from USA gov is allowed to use"
Imagine the library had some code like:
if (get('http://example.com/am-i-evil') === 'yes') {
fs.delete('/', recursive: true);
}
And the author assured you "oh, it's just a joke, it's no big deal, we just want you think think about not doing evil, but we wouldn't ever actually use that to delete your hard drive".Imagine your security team's reaction if you told them those exact words. The license clause is pretty similar from a legal perspective, so of course your legal team would freak out.
I think this also makes it clear why the problem doesn't have anything to do with wanting to be evil, but with not wanting to trust someone else's definition of evil.
Off-topic side note: Blog post series are a problem for HN because usually only one element in the sequence gets attention, meaning readers only get part of the story. Alternatively, more than one thread gets attention, but then the discussion is split and we run into the problem of follow-up posts [1], i.e. the exponential decay of interestingness under repetition [2]. So from an HN point of view it's best to just make one long article on a given topic—but that's just the local perspective.
[1] https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
[2] https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
I disagree that you can ever put the legal implication aside when discussing license terms. The legal implications are the entirety of what's being communicated by a license, which means you're basically saying "if you ignore what these words mean, nobody should disagree with them". That's very true! It is easy to agree with something if you ignore what it means. And?
Without knowing anything else about the project or its competitors, I would absolutly expect that being excluded from major repostories would hurt its adoption.
That means that I cannot, in good conscience, use software that requires me to agree that I'm not doing evil. If your conscience is confident that your use of JSLint involves no evil - that you are sinless and blameless - I'm happy for you. Unfortunately I cannot say that of myself.
(And if your conscience lets you say that of your employer and all your co-workers, I really want to know where you work.)
A whole lot of post-rationalization of how the unconventional license caused the project to slow down: http://mikepennisi.com/blog/2020/jshint-watching-the-ship-si.... Certainly not due to ESLint's extensible design, customization options, better error messages, ES6 and JSX support and adoption by multiple mainstream libraries.
Legal implications aside, it's still sad to see that 'do no evil' is so hard to agree with.
[1] https://jshint.com/relicensing-2020/index.html
[2] https://github.com/jshint/jshint/issues/1234#issuecomment-23...