StackShareStackShare
Follow on
StackShare

Discover and share technology stacks from companies around the world.

Follow on

© 2025 StackShare. All rights reserved.

Product

  • Stacks
  • Tools
  • Feed

Company

  • About
  • Contact

Legal

  • Privacy Policy
  • Terms of Service
  1. Stackups
  2. DevOps
  3. Code Review
  4. Code Review
  5. PMD vs TSLint

PMD vs TSLint

OverviewDecisionsComparisonAlternatives

Overview

TSLint
TSLint
Stacks3.4K
Followers234
Votes0
PMD
PMD
Stacks46
Followers111
Votes0
GitHub Stars5.2K
Forks1.5K

PMD vs TSLint: What are the differences?

Introduction

PMD and TSLint are widely used static code analysis tools for different programming languages. Both tools analyze code and provide feedback on potential quality issues, coding standards violations, and best practices. However, there are key differences between PMD and TSLint that make each tool unique and suitable for different scenarios.

  1. Language Support: PMD is primarily designed for Java code analysis, while TSLint is specifically built for TypeScript code analysis. PMD has support for other JVM languages like Groovy and Scala but may not provide the same level of analysis as for Java. In contrast, TSLint is exclusively focused on TypeScript code and provides specialized rules for TypeScript-specific patterns.

  2. Integration: PMD can be seamlessly integrated with various development environments like Eclipse, IntelliJ IDEA, and Maven. It can also be used as a standalone command-line tool or as part of a CI/CD pipeline. On the other hand, TSLint integration is mainly done through popular editors like Visual Studio Code, Sublime Text, and Atom. It can also be integrated into build processes using tools like Webpack.

  3. Rule Sets: PMD provides a wide range of rule sets that can be customized based on project-specific requirements. These rule sets cover various aspects like code style, error-prone code patterns, performance optimizations, and security vulnerabilities. TSLint, on the other hand, has its own set of predefined rules specific to TypeScript, covering areas like type checking, code formatting, and code readability.

  4. Community Support: PMD has been around for a longer period and has a larger community of contributors. It is backed by the Apache Software Foundation, ensuring continuous development and support. TSLint has gained significant popularity within the TypeScript community, with active contributions from open source developers. However, as of January 2020, TSLint is officially deprecated, and the community is transitioning to ESLint for TypeScript linting.

  5. Extensibility: PMD provides the flexibility to write custom rules using its rule framework. Developers can extend PMD's rule sets or create entirely new rules based on their specific requirements. TSLint also allows rule extensions, but with the official deprecation, the community is encouraged to migrate to ESLint, which offers better extensibility and a wider range of plugins.

  6. Adoption: PMD has been widely adopted across the Java community and is integrated into many development workflows. It is a mature tool with a proven track record. TSLint gained popularity as the go-to linting tool for TypeScript projects when it was introduced. However, with the deprecation announcement, the community is now actively transitioning to ESLint, which is becoming the new standard for TypeScript linting.

In summary, PMD and TSLint differ primarily in language support, integration options, rule sets, community support, extensibility, and adoption. While PMD is focused on Java but provides support for other JVM languages, TSLint is exclusively designed for TypeScript analysis. PMD has a broader range of integrations and rule sets, while TSLint benefits from a specific focus on TypeScript. However, TSLint is now deprecated, and the community is actively moving towards ESLint for TypeScript linting.

Share your Stack

Help developers discover the tools you use. Get visibility for your team's tech choices and contribute to the community's knowledge.

View Docs
CLI (Node.js)
or
Manual

Advice on TSLint, PMD

Budi
Budi

Programmer

Aug 19, 2020

Review

I think you scan skip MongoDB for now and focussing on creating web component with Reactjs or Vue, I would also recommend to use TypeScript for type hinting support.

For styling, learn CSS first then upgrade to SASS/SCSS or LESS (pick one as mostly same concept) to make CSS more maintainable.

Also to improve your skill on both sectors, install linters if available. For TypeScipt, there are TSLint and for styling, i think there are Stylint. Linter will help you adapt to make a clean code and understand how other peoples usually styled their code.

41.6k views41.6k
Comments

Detailed Comparison

TSLint
TSLint
PMD
PMD

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.

It is a source code analyzer. It finds common programming flaws like unused variables, empty catch blocks, unnecessary object creation, and so forth. It includes CPD, the copy-paste-detector.

Extensive set of core rules; Custom lint rules; Custom formatters (failure reporters); Configuration presets; Composition; Automatic fixing of formatting & style violations
supports multiple languages; enforce a coding standard for your codebase; built-in checks
Statistics
GitHub Stars
-
GitHub Stars
5.2K
GitHub Forks
-
GitHub Forks
1.5K
Stacks
3.4K
Stacks
46
Followers
234
Followers
111
Votes
0
Votes
0
Integrations
Vim
Vim
Visual Studio Code
Visual Studio Code
TypeScript
TypeScript
Atom
Atom
WebStorm
WebStorm
Emacs
Emacs
gulp
gulp
Sublime Text
Sublime Text
Visual Studio
Visual Studio
Grunt
Grunt
Gradle
Gradle
Windows
Windows
Java
Java
Linux
Linux
macOS
macOS

What are some alternatives to TSLint, PMD?

Code Climate

Code Climate

After each Git push, Code Climate analyzes your code for complexity, duplication, and common smells to determine changes in quality and surface technical debt hotspots.

Codacy

Codacy

Codacy automates code reviews and monitors code quality on every commit and pull request on more than 40 programming languages reporting back the impact of every commit or PR, issues concerning code style, best practices and security.

Phabricator

Phabricator

Phabricator is a collection of open source web applications that help software companies build better software.

PullReview

PullReview

PullReview helps Ruby and Rails developers to develop new features cleanly, on-time, and with confidence by automatically reviewing their code.

Gerrit Code Review

Gerrit Code Review

Gerrit is a self-hosted pre-commit code review tool. It serves as a Git hosting server with option to comment incoming changes. It is highly configurable and extensible with default guarding policies, webhooks, project access control and more.

SonarQube

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.

RuboCop

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.

CodeFactor.io

CodeFactor.io

CodeFactor.io automatically and continuously tracks code quality with every GitHub or BitBucket commit and pull request, helping software developers save time in code reviews and efficiently tackle technical debt.

ESLint

ESLint

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

Amazon CodeGuru

Amazon CodeGuru

It is a machine learning service for automated code reviews and application performance recommendations. It helps you find the most expensive lines of code that hurt application performance and keep you up all night troubleshooting, then gives you specific recommendations to fix or improve your code.

Related Comparisons

GitHub
Bitbucket

Bitbucket vs GitHub vs GitLab

GitHub
Bitbucket

AWS CodeCommit vs Bitbucket vs GitHub

Kubernetes
Rancher

Docker Swarm vs Kubernetes vs Rancher

gulp
Grunt

Grunt vs Webpack vs gulp

Graphite
Kibana

Grafana vs Graphite vs Kibana