NiCad vs PMD
NiCad
github.comPMD
pmd.github.ioSide by side
| Figure | NiCad | PMD |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Code Duplication Detection Tools | 7.7 (#7) | 8.1 (#4) |
| Spec score · Code Clone Detection Tools | 7.7 (#10) | 8.1 (#3) |
| Languages | Included language plugins cover C, C#, Java, Python, PHP, Ruby, WSDL, and ATL. | PMD focuses mainly on Java and Apex and supports 16 other languages, including JavaScript, Kotlin, Swift, and XML. |
| License | The project uses an MIT-style license permitting use, modification, distribution, sublicensing, and sale subject to its stated conditions. | The project identifies its license as BSD-style. |
| Purpose | NiCad is a near-miss source code clone detection system. | PMD is an extensible cross-language static code analyzer that finds common programming flaws. |
| Support | The repository's Issues page currently shows no open issues and says issue creation is restricted. | The project directs users to Stack Overflow for questions, GitHub issues for suspected bugs or requests, and Gitter for quick questions. |
Plans
In their own words
NiCad
NiCad is a near-miss source code clone detection system for finding similar fragments in a repository. It can analyze code at file, function, or block granularity. Included language plugins cover C, C#, Java, Python, PHP, Ruby, WSDL, and ATL; plugins for other languages can be added when a TXL grammar is available. Configuration files let users tailor renaming, filtering, abstraction, and normalization before comparison. Results include clone pairs and clone classes in XML-like formats, with optional browsable HTML reports. The default near-miss difference threshold is 0.30; a setting of 0.00 means exact clones. NiCadCross can report fragments from one system that also appear as clones in a second. The software is free under an MIT-style license, with stated conditions for use, modification, distribution, sublicensing, and sale. It runs on Linux, macOS, and Windows and can be run from its directory for personal use or installed system-wide. NiCad 7.0 requires OpenTxl 11 or later; building comparison tools requires Turing+ 6.2 or later.
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.