In computer programming, lint is a Unix utility that flags some suspicious and non-portable constructs (likely to be bugs) in C language source code; generically, lint or a linter is any tool that flags suspicious usage in software written in any computer language. The term lint-like behavior is sometimes applied to the process of flagging suspicious language usage. Lint-like tools generally perform static analysis of source code.
A linter performs static analysis of source code to find :
Still maintained : douglascrockford/JSLint.
Not configurable or extensible.
JSHint is a 2010 fork of JSLint.
Still maintained : jshint/jshint.
Configurable but no custom rule support.
Unmaintained and merged with eslint in 2016. See this.
Style checker only.
Created in 2013.
Still maintained : eslint/eslint
TLDR : It is JSHint + plugin system.
Usually 2-3x slower then JSHint on a single file (src).
Support JSX (React) and ES6.
The idea is to build a preconfired linter with no config available regarding to code style to avoid wasting time on useless debate like spaces or tabs.
Provide npm packages for easy ESLint config :
npx install-peerdeps --dev eslint-config-airbnb-base
npx install-peerdeps --dev eslint-config-airbnb
Provide his own package to encapsulate and hide ESLint.
Used by thousands of companies including big ones like NPM, GitHub, mongoDB, ZenDesk, ...
They limit to the formatting rules and don't deal with code quality.