JSLint
JSLint is a static code analysis tool used in software development for checking if JavaScript source code complies with coding rules. It is provided primarily as a browser-based web application accessible through the domain jslint.com, but there are also command-line adaptations.[1] It was created in 2002 by Douglas Crockford.[2]
Original author(s) | Douglas Crockford |
---|---|
Developer(s) | Douglas Crockford |
Initial release | 2002 |
Stable release | 2020-09-09
/ September 9, 2020 |
Repository | |
Written in | JavaScript |
Operating system | Cross-platform |
Available in | English |
Type | Static code analysis |
License | JSLint License |
Website | jslint |
License
The JSLint license[3] is a derivative of the MIT License.[4] The sole modification is the addition of the line "The Software shall be used for Good, not Evil."
According to the Free Software Foundation, this clause makes the license non-free.[5] The clause has also prevented JSLint-related software from being hosted on Google Code[4] and from being included in the Debian free software package repositories.[6] 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.[7][8][9]
Influence
JSLint is considered by some to be the first JavaScript syntax checker.[10][11] It has since inspired various other tools.
In 2011, Anton Kovalyov created a fork, called JSHint.[12][13][14] The main motivation behind the creation of JSHint was to provide a "less opinionated" and "more configurable" way for developers to analyse code.[15][16][17]
In 2013, Nicholas C. Zakas created ESLint.[11] 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.[18] ESLint also supports linting the latest versions of JavaScript, aka ECMAScript 2015 and above.
In 2014, Marat Dulin created JSCS.[19] In 2016, the JSCS Team joined the ESLint project and has since discontinued maintenance of the JSCS tool.[20][21][22]
In 2015, a comparison published by SitePoint, recommended ESLint above JSLint, JSHint and JSCS.[23] In 2016, CodeKit also praised ESLint for "finding more issues", being "far more configurable", and being "the industry standard" for JavaScript syntax checkers.[10]
In 2016, Palantir Technologies created TSLint,[24] which is the TypeScript equivalent for ESLint.[25] It was deprecated in favor of ESLint with a TypeScript integration in 2019.[26]
References
- "JSLint from the Command Line". www.hacksparrow.com. January 2013. Retrieved 2018-02-26.
- "first commit". GitHub. 2010-11-12. Retrieved 2018-02-25.
Copyright 2002 Douglas Crockford. All Rights Reserved Wrrrldwide and Beyond!
- JSLint source file, including license
- "JSMin isn't welcome on Google Code". wonko.com. Ryan Grove. 2008-12-08. Retrieved 2018-02-26.
- "Various Licenses and Comments About Them". Free Software Foundation.
- Re: The Software shall be used for Good, not Evil.
- "IBM and its minions ..." Hasen Judy. 2011-02-13. Archived from the original on 2013-02-03. Retrieved 2018-02-26.
- "Douglas Crockford: The JSON Saga". YouTube. 2011-08-11. Retrieved 2018-02-25.
I give permission for IBM, its customers, partners, and minions, to use JSLint for evil.
- The JSON Saga by Douglas Crockford
- "Help: JSLint". codekitapp.com. 2016-12-10. Archived from the original on 2018-02-26. Retrieved 2018-02-25.
JSLint is the original JavaScript syntax checker.
- Zakas, Nicholas C. (16 July 2013). "Introducing ESLint". nczonline.net. Retrieved 2018-02-26.
JSLint was the state of the art in JavaScript linting technology
- "Why I forked JSLint to JSHint". anton.kovalyov.net. Anton Kovalyov. 2011-02-20. Archived from the original on 2011-02-24. Retrieved 2018-02-26.
[JSLint] has gotten uncomfortably opinionated
- "JSHint: A Community Driven Fork of JSLint". badassjs.com. Devon Govett. 18 February 2011. Archived from the original on 21 February 2011. Retrieved 2011-02-21.
[..] JSLint was getting a bit too opinionated [..]
- "Help: JSHint". codekitapp.com. 2018-02-26. Retrieved 2018-02-26.
designed to be less opinionated and more configurable
- Elliot, Ian (21 February 2011). "JSHint - the (gentler) JavaScript code quality tool". www.i-programmer.info. Archived from the original on 2011-02-23. Retrieved 2018-02-26.
- Zakas, Nicholas C. (18 December 2017). "Tweet from Nicholas C. Zakas (@slicknet), creator of ESLint". Twitter. Retrieved 2018-02-26.
JSLint complaint: not configurable enough. JSHint complaint: still not configurable enough [..]
- "JSLint vs JSHint". Scott Logic. Retrieved 2018-02-26.
- "Understanding the Real Advantages of Using ESLint". Rangle.io Blog. 2015-03-26. Retrieved 2018-02-26.
- Dulin (@mdevils), Marat (21 April 2014). "JSCS: JavaScript Code Style — Frontend Babel". frontendbabel.info. Retrieved 2018-02-26.
- "Welcoming JSCS To ESLint". ESLint - Pluggable JavaScript linter. Retrieved 2018-02-26.
- "JSCS End of Life". ESLint - Pluggable JavaScript linter. Retrieved 2018-02-26.
- "Future of Typescript Linting". ESLint.
- Hartikainen, Jani (2015-03-05). "A Comparison of JavaScript Linting Tools". SitePoint. Retrieved 2018-02-26.
- "TSlint npm registry".
- "TSLint Github repository".
- "TSLint in 2019".
Further reading
- Doernhoefer, Mark (2006). "JavaScript". SIGSOFT Softw. Eng. Notes. 31 (4): 16–24. doi:10.1145/1142958.1142972. Retrieved 2010-03-12.
- Appendix C of Crockford, Douglas (May 2008). JavaScript: The Good Parts (1 ed.). O'Reilly Media. ISBN 0-596-51774-2.
- Section 'Performing JavaScript Syntax Checking with JSLint', Pages 143-145 of Asleson, Ryan; Nathaniel T. Schutta (2005-10-14). Foundations of Ajax (1 ed.). Apress. ISBN 1-59059-582-3.