JSLint is a
static code analysis
In computer science, static program analysis (or static analysis) is the analysis of computer programs performed without executing them, in contrast with dynamic program analysis, which is performed on programs during their execution.
The term i ...
tool used in
software development
Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development invol ...
for checking if
JavaScript
JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
source code
In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the wo ...
complies with
coding rules. It is provided primarily as a browser-based
web application
A web application (or web app) is application software that is accessed using a web browser. Web applications are delivered on the World Wide Web to users with an active network connection.
History
In earlier computing models like client-serve ...
accessible through the domain jslint.com, but there are also command-line adaptations. It was created in 2002 by
Douglas Crockford
Douglas Crockford is an American computer programmer who is involved in the development of the JavaScript language. He specified the data format JSON (JavaScript Object Notation), and has developed various JavaScript related tools such as the ...
.
License
Since 2021, JSLint uses the
FSF /
OSI
OSI may refer to:
Places
* Osijek Airport (IATA code: OSI), an airport in Croatia
* Ősi, a village in Veszprém county, Hungary
* Oši, an archaeological site in Semigallia, Latvia
* Osi, a village in Ido-Osi, Ekiti State, Nigeria
* Osi, Ekiti ...
approved
Unlicense
The Unlicense is a public domain equivalent license for software which provides a public domain waiver with a fall-back public-domain-like license, similar to the CC Zero for cultural works. It includes language used in earlier software projects ...
license.
Before that, the JSLint license was a derivative of the
MIT License
The MIT License is a permissive free software license originating at the Massachusetts Institute of Technology (MIT) in the late 1980s. As a permissive license, it puts only very limited restriction on reuse and has, therefore, high license comp ...
.
The sole modification was the addition of the line "''The Software shall be used for Good, not Evil.''"
According to the Free Software Foundation, this previous clause made the original license
non-free. It had also prevented JSLint-related software from being hosted on
Google Code
Google Developers (previously Google Code) , application programming interfaces (APIs), and technical resources. The site contains documentation on using Google developer tools and APIs—including discussion groups and blogs for developers usi ...
and from being included in the
Debian free software
Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, no ...
package repositories. Because of this restriction, according to Crockford,
IBM asked Crockford in 2011 for a license to do evil, such that their customers could use it.
Influence
JSLint is considered by some to be the first JavaScript syntax checker.
It has since inspired various other tools.
In 2011, Anton Kovalyov created a fork, called
JSHint
JSHint is a static code analysis tool used in software development for checking if JavaScript source code complies with coding rules. JSHint was created in 2011 by Anton Kovalyov as a fork of the JSLint project (by Douglas Crockford). Anton and o ...
. The main motivation behind the creation of JSHint was to provide a "less opinionated" and "more configurable" way for developers to analyse code.
In 2013, Nicholas C. Zakas created
ESLint
ESLint is a static code analysis tool for identifying problematic patterns found in JavaScript code. It was created by Nicholas C. Zakas in 2013. Rules in ESLint are configurable, and customized rules can be defined and loaded. ESLint covers bot ...
.
Both JSLint and JSHint lacked the ability to create additional rules for
code quality and
coding style. After contributing to JSHint, Zakas decided to create a new linting tool, ESLint, where all rules are configurable, and additional rules can be defined or loaded at
run-time. ESLint also supports linting the latest versions of JavaScript, aka ECMAScript 2015 and above.
In 2014, Marat Dulin created JSCS. In 2016, the JSCS Team joined the ESLint project and has since discontinued maintenance of the JSCS tool.
In 2015, a comparison published by
SitePoint
SitePoint is a Melbourne-based website, and publisher of books, courses and articles for web developers.
History
SitePoint was founded by Matt Mickiewicz and Mark Harbottle in 1999. The company had its origins in Webmaster-Resources.com, an in ...
, recommended ESLint above JSLint, JSHint and JSCS. In 2016, CodeKit also praised ESLint for "finding more issues", being "far more configurable", and being "the industry standard" for JavaScript syntax checkers.
In 2016,
Palantir Technologies
Palantir Technologies is a public American software company that specializes in big data analytics. Headquartered in Denver, Colorado, it was founded by Peter Thiel, Nathan Gettings, Joe Lonsdale, Stephen Cohen, and Alex Karp in 2003. The compa ...
created TSLint, which is the
TypeScript
TypeScript is a free and open source programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are ...
equivalent for ESLint. It was deprecated in favor of ESLint with a TypeScript integration in 2019.
See also
*
List of tools for static code analysis, JavaScript
References
Further reading
*
* Appendix C of
* Section 'Performing JavaScript Syntax Checking with JSLint', Pages 143-145 of
External links
*
{{Software engineering
JavaScript programming tools
Static program analysis tools