In general it is always a good idea to run static checkers through the code. It catches some obvious mistakes and helps maintain a readable code base — at least most of the time. But some checkers are quite aggressive, or some rules may be too outdated or simply don’t match the preferred coding style of the programmer.
Nevertheless, here are my two cents on linters and other static checkers:
- CoffeeScript is usually fine, though it is not a bad idea to give CoffeeLint a run every once in a while.
- HTML: nah, why bother (there’s the validator though)
- CSS: don’t write CSS, write LESS or SASS/Compass
- Go: always run
Python: well, that’s a tricky one…
pyflakesis a must, it will catch not just errors, but things like unused imports and locals, re-defined variables and such.
pep8should be run too, but you may want to disable some checks if you’re like me (I don’t quite agree with the visual/hanging indent rules and sometimes I don’t want to try and fit in <79 char lines)
autopep8can be useful sometimes, though it is best to not let things out of hand so much to need it in the first place
flake8is a handy combination of
pylintis useful but very strict; it will force you to split functions but won’t let you use too many function arguments; but at least it will rate your code on a 1-10 scale.
For less-strict checkers like
pyflakes, it is a good idea to
install them as commit hooks. There are also vim plug-ins for most of
these, so you see the problems right as you edit the file (or when saving). The
advantage of of the static regex-based checkers is that they are fast enough to
run on every change you make to the buffer.