ESLint聽vs聽RuboCop聽vs聽SonarQube

Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

ESLint
ESLint

5.2K
3.6K
+ 1
17
RuboCop
RuboCop

207
137
+ 1
38
SonarQube
SonarQube

690
532
+ 1
15

What is ESLint?

A pluggable and configurable linter tool for identifying and reporting on patterns in JavaScript. Maintain your code quality with ease.

What is RuboCop?

RuboCop is a Ruby static code analyzer. Out of the box it will enforce many of the guidelines outlined in the community Ruby Style Guide.

What is SonarQube?

SonarQube provides an overview of the overall health of your source code and even more importantly, it highlights issues found on new code. With a Quality Gate set on your project, you will simply fix the Leak and start mechanically improving.
Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Why do developers choose ESLint?
Why do developers choose RuboCop?
Why do developers choose SonarQube?

Sign up to add, upvote and see more prosMake informed product decisions

    Be the first to leave a con
      Be the first to leave a con
      What companies use ESLint?
      What companies use RuboCop?
      What companies use SonarQube?

      Sign up to get full access to all the companiesMake informed product decisions

      What tools integrate with ESLint?
      What tools integrate with RuboCop?
      What tools integrate with SonarQube?

      Sign up to get full access to all the tool integrationsMake informed product decisions

      What are some alternatives to ESLint, RuboCop, and SonarQube?
      TSLint
      An extensible static analysis tool that checks TypeScript code for readability, maintainability, and functionality errors. It is widely supported across modern editors & build systems and can be customized with your own lint rules, configurations, and formatters.
      Prettier
      Prettier is an opinionated code formatter. It enforces a consistent style by parsing your code and re-printing it with its own rules that take the maximum line length into account, wrapping code when necessary.
      JSLint
      It 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 their domain, but there are also command-line adaptations.
      JSHint
      It is a community-driven tool to detect errors and potential problems in JavaScript code. It is open source and can easily adjust in the environment you expect your code to execute.
      Babel
      Babel will turn your ES6+ code into ES5 friendly code, so you can start using it right now without waiting for browser support.
      See all alternatives
      Decisions about ESLint, RuboCop, and SonarQube
      Russel Werner
      Russel Werner
      Lead Engineer at StackShare | 7 upvotes 193.3K views
      atStackShareStackShare
      Prettier
      Prettier
      ESLint
      ESLint
      WebStorm
      WebStorm
      Visual Studio Code
      Visual Studio Code

      We use Prettier because when we rebooted our front-end stack, I decided that it would be an efficient use of our time to not worry about code formatting issues and personal preferences during peer review. Prettier eliminates this concern by auto-formatting our code to a deterministic output. We use it along with ESLint and have 1st-class support in our WebStorm and Visual Studio Code editors.

      See more
      Johnny Bell
      Johnny Bell
      Senior Software Engineer at StackShare | 17 upvotes 633.3K views
      Webpack
      Webpack
      Node.js
      Node.js
      Yarn
      Yarn
      npm
      npm
      Babel
      Babel
      Prettier
      Prettier
      ESLint
      ESLint
      #ES6
      #ES5

      So when starting a new project you generally have your go to tools to get your site up and running locally, and some scripts to build out a production version of your site. Create React App is great for that, however for my projects I feel as though there is to much bloat in Create React App and if I use it, then I'm tied to React, which I love but if I want to switch it up to Vue or something I want that flexibility.

      So to start everything up and running I clone my personal Webpack boilerplate - This is still in Webpack 3, and does need some updating but gets the job done for now. So given the name of the repo you may have guessed that yes I am using Webpack as my bundler I use Webpack because it is so powerful, and even though it has a steep learning curve once you get it, its amazing.

      The next thing I do is make sure my machine has Node.js configured and the right version installed then run Yarn. I decided to use Yarn because when I was building out this project npm had some shortcomings such as no .lock file. I could probably move from Yarn to npm but I don't really see any point really.

      I use Babel to transpile all of my #ES6 to #ES5 so the browser can read it, I love Babel and to be honest haven't looked up any other transpilers because Babel is amazing.

      Finally when developing I have Prettier setup to make sure all my code is clean and uniform across all my JS files, and ESLint to make sure I catch any errors or code that could be optimized.

      I'm really happy with this stack for my local env setup, and I'll probably stick with it for a while.

      See more
      Joshua Dean K眉pper
      Joshua Dean K眉pper
      CEO at Scrayos UG (haftungsbeschr盲nkt) | 1 upvotes 1.1K views
      atScrayos UG (haftungsbeschr盲nkt)Scrayos UG (haftungsbeschr盲nkt)
      ESLint
      ESLint
      JSHint
      JSHint

      We use ESLint because we like to remove the general thinking-overhead when writing software. ESLint offers many presets, while also providing users with a lot of customization features. We use ESLint in conjunction with the javascript "standard" configuration (and for our vueJS-projects the "recommended" settings).

      The other option we considered was JSHint, but we scrapped that, as forward-compatibility is essential for us and ESLint is more fast-paced in its development and supports ESnext natively.

      See more
      Francisco Quintero
      Francisco Quintero
      Tech Lead at Dev As Pros | 7 upvotes 288.9K views
      atDev As ProsDev As Pros
      Node.js
      Node.js
      Rails
      Rails
      Amazon EC2
      Amazon EC2
      Heroku
      Heroku
      RuboCop
      RuboCop
      JavaScript
      JavaScript
      ESLint
      ESLint
      Slack
      Slack
      Twist
      Twist

      For many(if not all) small and medium size business time and cost matter a lot.

      That's why languages, frameworks, tools, and services that are easy to use and provide 0 to productive in less time, it's best.

      Maybe Node.js frameworks might provide better features compared to Rails but in terms of MVPs, for us Rails is the leading alternative.

      Amazon EC2 might be cheaper and more customizable than Heroku but in the initial terms of a project, you need to complete configurationos and deploy early.

      Advanced configurations can be done down the road, when the project is running and making money, not before.

      But moving fast isn't the only thing we care about. We also take the job to leave a good codebase from the beginning and because of that we try to follow, as much as we can, style guides in Ruby with RuboCop and in JavaScript with ESLint and StandardJS.

      Finally, comunication and keeping a good history of conversations, decisions, and discussions is important so we use a mix of Slack and Twist

      See more
      Jerome Dalbert
      Jerome Dalbert
      Senior Backend Engineer at StackShare | 5 upvotes 281.6K views
      atStackShareStackShare
      GitHub
      GitHub
      CircleCI
      CircleCI
      Code Climate
      Code Climate
      Brakeman
      Brakeman
      RuboCop
      RuboCop
      RSpec
      RSpec
      Rails
      Rails
      Git
      Git
      #ContinuousIntegration

      The continuous integration process for our Rails backend app starts by opening a GitHub pull request. This triggers a CircleCI build and some Code Climate checks.

      The CircleCI build is a workflow that runs the following jobs:

      • check for security vulnerabilities with Brakeman
      • check code quality with RuboCop
      • run RSpec tests in parallel with the knapsack gem, and output test coverage reports with the simplecov gem
      • upload test coverage to Code Climate

      Code Climate checks the following:

      • code quality metrics like code complexity
      • test coverage minimum thresholds

      The CircleCI jobs and Code Climate checks above have corresponding GitHub status checks.

      Once all the mandatory GitHub checks pass and the code+functionality have been reviewed, developers can merge their pull request into our Git master branch. Code is then ready to deploy!

      #ContinuousIntegration

      See more
      Ganesa Vijayakumar
      Ganesa Vijayakumar
      Full Stack Coder | Module Lead | 15 upvotes 995.5K views
      Codacy
      Codacy
      SonarQube
      SonarQube
      React
      React
      React Router
      React Router
      React Native
      React Native
      JavaScript
      JavaScript
      jQuery
      jQuery
      jQuery UI
      jQuery UI
      jQuery Mobile
      jQuery Mobile
      Bootstrap
      Bootstrap
      Java
      Java
      Node.js
      Node.js
      MySQL
      MySQL
      Hibernate
      Hibernate
      Heroku
      Heroku
      Amazon S3
      Amazon S3
      Amazon RDS
      Amazon RDS
      Solr
      Solr
      Elasticsearch
      Elasticsearch
      Amazon Route 53
      Amazon Route 53
      Microsoft Azure
      Microsoft Azure
      Amazon EC2 Container Service
      Amazon EC2 Container Service
      Apache Maven
      Apache Maven
      Git
      Git
      Docker
      Docker

      I'm planning to create a web application and also a mobile application to provide a very good shopping experience to the end customers. Shortly, my application will be aggregate the product details from difference sources and giving a clear picture to the user that when and where to buy that product with best in Quality and cost.

      I have planned to develop this in many milestones for adding N number of features and I have picked my first part to complete the core part (aggregate the product details from different sources).

      As per my work experience and knowledge, I have chosen the followings stacks to this mission.

      UI: I would like to develop this application using React, React Router and React Native since I'm a little bit familiar on this and also most importantly these will help on developing both web and mobile apps. In addition, I'm gonna use the stacks JavaScript, jQuery, jQuery UI, jQuery Mobile, Bootstrap wherever required.

      Service: I have planned to use Java as the main business layer language as I have 7+ years of experience on this I believe I can do better work using Java than other languages. In addition, I'm thinking to use the stacks Node.js.

      Database and ORM: I'm gonna pick MySQL as DB and Hibernate as ORM since I have a piece of good knowledge and also work experience on this combination.

      Search Engine: I need to deal with a large amount of product data and it's in-detailed info to provide enough details to end user at the same time I need to focus on the performance area too. so I have decided to use Solr as a search engine for product search and suggestions. In addition, I'm thinking to replace Solr by Elasticsearch once explored/reviewed enough about Elasticsearch.

      Host: As of now, my plan to complete the application with decent features first and deploy it in a free hosting environment like Docker and Heroku and then once it is stable then I have planned to use the AWS products Amazon S3, EC2, Amazon RDS and Amazon Route 53. I'm not sure about Microsoft Azure that what is the specialty in it than Heroku and Amazon EC2 Container Service. Anyhow, I will do explore these once again and pick the best suite one for my requirement once I reached this level.

      Build and Repositories: I have decided to choose Apache Maven and Git as these are my favorites and also so popular on respectively build and repositories.

      Additional Utilities :) - I would like to choose Codacy for code review as their Startup plan will be very helpful to this application. I'm already experienced with Google CheckStyle and SonarQube even I'm looking something on Codacy.

      Happy Coding! Suggestions are welcome! :)

      Thanks, Ganesa

      See more
      Buzz Zhang
      Buzz Zhang
      CTO at Qiban | 7 upvotes 17.9K views
      at浼佸姙浼佸姙
      Visual Studio Code
      Visual Studio Code
      ESLint
      ESLint
      Prettier
      Prettier

      I use Visual Studio Code because plugins. For choosing IDE, the most important part is not IDE itself, but plugins. Some may argues that Visual Studio Code is not IDE, but I like to call it IDE, any text editor can do debug is IDE. Visual Studio Code can do it, and can use ESLint and Prettier , so it's IDE.

      See more
      Forrest Norvell
      Forrest Norvell
      engineering manager at self-employed | 6 upvotes 125.2K views
      TSLint
      TSLint
      ESLint
      ESLint
      Flow (JS)
      Flow (JS)
      Visual Studio Code
      Visual Studio Code
      TypeScript
      TypeScript

      I use TypeScript because the tooling is more mature (the decision to discontinue TSLint in favor of moving all its checks to ESLint is a thoughtful and mature decision), there's a ton of examples and tutorials for it, and it just generally seems to be where the industry is headed. Flow (JS) is a fine tool, but it just hasn't seen the uptake that TS has, and as a result is lacking a lot of the nicer small things, like thorough Visual Studio Code integration, offered by TS.

      See more
      Gustavo Mu帽oz
      Gustavo Mu帽oz
      Web UI Developer at Globant | 4 upvotes 2.7K views
      ESLint
      ESLint
      Prettier
      Prettier
      Sass
      Sass
      #Airbnb

      I decided to use ESLint over other tools like Prettier because I think it's better to show your fails than fix them without knowing what you are doing. It's a better way to learn. I know it's slower, but you are fully conscious of your work. I also use Sass linters for the same reason. I recommend Prettier when you are already a senior developer, but try to use linters instead when you start coding. It will help you to improve a lot. I recommend you #Airbnb rules set. Strict, but well written. Very useful even for accesibility.

      See more
      SonarQube
      SonarQube
      codebeat
      codebeat
      Codacy
      Codacy

      It is very important to have clean code. To be sure that the code quality is not really bad I use a few tools. I love SonarQube with many relevant hints and deep analysis of code. codebeat isn't so detailed, but it can find complexity issues and duplications. Codacy cannot find more bugs then your IDE. The winner for me is SonarQube that shows me really relevant bugs in my code.

      See more
      Sass Lint
      Sass Lint
      Stylelint
      Stylelint
      gulp
      gulp
      ESLint
      ESLint
      Prettier
      Prettier

      Scenario: I want to integrate Prettier in our code base which is currently using ESLint (for .js and .scss both). The project is using gulp.

      It doesn't feel quite right to me to use ESLint, I wonder if it would be better to use Stylelint or Sass Lint instead.

      I completed integrating ESLint + Prettier, Planning to do the same with [ Stylelint || Sasslint || EsLint] + Prettier.

      And have gulp 'fix' on file save (Watcher).

      Any recommendation is appreciated.

      See more
      Bryan Dady
      Bryan Dady
      SRE Manager at Subsplash | 3 upvotes 1.9K views
      GitLab CI
      GitLab CI
      SonarQube
      SonarQube
      Sonatype Nexus
      Sonatype Nexus
      Snyk
      Snyk
      WhiteSource
      WhiteSource

      I'm beginning to research the right way to better integrate how we achieve SCA / shift-left / SecureDevOps / secure software supply chain. If you use or have evaluated WhiteSource, Snyk, Sonatype Nexus, SonarQube or similar, I would very much appreciate your perspective on strengths and weaknesses and how you selected your ultimate solution. I want to integrate with GitLab CI.

      See more
      Interest over time
      Reviews of ESLint, RuboCop, and SonarQube
      No reviews found
      How developers use ESLint, RuboCop, and SonarQube
      Avatar of Volkan 脰z莽elik
      Volkan 脰z莽elik uses ESLintESLint

      JavaScript is a language that works wonders when there are tools like ESLint, Prettier, and FlowType that cover your back.

      I use my IDE鈥檚 (Visual Studio Code) ESLint integration to validate the code I write in realtime.

      Avatar of Jack Littleton
      Jack Littleton uses ESLintESLint

      I use ESLint to ensure my JavaScript code meets my team's coding standards, and to avoid known pitfalls. The extensibility allows me to write specialized modules that detect team-specific issues as they occur.

      Avatar of Trusted Shops GmbH
      Trusted Shops GmbH uses SonarQubeSonarQube

      To increase our code quality and make vulnerabilities visible, we added SonarQube to our Git(lab) workflow, so every commit is analyzed and code flaws are shown directly at the Mergerequest.

      Avatar of Promethean TV
      Promethean TV uses ESLintESLint

      ESLint is used in the build process for the Promethean TV Broadcast Center Tool.

      Avatar of Ataccama
      Ataccama uses ESLintESLint

      A must-have tool to catch bugs and enforce a consistent code style.

      Avatar of Coolfront Technologies
      Coolfront Technologies uses ESLintESLint

      Code checking and normalization for Coolfront Mobile code-base.

      Avatar of Sodep
      Sodep uses SonarQubeSonarQube

      Static code analysis for Java and Javascript projects.

      How much does ESLint cost?
      How much does RuboCop cost?
      How much does SonarQube cost?
      Pricing unavailable
      Pricing unavailable
      Pricing unavailable
      News about SonarQube
      More news