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, Kai Zhu |
Initial release | 2002 |
Stable release | v2024.6.28
/ June 30, 2024 |
Repository | |
Written in | JavaScript |
Operating system | Cross-platform |
Available in | English |
Type | Static code analysis |
License | Unlicense |
Website | www |
License
editSince 2021, JSLint uses the FSF / OSI approved Unlicense license.
Before that, the JSLint license[3] was a derivative of the MIT License.[4] 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.[5] It had 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
editJSLint 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 2013, Palantir Technologies created TSLint,[19] which was the TypeScript equivalent for ESLint.[20] In 2019 TSLint was deprecated in favor of ESLint with a TypeScript integration.[21]
In 2014, Marat Dulin created JSCS.[22] In 2016, the JSCS Team joined the ESLint project and has since discontinued maintenance of the JSCS tool.[23][24][25]
In 2015, a comparison published by SitePoint, recommended ESLint above JSLint, JSHint and JSCS.[26] In 2016, CodeKit also praised ESLint for "finding more issues", being "far more configurable", and being "the industry standard" for JavaScript syntax checkers.[10]
See also
editReferences
edit- ^ "JSLint from the Command Line". www.hacksparrow.com. January 2013. Archived from the original on 2018-02-27. 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". Archived from the original on 2013-06-09. Retrieved 2011-11-22.
- ^ a b "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". www.mail-archive.com.
- ^ "IBM and its minions ..." Hasen Judy. 2011-02-13. Archived from the original on 2013-02-03. Retrieved 2018-02-26.
I give permission for IBM, its customers, partners, and minions, to use JSLint for evil.
- ^ "Douglas Crockford: The JSON Saga". YouTube. 2011-08-11. Archived from the original on 2021-12-15. 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
- ^ a b "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.
- ^ a b Zakas, Nicholas C. (16 July 2013). "Introducing ESLint". nczonline.net. Archived from the original on 2018-02-26. 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. Archived from the original on 2019-02-09. Retrieved 2018-02-26.
- ^ "tslint v0.1.0". npm. 28 July 2013.
- ^ "TSLint". palantir.github.io.
- ^ "TSLint in 2019". Medium. June 5, 2019.
- ^ 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. 14 April 2016. Retrieved 2018-02-26.
- ^ "JSCS End of Life". ESLint - Pluggable JavaScript linter. 15 July 2016. Retrieved 2018-02-26.
- ^ "Future of Typescript Linting". ESLint. 18 January 2019.
- ^ Hartikainen, Jani (2015-03-05). "A Comparison of JavaScript Linting Tools". SitePoint. Retrieved 2018-02-26.
Further reading
edit- Doernhoefer, Mark (2006). "JavaScript". SIGSOFT Softw. Eng. Notes. 31 (4): 16–24. doi:10.1145/1142958.1142972. S2CID 221777701. Retrieved 2010-03-12.
- Appendix C of Crockford, Douglas (May 2008). JavaScript: The Good Parts (1 ed.). O'Reilly Media. ISBN 978-0-596-51774-8.
- 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.