Richard said:
It's perfectly easy to see how he is misrepresenting him. Reading code
is NOT the same as debugging code. The fact that I agree with Jacob for
pretty much all but the most trivial code is not the point. The point is
that Jacob was talking about debugging largish programs - not reading
the code.
In the following two paragraphs, "you" is "generic you".
If we may take it as read that nobody deliberately puts bugs into programs,
it may reasonably be concluded that *any* bug in a program represents a
failure of understanding of the code on the part of the programmer
responsible for that program. That is, even if you fully understand what
is meant to happen, the existence of the bug indicates that you don't
fully understand what is /actually/ happening. (If you did, you'd go
straight to the right place and fix the code!)
So debugging is a voyage of discovery - of increasing your understanding of
the code. You *cannot* debug code effectively without understanding that
code, and you *cannot* understand that code effectively if you have not
read (or even cannot read) that code. On the other hand, if you can read
the code and gain a full understanding of it, you can fix the bug.
Now, personally I *have* debugged quite a few programs written by other
people, a program of many more than 2000 lines, without using a debugger.
So I know it's possible to do so, if you are capable of reading and
understanding code. I'm not claiming that you can *always* do it, but you
can certainly do it sometimes. But Jacob Navia's claim is that you can
*never* do it. This does suggest that he can't read and understand
programs that big - because, if he could, he would surely have been able
to debug one or two of them at least, and therefore he would not have made
the "impossible" claim.
It is very likely that Richard Bos used reasoning of this kind when making
his statement. Since it's so obvious, he made the mistake of not spelling
it out. (In this group, it is often necessary to spell out the blindingly
obvious - and even then, some people don't get it.)
In fact from this discussion I would trust Jacob more that Richard since
he believes in using the right tools for the job rather than some
reliance on "reading the code"
I, too, believe in using the right tools for the job. The difference
between us appears to be that I don't normally consider the debugger to be
the right tool for the job (but I do accept that it is /sometimes/ the
right tool for the job), *for me*. I am quite happy to accept that
different people find different debugging techniques more effective.
Clearly, you find using a debugger to be very effective. Great! I salute
you for identifying and using a tool that you find useful. But I don't
quite understand your vehemence in suggesting that debugging *cannot* be
done effectively without such a tool.
or doing the awful printf and assert
approach which leads to heisenbugs.
In my experience, the infuriating nature of a Heisenbug is that the code
fails to work *unless* you execute it in a debugger. I've had that happen
to me quite a few times. This in itself makes debuggers less useful to me
than I'd like them to be.
Clearly, opinions differ.
Who appointed you judge and jury?
Where did I claim to be a judge and jury?
Richard is the man
making allegations about Jacob being "incapable" of reading code. This
was a lie. Pure and simple.
It is a reasonable interpretation of a statement made by Jacob Navia.
So, maybe YOU should apologise?
Maybe I should, and maybe I shouldn't. Perhaps you should make it clear
what it is that you think I should maybe apologise for.
Where do you get off slandering Jacob all the time? Amazing.
Cite?