
You may finally use JSHint for evil - catacombs
http://mikepennisi.com/blog/2020/jshint-watching-the-ship-sink/
======
ricardobeat
The project has been "rewritten from scratch" [1] in order to sidestep the
legal requirement of preserving the original license (from JSLint, which it
was forked from), against both the original authors' wishes [2].

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...](http://mikepennisi.com/blog/2020/jshint-watching-the-ship-
sink/). 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](https://jshint.com/relicensing-2020/index.html)

[2]
[https://github.com/jshint/jshint/issues/1234#issuecomment-23...](https://github.com/jshint/jshint/issues/1234#issuecomment-23187063)

~~~
jcfields
The part that explains why this clause (originally written by Douglas Crawford
in the JSON license) is a problem for free software:

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

~~~
ricardobeat
As an admirer of the WTFPL it's hard to sympathize. The lawyers can still play
their games in court, it's free software either way. The fact that a couple
central entities get to decide what qualifies as 'real' open source is the
most concerning part.

~~~
nemothekid
> _The lawyers can still play their games in court, it 's free software either
> way._

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.

~~~
falcolas
IMO, the fact that lawyers can't even agree on the scope of the AGPL means
that semantics are just that, semantics.

Many licenses haven't been tried in court, including the AGPL, yet it's used
fairly broadly.

~~~
javagram
AGPL is widely avoided by corporations precisely because of this problem...

Corporations vastly prefer BSD/MIT style licenses or at most GPLv2.

GPLv3 is avoided, AGPL is avoided even more.

~~~
gowld
AGPL is avoided because cloud/server corporations know exactly what it means.
It's expressly written to ban their business models.

Likewise for GPLv3 and Tivoized corporations.

------
jancsika
> The Software shall be used for Good, not Evil.

It's so funny because Crockford is one of the most persuasive speakers and
coders on avoiding ambiguity, on readability over coders desire to "express
themselves" in code, and on making language design decisions based on
research.

He then takes a step outside his area of expertise and chooses to express
himself with an ambiguous license created without consulting anyone who has
domain expertise in software licensing.

~~~
ptx
He also made some strange linguistic choices in his latest book[1]:

"The word for 1 is misspelled. I use the corrected spelling wun. The
pronunciation of one does not conform to any of the stan­dard or special rules
of English pronunciation."

[1]
[https://howjavascriptworks.com/sample.html](https://howjavascriptworks.com/sample.html)

~~~
knolax
Side note but that is the best typography I've ever seen in an HTML document.

~~~
mhh__
There are a few latex mimicking CSS styles with a similar vibe, I suggest
having a look at those

------
runarb
I have found it funny that Douglas Crockford apparently gave IBM this
exception: "I give permission for IBM, its customers, partners, and minions,
to use JSLint for evil." (for JSLint, which JSHints was forked from):
[https://web.archive.org/web/20170722132351/https://dev.hasen...](https://web.archive.org/web/20170722132351/https://dev.hasenj.org/post/3272592502/ibm-
and-its-minions)

------
ed25519FUUU
> _The Software shall be used for Good, not Evil._

I get that software developers add these things to licenses in good humor, but
lawyers have no humor unfortunately. If you want your project to be used in a
serious way, it's better to leave the ambiguous phrases out of your license
and choose something standard.

~~~
easton
Well, JSON is used in a serious way, in fact I doubt you can use most web
applications (and many desktop apps too) without your machine parsing some
json. And...
[https://www.json.org/license.html](https://www.json.org/license.html)

~~~
umvi
But JSON isn't software, it's just a specification. Any text that matches the
specification is JSON, whether it is binary, a string, printed on a piece of
printer paper, etc. So what does this license mean, exactly?

~~~
thephyber
The JSON License was created to cover the original Crockford JSON parsing and
linting libraries.

------
oefrha
> ...licensing concerns. That’s why Ubuntu users can’t download JSHint via
> sudo apt-get install jshint.

Okay, this is misleading. You can install tons of non-free packages using apt
from the official archive. They are in the multiverse section.

[http://archive.ubuntu.com/ubuntu/pool/multiverse/](http://archive.ubuntu.com/ubuntu/pool/multiverse/)

------
TallGuyShort
I've also had customers dig their feet in because I depended on this library:
[https://dst.lbl.gov/ACSSoftware/colt/license.html](https://dst.lbl.gov/ACSSoftware/colt/license.html).
Exactly when what you're doing is considered a military application is
ambiguous. Have an obscure DoD contractor as a customer? Uh oh - can't use
this...

------
yongjik
Sorry for commenting on the formatting instead of contents, but how could
someone say "The following graph shows how many times JSHint has been
downloaded from npm each week over the past five years" and then present a
graph with four data points?

Frankly that makes me doubt the author's central piece of evidence (that
JSHint gets much fewer downloads than ESLint).

* Graph from this URL in case it changes again: [http://mikepennisi.com/blog/2020/jshint-watching-the-ship-si...](http://mikepennisi.com/blog/2020/jshint-watching-the-ship-sink/)

~~~
acemarke
Here's a better set of charts, using the `npm-stats` site:

[https://npm-stat.com/charts.html?package=jshint&package=esli...](https://npm-
stat.com/charts.html?package=jshint&package=eslint&from=2015-01-01&to=2020-08-04)

------
iandanforth
Writing software is not a neutral act. You are morally responsible for its
uses. Restricting those uses is both a responsibility and a good.
Circumventing this restriction is itself an immoral act.

~~~
TimTheTinker
> Writing software is not a neutral act. You are morally responsible for its
> uses.

That's an unsound argument - it suffers from a confusion of agency. The most I
can be responsible for as an author is the _intent_ of my software.

If I'm a wrench manufacturer, I have no moral obligation to attempt to control
how people will use my wrenches. They are amoral tools with a good intent (to
help with construction projects). Whether my wrenches or those projects will
end up being used for evil is beyond my purview.

~~~
yunruse
This I would generally agree with. However, care should be taken with powerful
tools – deepfake software, explosive material, and so on. The laissez-faire
“guns don’t kill people” attitude isn’t wrong, per se, but it can be
inconsiderate if used blindly.

~~~
TimTheTinker
True, but I think your caveat is covered by my assertion regarding the intent
of the tool.

The intent of deepfake software is clearly either fraud or development of
deepfake detection tools. If you're a vendor and your intent is the latter, it
would be morally commendable to do your best to sell to reputable customers
only... but with security tools like this the authorial intent almost doesn't
(and shouldn't) factor in. Unfortunately, if you try to go soft so it won't
"hurt someone" then the fraud detection R&D can't be as robust.

Regarding guns, they're either for killing people, killing varmints/animals,
or defending oneself against bad guys. As a salesperson, you can reserve the
right to refuse sales to known crooks -- that would be morally commendable (as
far as it's possible). But it's your decision based on your own judgment. As
far as the gun itself is concerned, if as a manufacturer your intent is
defense against bad guys (or legal hunting/varmint control) and your product
reflects that intent, then you're morally in the clear.

Incidentally, I'm strongly against sales of surplus military gear to police
departments, because of the mixing of intentions that are at-odds. The intent
of military gear is to fight foreign armies commanded by bad guys -- which is
an intent that police departments should never have, as they're dealing with
civilians. That's why in the US, we have the National Guard if an army of bad
guys ever appears within our borders--it's different from the police, with
different training and different _intent_.

~~~
robbrown451
"The intent of deepfake software is clearly either fraud or development of
deepfake detection tools. "

I think there are a ton of positive, creative uses of it. For instance de-
aging an actor for a flashback sequence, with their permission. Deepfake
software can potentially do this way cheaper than the state of the art, such
as the young Tony Stark / Peter Quill's dad / Leia. And eventually, it should
be able to do it better. When the technology is truly indetectable, it will be
used all over the place in filmmaking and even video games.

~~~
savingsPossible
Do we need to consider only intent, or can we extrapolate probable futures?

Because then I worry about deepfakes making actors obsolete (as we have made
obsolete so many other professions)

~~~
robbrown451
Maybe I'm older than you, but I remember being worried about those newfangled
bulldozers making us ditchdiggers obsolete. :)

Or how about movies making stage actors (and set builders, etc) obsolete? I
mean, when you only have to act it out once and millions can see your
performance, as opposed to actors performing shows every night in small venues
in towns all over the country, it puts a lot of people out of work. There are
pretty few people today making a living as actors.

And of course photography put portrait painters out of work. And high quality
cameras in cell phones probably put a lot of photographers out of work.

What might happen is that there will still be actors, but all they have to do
is act, not be beautiful. They can use a model for the beautiful part. And
then you can have talented people on computers merging it all together.

I do like the idea of bedroom production of movies, which can happen if you
don't need actors. Previously, if you want to be a film director, you needed
to be born into a rich family, and then after extremely expensive film school,
you needed to get big money to finance your movies. So there's that.

