The Adoption of JavaScript Linters in Practice: A Case Study on ESLint

Kristín Tómasdóttir, Maurício Aniche, Arie van Deursen

Research output: Contribution to journalArticleScientificpeer-review

26 Citations (Scopus)
971 Downloads (Pure)

Abstract

A linter is a static analysis tool that warns software developers about possible code errors or violations to coding standards. By using such a tool, errors can be surfaced early in the development process when they are cheaper to fix. For a linter to be successful, it is important to understand the needs and challenges of developers when using a linter. In this paper, we examine developers' perceptions on JavaScript linters. We study why and how developers use linters along with the challenges they face while using such tools. For this purpose we perform a case study on ESLint, the most popular JavaScript linter. We collect data with three different methods where we interviewed 15 developers from well-known open source projects, analyzed over 9,500 ESLint configuration files, and surveyed 337 developers from the JavaScript community. Our results provide practitioners with reasons for using linters in their JavaScript projects as well as several configuration strategies and their advantages. We also provide a list of linter rules that are often enabled and disabled, which can be interpreted as the most important rules to reason about when configuring linters. Finally, we propose several feature suggestions for tool makers and future work for researchers.
Original languageEnglish
Article number8468105
Pages (from-to)863-891
Number of pages29
JournalIEEE Transactions on Software Engineering
Volume46
Issue number8
DOIs
Publication statusPublished - 2020

Keywords

  • ASATs
  • Static analysis tools
  • empirical software engineering
  • eslint
  • javascript linters
  • linters

Fingerprint

Dive into the research topics of 'The Adoption of JavaScript Linters in Practice: A Case Study on ESLint'. Together they form a unique fingerprint.

Cite this