JSLint

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
JSLint
Original author(s)Douglas Crockford
Developer(s)Douglas Crockford
Initial release2002; 17 years ago (2002)
Stable release
2018-02-05 / February 5, 2018; 17 months ago (2018-02-05)
Written inJavaScript
Operating systemCross-platform
Available inEnglish
TypeStatic code analysis
LicenseJSLint License
Websitejslint.com

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]

License[edit]

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[edit]

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 were lacking 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. When combined with Babel 7, ESLint can also support linting of TypeScript and is the recommended linting tool by the TypeScript team as well.[19]

In 2014, Marat Dulin created JSCS.[20] In 2016, The JSCS Team joined the ESLint project, and has since discontinued maintenance of the JSCS tool.[21][22][23]

In 2015, a comparison published by SitePoint, recommended ESLint above JSLint, JSHint and JSCS.[24] 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[25], which is the TypeScript equivalent for ESLint.[26]

Further reading[edit]

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

See also[edit]

References[edit]

  1. ^ "JSLint from the Command Line". www.hacksparrow.com. January 2013. Retrieved 2018-02-26.
  2. ^ "first commit". GitHub. 2010-11-12. Retrieved 2018-02-25. Copyright 2002 Douglas Crockford. All Rights Reserved Wrrrldwide and Beyond!
  3. ^ JSLint source file, including license
  4. ^ a b "JSMin isn't welcome on Google Code". wonko.com. Ryan Grove. 2008-12-08. Retrieved 2018-02-26.
  5. ^ "Various Licenses and Comments About Them". Free Software Foundation.
  6. ^ Re: The Software shall be used for Good, not Evil.
  7. ^ "IBM and its minions ..." Hasen Judy. 2011-02-13. Retrieved 2018-02-26.
  8. ^ "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.
  9. ^ The JSON Saga by Douglas Crockford
  10. ^ 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.
  11. ^ a b 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
  12. ^ "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
  13. ^ "JSHint: A Community Driven Fork of JSLint". badassjs.com. Devon Govett. 18 February 2011. Archived from the original on 2011-02-21. Retrieved 2011-02-21. [..] JSLint was getting a bit too opinionated [..]
  14. ^ "Help: JSHint". codekitapp.com. 2018-02-26. Retrieved 2018-02-26. designed to be less opinionated and more configurable
  15. ^ 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.
  16. ^ 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 [..]
  17. ^ "JSLint vs JSHint". Scott Logic. Retrieved 2018-02-26.
  18. ^ "Understanding the Real Advantages of Using ESLint". Rangle.io Blog. 2015-03-26. Retrieved 2018-02-26.
  19. ^ "How to setup ESLint for Typescript code". Wisdom Geek. Kataria, Saransh.
  20. ^ Marat Dulin (@mdevils) (21 April 2014). "JSCS: JavaScript Code Style — Frontend Babel". frontendbabel.info. Retrieved 2018-02-26.
  21. ^ "Welcoming JSCS To ESLint". ESLint - Pluggable JavaScript linter. Retrieved 2018-02-26.
  22. ^ "JSCS End of Life". ESLint - Pluggable JavaScript linter. Retrieved 2018-02-26.
  23. ^ "Future of Typescript Linting". ESLint.
  24. ^ Hartikainen, Jani (2015-03-05). "A Comparison of JavaScript Linting Tools". SitePoint. Retrieved 2018-02-26.
  25. ^ "TSlint npm registry".
  26. ^ "TSLint Github repository".

External links[edit]