J
Jerry Coffin
[ ... ]
Unless you're postulating some kind of indeterminancy, a test can prove
the outputs that are produced for a given set of inputs. In a lot of
cases, you're not really out to prove anything new or different, but to
prove equivalence (e.g. that a fast computation produces a result that
agrees with a slower version to a specifed degree of precision). If you
want to call that something other than a "proof", you're welcome to do
so, but I don't think you accomplish much by doing so.
Yes, but the effect is pretty minimal when threading becomes an
important part of the program -- the tests only deal with the easiest
parts to get right.
[ ... ]
Concurrency is an optimization, so premature concurrency is simply one
form of premature optimization.
Testing, of neither kind, can never "prove" anything.
Unless you're postulating some kind of indeterminancy, a test can prove
the outputs that are produced for a given set of inputs. In a lot of
cases, you're not really out to prove anything new or different, but to
prove equivalence (e.g. that a fast computation produces a result that
agrees with a slower version to a specifed degree of precision). If you
want to call that something other than a "proof", you're welcome to do
so, but I don't think you accomplish much by doing so.
Right. And as soon as you empirically detect it's wrong, the TDD tests are there
to resist bugs as you change the code to make it right.
Yes, but the effect is pretty minimal when threading becomes an
important part of the program -- the tests only deal with the easiest
parts to get right.
[ ... ]
It is beyond obvious that one dumb window timer is not a realtime application
accessing raw hardware. Yet premature concurrency is indeed like premature
optimization - the root of all evil!
Concurrency is an optimization, so premature concurrency is simply one
form of premature optimization.