Could Python supplant Java?
joeking at merseymail.com
Thu Aug 22 17:30:48 CEST 2002
Duncan Booth <duncan at NOSPAMrcp.co.uk> wrote in message news:<Xns927187BBC8CACduncanrcpcouk at 127.0.0.1>...
> joeking at merseymail.com (FISH) wrote in
> news:dbc5020.0208210349.3aca6686 at posting.google.com:
> >> Programs *should* be tested before shipping
> >> (ok, I know it's a dream but... )
> > Software testing is the *LAST* line of defense against bugs,
> > not the *FIRST* !!! ;-)
> Oh dear. I can see there is a fundamental point of disagreement here.
> My viewpoint is that software testing is the *FIRST* line of defense
> against bugs. It may also be the last line and several other lines in
> between: TDD doesn't remove the need for later stages of testing, it just
> reduces the cost of them.
Erm... when I used the terms 'last' and 'first' I meant them
rhetorically, not literally (ie: not as in chronological order).
Actually, I was wrong, because the *FIRST* line of defense is
a good design to work from. Everything else is just there to
catch the errors in the design and the implementation of said
> You write a test. You run it. IT FAILS. This is important. If it passes,
> then there is something wrong with the test, or with your understanding of
> what the code already does. Now you write some code, the absolute minimum
> that allows the test to pass. Now you run the tests again.
[extended explaination of testing snipped...]
But why remove one layer of the testing - that is to say a
compiler's ability to check you are putting the right data
in the right places?
If you read back through what I actually wrote, you'll see I
don't advocate static typing as an *alternative* to testing,
but as a way to *compliment* testing. Another tool in the
arsenal, so to speak. Plus, I freely admit that dynamic
typing can be useful in circumstances where the codebase is
tight enough for static checking to be overkill...)
That's why we have different languages with different
approaches for different jobs... surely?
More information about the Python-list