Automatic rule checkers

The best way to get a team of developers to agree on some common rules is to have a tool that automatically enforces the rules. Failing that, the second best option is to have a tool that automatically detects rule violations, and then lets the programmer address them.

C++ and Python both have a long history, a large user base, and unfortunate design choices that make it easy for developers to accidentally write incorrect code. As a result, many tools exist to automatically detect clear-cut problems, as well as suspicious code constructs that may or may not be a problem, but will likely make the code harder to understand and maintain in any case. Finally, another common target automation is the enforcement of a consistent coding style across the entire codebase, which makes code easier to read.

All of these tools, and the kind of problems that they detect and correct, are heavily language-dependent. As a result, tools for each language will be introduced in a separate section. Please choose the language whose tooling you want to study: