I've used such tools professionally a lot. Face it, your boss will want an estimate of when it will be done, and different programs have different complexity and that affects how fast you work.
I've done, for old VB6, a code statistics generator. Pretty simple, but it gave a good sense of how complex a project was. It calculated (among other things):
* Number of lines.
* Percentage empty lines.
* Percentage of comment lines (any line that had a comment, either full line or simply the end of the line).
* Average line length (blank lines excluded).
* Median line length (blank lines excluded). Useful for getting a sense of how "meaty" the lines are. Probably should have done a histograph on line length as well as I had collected the data anyway to calculate median), but didn't get around to it.
* Number of declared external DLL functions.
* Number of variables.
* Number of subs.
* Number of forms.
* Number of controls in forms.
* Number of classes.
* Number of selections (if, select...).
* Number of iterations (for, do...).
* Number of selections/iterations adjusted for complexity (first nesting level counted as 1, second for 2 et cetera).
* Number of recordsets.
With this, it was easy to estimate the complexity of a program. For example, a typical database frontend had a reasonable amount of database recordsets, realtively short lines, many forms and Controls, relatively few subs and low complexity (nesting). However, a complex data grinding system had many more recordsets, longer lines, fewer forms and controls, more variables, more arrays, more selections/iterations, much higher complexity (nesting), more classes and so on. Other warning signs for complexity is many declared external DLL functions, many file operations, many UDT's and so on.
It's easy to run the tool on the project, and then see that, for the more complex project, a change will take longer, and we'll need to put a more experienced programmer on it. For the database frontend, it's faster and it's simpler programming, so we can put a newbie on it.
This allowed us to accurately estimate how long a change would take, taking into account the specifics of the project. When you bill the customers for your time, you need to be accurate.