Skip to content
SPECIFICTION
Get listed

HLint vs PMD

HLint

github.com

PMD

pmd.github.io

Side by side

FigureHLintPMD
Price fromFreeFree
Free planYesYes
Free trial——
Open source——
WindowsYesYes
macOSYesYes
LinuxYesYes
Self-hosted—Yes
Plans published11
Spec score · Linters7.7 (#19)8.3 (#6)
LicenseThe repository provides HLint under a BSD-style license that permits redistribution and use in source and binary forms subject to listed conditions.The project identifies its license as BSD-style.
PurposeHLint suggests possible improvements to Haskell code, including alternative functions, simplifications, and redundancies.PMD is an extensible cross-language static code analyzer that finds common programming flaws.

Plans

HLint

  • FreeFree

HLint pricing →

PMD

  • PMDFree

PMD pricing →

In their own words

HLint

HLint is free software for analyzing Haskell source and suggesting possible improvements. It can point out alternative functions, simpler expressions, and redundant code. Every hint identifies the file and line, gives a severity and description, shows the code found, and proposes a replacement. Projects can configure behavior in a .hlint.yaml file, adding custom hints or ignoring selected suggestions. The --refactor flag applies some recommendations and requires the refactor executable from the apply-refact package on PATH. The --report flag creates an interactive HTML findings report. HLint runs on Linux, macOS, and Windows, with listed integrations including editor plugins, Haskell Language Server, ghc-mod, Intero, a GHC source plugin, Code Climate, and GitHub Actions. It analyzes one module at a time without type or scope knowledge. Version 3.10 is listed as released February 2, 2024. It is distributed under a BSD-style license.

Visit github.com

PMD

PMD is a free, extensible static code analyzer that checks source code for programming flaws such as unused variables, empty catch blocks, and unnecessary object creation. It includes more than 400 built-in rules, and teams can write custom rules in Java or XPath. Its bundled CPD tool finds duplicated code across many programming languages. PMD checks source directories from the command line and can run as a Maven, Ant, Gradle, or bld build operation. Supported languages include Java, JavaScript, Salesforce Apex and Visualforce, Kotlin, Swift, Modelica, PL/SQL, Apache Velocity, JSP, WSDL, Maven POM, HTML, XML, and XSL; Scala is supported without Scala rules. It runs on Linux, macOS, and Windows and requires Java 8 or above. For CI, its GitHub Action can create SARIF reports and fail builds based on violation counts; documentation also covers GitLab, Jenkins, and Bamboo integrations. IDE integrations include Eclipse, IntelliJ IDEA, and Visual Studio Code, though some listed plugins are not actively maintained. Only the latest major version is actively developed.

Visit pmd.github.io