"The value of comments should be obvious: in general, the clarity of a program is directly proportional to the number of comments." --David Canfield Smith, "MLisp Users' Guide" Stanford Artificial Intelligence Project, Memo AI-84, page 5.
I guess Mr. Smith never bumped into one of those programmers (we've all seen them), who do things like this:
i=i+1;
// add 1 to i
Such programmers fill the source with comments that contribute nothing to the understanding of the flow of the program. Or, how about someone who does this:
/*$foo='baz';
[Ed: snipped about three hundred lines ]
*/$a++;
printf('hello, world!');
The Smith Conjecture, as I do here and now dub it, is fatally flawed, doomed to be replaced with: "Programmers are in a race with the Universe to create bigger and better idiot-proof programs, while the Universe is trying to create bigger and better idiots. So far the Universe is winning." (Richard Cook).
Perhaps, if the whole world were full of Donald Knuths, whose literate programming considered every bit of code as being like a piece of literature, things would be different. However, we have a lot more blub programmers running around abusing comments to their maximum. I would also argue that few real life systems can afford to self-document, whether done by hack programmers or true craftsmen. If you are building anything that is needed, there is probably little room for this approach because the world will keep changing and it will continue to change at such a rate that you cannot write another book every time it does.