Flying With Python (Strong versus Weak Typing)
tanzer at swing.co.at
Wed Mar 12 18:05:28 CET 2003
Peter Hansen <peter at engcorp.com> wrote:
> Dennis Lee Bieber wrote:
> > laotseu fed this fish to the penguins on Tuesday 11 March 2003 06:41 pm:
> > > Second thing :
> > > Ariane crashed because of a bug in an ADA module. ADA is very strongly
> > > *and* statically typed.
> > >
> > The module was fine -- for the previous generation of Ariane.
> > If I read correctly, one of the reports available on-line, the closest
> > one can come to is that the module which failed was not coded to trap
> > an exception condition and recover.
> There was a lengthy discussion of this in the Extreme Programming
> mailing list at one point. I can't recall the conclusion, but
> after rereading your quotations it seems to me that this is a
> case where adequate testing could have "easily" identified the problem.
> It would be interesting to know what tests where actually done,
> but my guess is that unit tests for the individual routines
> involved was not one of them, or that those tests where quite
> inadequate (not checking behaviour in the case of an out-of-bounds
> value, for example).
The real story is much more complicated. I don't remember all the
details, but here are some that I do remember:
- The developers looked at the code that later failed and decided that
it was safe to skip the exception handling -- this saved some CPU
cycles they needed.
- When the Ariane 5 was developed, the code was reused but ESA didn't
want to spend money on a full system test.
- If they had used the same level of paranioa during the porting of
the code as during initial developmont they'd most probably found
the bug in time.
Disclaimer: my memory used to be better. If you want to know what
really happened go read the original report (most commentators
interpreted the facts in the light of pushing their own silver bullet
Christian Tanzer tanzer at swing.co.at
Glasauergasse 32 Tel: +43 1 876 62 36
A-1130 Vienna, Austria Fax: +43 1 877 66 92
More information about the Python-list