It has taken about seven months to get the next release of Checkstyle out the door. This is quite a long time between releases. I put this down to:

  • Checkstyle's maturity, there is not a lot of low hanging fruit
  • The developers having family distractions, like new children

Both good things. I got asked by Bill Venners for a quote for the latest release. It got posted here, but here is what I said:

Put simply, Checkstyle is a tool for enforcing coding standards. It has a modular design that allows specific checks to be configured, and Checkstyle is easily extended by writing custom checks. The architecture is geared towards performance, allowing for Checkstyle to run quickly and operates by analysing the source code. There is some overlap with tools like PMD and FindBugs, but these tools focus more on design bugs and run much slower. Personally I recommend running all three tools on any project.

The 4.2 release contains a number of bug fixes and minor enhancements, the most significant being support for suppressing errors at a finer level than the check class name. To explain how this is useful, imagine you configure the GenericIllegalRegexp check twice, once to detect trailing white space (to reduce conflicts on code merges) and another to detect calls to "System.out". Previously it was not possible to just suppress the check to detect calls to "System.out".