"Strong typing vs. strong testing"

Seebs usenet-nospam at seebs.net
Fri Oct 1 16:44:53 CEST 2010

On 2010-10-01, RG <rNOSPAMon at flownet.com> wrote:
> Again, you can't have it both ways.  Either a warning is a "compiler 
> error" according to the claim at issue (see below) or it is not.  If it 
> is, then this is a false positive.

No, it isn't.  It's a correctly identified type mismatch.

You keep moving the goal posts from the actual standard of a false positive
(the compiler warns that something is of the wrong type when it's not of
the wrong type) to a made-up standard (the compiler warns that something is
of the wrong type when it is indeed of the wrong type, but could be safely
converted to the right type).

It doesn't matter whether, in a given case, you *could* safely perform
the conversion.  If you don't perform the conversion, and the compiler points
this out, that's not a false positive.

>> Those goal posts are sorta red shifted at this point.

> At this point I would like to quote a wise man who once said:

>> May I suggest that, if you don't want to use words and terminology
>> precisely, perhaps computer programming is not for you?

> Red shifted?

Moving away fast enough that their color has visibly changed.

> The truth of this claim hinges on the definitions of "work", "never blow 
> up", "invalid", "call incorrectly" and "compile error."  Define these 
> however you like, the result will be that the claim is either false or 
> vacuous.

Not really.  If you use the most obvious and natural meanings *for a
statically typed language*, it is obvious that it is true.

And indeed, significantly so.  In the real world, programs written in
scripting languages with runtime typing are fairly likely to throw occasional
exceptions because something is of the wrong type.  In a statically typed
language, the of-the-wrong-type is something which can, by definition, be
caught at compile time.

The fundamental thing you seem to be getting stuck on is that you're assuming
that if a conversion could be made, that it should be and it should be
automatic and silent.  That, however, is at odds with discussion of a
statically typed language.  There's a reason we have the option of converting
things from one type to another.

Copyright 2010, all wrongs reversed.  Peter Seebach / usenet-nospam at seebs.net
http://www.seebs.net/log/ <-- lawsuits, religion, and funny pictures
http://en.wikipedia.org/wiki/Fair_Game_(Scientology) <-- get educated!
I am not speaking for my employer, although they do rent some of my opinions.

More information about the Python-list mailing list