PMD VS infer

Compare PMD vs infer and see what are their differences.

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
PMD infer
21 42
4,654 14,688
1.2% 0.5%
9.9 9.9
about 12 hours ago 7 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.

PMD

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-08-01.
  • PMD 7 Is Here
    1 project | news.ycombinator.com | 22 Mar 2024
  • Amazon CodeGuru Reviewer: already time for retirement?
    2 projects | dev.to | 1 Aug 2023
    While the security findings can be pretty elaborate and helpful, the code quality and performance focused findings are not that impressive and can often be detected by more basic or powerful tools like SonarQube (paying) or PMD (free). To see what I mean you can have a look at the list of Java code quality detectors, which is pretty short and contains a lot of simple findings like:
  • Code Review for Flows
    1 project | /r/salesforce | 28 Apr 2023
    Also saw this convo has a couple years worth of ideas going on … https://github.com/pmd/pmd/issues/3413
  • Custom Gradle Plugin for Unified Static Code Analysis
    3 projects | dev.to | 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 | dev.to | 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: https://pmd.github.io/
  • Ask HN: What is a modern Java environment?
    22 projects | news.ycombinator.com | 29 Mar 2022
    PMD, Spotbugs, Nullaway: Java linting/static analysis (https://pmd.github.io, https://spotbugs.github.io, https://github.com/uber/NullAway)
  • 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 | dev.to | 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).

infer

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 2024-01-22.
  • An Introduction to Temporal Logic (With Applications to Concurrency Problems)
    4 projects | news.ycombinator.com | 22 Jan 2024
    I think most development occurs on problems that can't be formally modeled anyway. Most developers work on things like, "can you add this feature to the e-commerce site? And can the pop-up be blue?" which isn't really model-able.

    But that's not to say that formal methods are useless! We can still prove some interesting aspects of programs -- for example, that every lock that gets acquired later gets released. I think tools like Infer[0] could become common in the coming years.

    [0]: https://fbinfer.com/

  • Should I Rust or should I Go
    7 projects | news.ycombinator.com | 15 Sep 2023
  • Enforcing Memory Safety?
    3 projects | /r/cpp | 7 Jun 2023
    Using infer, someone else exploited null-dereference checks to introduce simple affine types in C++. Cppcheck also checks for null-dereferences. Unfortunately, that approach means that borrow-counting references have a larger sizeof than non-borrow counting references, so optimizing the count away potentially changes the semantics of a program which introduces a whole new way of writing subtly wrong code.
  • 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.
  • CISA Director Easterly's comments about cyber security. Agree or disagree?
    1 project | /r/cybersecurity | 1 Mar 2023
    Then this idea that the US government will tell tech companies how to write secure software. Let's get this straight, the private sector, especially big tech is miles ahead of US government in this regard. Microsoft literally invented threat modelling and modern exploit mitigations. Facebook has the best appsec processes pretty much in the whole world, including their own cutting edge code analyzer. AWS uses formal verification everywhere. Meanwhile the US government itself runs mission-critical systems that's almost literally held together by bubble gum and toothpicks. Maybe they could dial down the arrogance a tad, get their own shit together, learn how this cyber stuff is actually done and only then try lecturing everyone else.
  • A plan for cybersecurity and grid safety
    6 projects | dev.to | 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.
  • silly guy
    1 project | /r/ProgrammerHumor | 25 Dec 2022
    "Move fast, break stuff" is a great approach when you aren't pushing the broken bits to production. Fuck, even Facebook, the big "move fast, break stuff" company, uses tools to detect errors in its continuous integration toolchain. https://fbinfer.com/
  • OCaml 5.0 Multicore is out
    19 projects | news.ycombinator.com | 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.

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

ESLint - Find and fix problems in your JavaScript code.