PMD VS infer

Compare PMD vs infer and see what are their differences.

Our great sponsors
  • InfluxDB - Access the most powerful time series database as a service
  • Sonar - Write Clean Java Code. Always.
  • SaaSHub - Software Alternatives and Reviews
PMD infer
19 39
4,317 14,051
1.3% 0.5%
9.9 9.9
4 days ago 3 days ago
Java OCaml
GNU General Public License v3.0 or later MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of PMD. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-02-04.
  • Custom Gradle Plugin for Unified Static Code Analysis
    3 projects | | 4 Feb 2023
    PMD and Checkstyle are static analysis tools that check your code on each project build. Gradle allows to apply them easily.
  • Spring Boot – Black Box Testing
    9 projects | | 13 Nov 2022
    The generated classes should be put into .gitignore. Otherwise, if you have Checkstyle, PMD, or SonarQube in your project, then generated classes can violate some rules. Besides, if you don't put them into .gitignore, then each pull request might become huge due to the fact that even a slightest fix can lead to lots of changes in the generated classes.
  • After Java tutorials, now what???
    5 projects | /r/javahelp | 30 Apr 2022
    - PMD Static Code Analysis tool:
  • Ask HN: What is a modern Java environment?
    22 projects | | 29 Mar 2022
    PMD, Spotbugs, Nullaway: Java linting/static analysis (,,
  • Code smell plugin
    2 projects | /r/javahelp | 15 Feb 2022
    PMD, and checkstyle as well.
  • Writing Clean and Consistent Code with Static Analysis using PMD and Apex
    6 projects | | 28 Jan 2022
    Nearly every programming language has a static analyzer of its own. For example, golang has gofmt, which is baked into the standard tooling, while Ruby has Rubocop, a community-led project. Even compiled languages like C have their own static analyzer through astyle. However, it can be difficult (and tedious) to run several analyzers across polyglot projects. Fortunately, that’s where a project like PMD can be of assistance. PMD is a static analyzer that allows you to define a standard set of rules that can be applied over multiple languages.
    6 projects | | 28 Jan 2022
    Open up the config/ruleset.xml file, and you’ll find an XML document that lists several rules. These rules map to the issues which PMD will report on. Believe it or not, there are hundreds of Apex rules, and you can find the full set at the PMD repo. You have complete control over which rules to enable. Typically, you’d determine which ones are important by agreeing with your teammates on the ones that matter most. After all, their code will be statically analyzed, too!
  • Is there a tool to track CVEs for the software that we use?
    8 projects | /r/sysadmin | 14 Dec 2021
    While at it you could also point them to static code analyzers such as error_prone, spotbugs and pmd (use all 3 at once - they complement each other in detecting different issues).
  • How to setup CI/CD for org-based development?
    2 projects | /r/salesforce | 10 Dec 2021
    For PMD specifically, we use the PMD command line tool (Github) and wire it together with some bash scripting. Most pipelines will allow you to write bash as needed. The SFDX scanner command didn't exist when we implemented this, you might be able to use that instead.
  • Is it possible to measure spaghettiness of code?
    4 projects | /r/AskProgramming | 25 Nov 2021
    This is the definition of cohesion and there are many great tools to calculate cohesion metrics (depending on the programming language e.g Java). Cohesion metrics belong to a bigger set of metrics called OOP metrics (or ck metrics). Check out the following links:


Posts with mentions or reviews of infer. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-04-09.
  • Interesting ocaml mention in buck2 by fb
    5 projects | /r/ocaml | 9 Apr 2023
    Meta/Facebook are long time OCaml users, their logo is on the OCaml website. Their static analysis tool and its predecessor are both written in OCaml.
  • A plan for cybersecurity and grid safety
    6 projects | | 10 Feb 2023
    Efforts: Dependabot, CodeQL, Coverity, facebook's Infer tool, etc
  • A quick look at free C++ static analysis tools
    3 projects | /r/cpp | 4 Jan 2023
    I notice there isn't fbinfer. It's pretty cool, and is used for this library.
  • OCaml 5.0 Multicore is out
    19 projects | | 16 Dec 2022
  • Beyond Functional Programming: The Verse Programming Language (Epic Games' new language with Simon Peyton Jones)
    5 projects | /r/programming | 12 Dec 2022
    TBH, there's a non-zero amount of non-"ivory tower" tools you may have used that are written in functional languages. Say, Pandoc or Shellcheck are written in Haskell; Infer and Flow are written in OCaml. RabbitMQ and Whatsapp are implemented in Erlang (FB Messenger was too, originally; they switched to the C++ servers later). Twitter backend is (or was, at least) written in Scala.
  • The State of Affine Types in C++?
    2 projects | /r/cpp | 22 Nov 2022
    - borrow-cpp which exploits some null dereference checks in the infer static analyzer to model some of borrow checking.
  • Prusti: Static Analyzer for Rust
    8 projects | | 13 Oct 2022
  • Programming Breakthroughs We Need
    17 projects | | 17 Aug 2022
    > Maybe you could write tests as queries that would test a whole set of possible programs, not only the current version of your program at the moment.

    I think that the future of programming is more sophisticated static analysis. Programmers will write statements like, "every code path that writes to the Payments database must have called validate_user()." Then, the tooling will confirm that rule with every commit.

    We kind of have this already (for example, Facebook's Infer tool [0]), but I think it will become much more important in the coming decade.


  • Formally Verifying Industry Cryptography
    2 projects | | 14 Jul 2022
    Great question! Formal methods groups in industry are growing rapidly and popping up in surprising places. Amazon's group is probably the most famous, but I think pretty much every big tech company has something going on in the formal verification / static analysis space. There's also a lot going on in blockchain . It's definitely becoming harder to hire people with FM skills, so in that sense, I think it's a great space to get into.

    The downside is that the space is quite fragmented and a lot of tools have a high skill bar. If I was starting out, I'd probably focus on static analysis (eg. Infer or something similar - because those tools tend to be easier to learn, and they have the potential to scale to really big systems. In contrast, Coq is a fine tool, but most people learn it by going to grad school which isn't useful short term career advice.

    There are lot of great interviews with practitioners on the Galois podcast, Building Better Systems - that might be a good place to start exploring:

  • Hard Things in Computer Science
    2 projects | | 28 Jun 2022
    > The only reliable way to have bug-free code is to prove it. It requires solid mathematical foundations and a programming language that allows formal proofs.

    I'm going to be the "actually" guy and say that, actually, you can formally verify some studff about programs written in traditional/mainstream languages, like C. Matter of fact, this is a pretty lively research area, with some tools like CBMC [0] and Infer [1] also getting significant adoption in the industry.



What are some alternatives?

When comparing PMD and infer you can also consider the following projects:

Spotbugs - SpotBugs is FindBugs' successor. A tool for static analysis to look for bugs in Java code.

SonarQube - Continuous Inspection

Error Prone - Catch common Java mistakes as compile-time errors

Checkstyle - Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. By default it supports the Google Java Style Guide and Sun Code Conventions, but is highly configurable. It can be invoked with an ANT task and a command line program.

FindBugs - The new home of the FindBugs project

SonarJava - :coffee: SonarSource Static Analyzer for Java Code Quality and Security