I think a goal of every developer is to over time be able to write commentless code. Code that self expresses itself is beautiful code. I wouldnt go so far as to say its an excuse to write bad code, but a lot of people dont have enough experience or ability to write code that requires little or no commenting. It takes a long time, a lot of practice and experience.
Bottom line, as you get older and grow fatter, your comments should get thinner ;)
EDIT: In case others wish to downvote me for whatever reason, just to make it clear this is in general and does not go into detail about commenting complicated intentions, etc. If you disagree, put a comment so i at least know what your disagreement is. How the hell are we supposed to learn from each other with silence.
EDIT2: just figured i would add a little extreme snippet
//This check makes sure the nuclear reactor is within normal parameters
if(a < 5 && b > 8 && c == 9)
{
...
...
}
This should be refactored for 3 reasons. Reduce commenting, increase readability, reuasability
if(IsNuclearReactorWithinNormalParams(a, b, c))
{
...
...
}
bool IsNuclearReactorWithinNormalParams(int coreTemp, int stackTemp, int reloopThreshold)
{
return coreTemp < CORE_OVERHEAT_TEMP && stackTemp > STACK_MIN_TEMP && reloopThreshhol == RELOOP_THRESHHOLD;
}
Look ma, no comments!
But even still the incoming params should also have been refactored and renamed to proper names so it is clearer. When you follow stuff such as this your commenting becomes reduced by a huge factor. ESPECIALLY when it is a mission ciritical app. Comments alone just dont cut it in mission critical apps.