On Tue, Apr 15, 2008 at 7:54 PM, Eleanor McHugh
<eleanor / games-with-brains.com> wrote:
> On 15 Apr 2008, at 13:28, Michael Neumann wrote:
>
> > You will never ever be able to use Ruby for aviation software, neither
> > Lua, Python, Perl etc.

> > Well, in the case of safety critical software, you don't want to have
> runtime exceptions. This software must not have errors, at least it's
> desirable ;-)
> >
>
>  There's nothing wrong with runtime exceptions so long as you figure out
> what the correct fail-safe behaviour of the system is and make sure it takes
> it. In fact for high-spec aviation systems where there's a statistical risk
> of cosmic ray interference flipping bits at run-time I'd want to see the
> fail-safe strategy before I even considered the rest of the system desing
> (although admittedly that was a consideration that always made me laugh when
> I was doing my CAA certifications ;).

This argument is giving me a flash back to a decade or two ago.

Bjarne Stroustrup used to use the same argument against Smalltalk,
saying that he wouldn't want to fly in an airplane whose autopilot
could throw a MessageNotFound exception.

I would counter argue saying that I'd rather fly on that plane than
the one with the C++ autopilot which instead would branch to a random
location because a dangling pointer caused a branch to a virtual
function through a virtual function table which really wasn't a
virtual function table anymore.

> > Duck-typing doesn't guarantee you anything at compile-time.
> >
>
>  True. But nothing guarantees you anything at run-time, including 100%
> compliance at compile-time. That's why most CS and IS degrees have lectures
> explaining the difference between Verification (what your compiler does) and
> Validation (what you do before you start coding).

Amen, Sister!  And languages which rely on static typing have a
tendency to do much more random things when things go wrong.  Language
like Ruby tend to have a more vigilant runtime.

-- 
Rick DeNatale

My blog on Ruby
http://talklikeaduck.denhaven2.com/