Re: Free C++compilers for a classroom
On Sep 26, 3:56 pm, "Alf P. Steinbach" <al...@start.no> wrote:
* Pete Becker:
On 2007-09-26 07:40:15 -0400, James Kanze <james.ka...@gmail.com> said:
On Sep 25, 3:45 pm, "Alf P. Steinbach" <al...@start.no> wrote:
Well, I don't think they forbid learning.
Which is why they would forbid debuggers, since use (or at least
abuse) of a debugger prevents learning how to reason about your
program.
Tom DeMarco, in his book "Managing Software Projects" (I think that's
the title), suggested that developers not be allowed to use compilers.
Compiling should be part of the test suite. I suspect he was kidding,
but it's a good point, which I've seen stated as: "A fool with a tool is
still a fool."
As I recall IBM tested the "no compiler" theory in Australia, and it was
a disaster... ;-)
As I recall, it's still being used for a number of critical
systems, where quality is of the utmost importance. It does
reduce the probability of an error in the final code somewhat,
but I'm not convinced that it's cost effective overall; a
compiler can check for things like typos a lot faster and a lot
cheaper than a code reviewer can.
The same thing doesn't hold for a debugger, though. First, of
course, a debugger doesn't detect the presence of an error to
begin with, and can only be used if you have an actual test case
which systematically triggers the error. And even when the
error occurs systematically, it's far more cost effective to
find it in code review than in a test, and if you find it in
code review, the exact error is already known, so you don't need
a debugger. (Also, if you have good, low level unit tests, just
reviewing which tests pass, and which fail, should indicate
fairly well where the error is located.)
--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orient=E9e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S=E9mard, 78210 St.-Cyr-l'=C9cole, France, +33 (0)1 30 23 00 34