From: Matthew D Swank
Subject: Will Clinger's Types Rant
Date: 
Message-ID: <pan.2005.09.26.16.39.07.753902@c.net>
I was going to post this in the 'What's so great about lisp?' thread since
there are several brush fires in that thread on the efficacy of static
typing, but those sub-threads are all over the place.  So... 

Could anyone who saw Will Clinger's talk at this year's ILC explain the
gist of this slide:
http://www.ccs.neu.edu/home/will/Research/ILC2005/Slides/typesrant6.html

I have an idea what he might be talking about, but I wasn't there.

Thanks,

Matt

-- 
"You do not really understand something unless you can
 explain it to your grandmother." — Albert Einstein.

From: Matthew D Swank
Subject: Re: Will Clinger's Types Rant
Date: 
Message-ID: <pan.2005.09.26.16.56.13.77287@c.net>
On Mon, 26 Sep 2005 11:39:08 -0500, Matthew D Swank wrote:

> Could anyone who saw Will Clinger's talk at this year's ILC explain the
> gist of this slide:
> http://www.ccs.neu.edu/home/will/Research/ILC2005/Slides/typesrant6.html
> 

Also, I noticed that Clinger liked John Allen's talk about the future of
software engineering.  This is interesting, since one of the conclusions
Allen reaches is that engineers will end up providing guarantees about
software through the use of (static) type-systems.  How does this fit into
the lisp/scheme world?

Matt

-- 
"You do not really understand something unless you can
 explain it to your grandmother." — Albert Einstein.
From: Jon Harrop
Subject: Re: Will Clinger's Types Rant
Date: 
Message-ID: <433c6696$0$49773$ed2e19e4@ptn-nntp-reader04.plus.net>
Matthew D Swank wrote:
> Also, I noticed that Clinger liked John Allen's talk about the future of
> software engineering.  This is interesting, since one of the conclusions
> Allen reaches is that engineers will end up providing guarantees about
> software through the use of (static) type-systems.  How does this fit into
> the lisp/scheme world?

Well, you start by using Lisp's "macros" and "code as data" to "embed" a
statically typed language... ;-)

-- 
Dr Jon D Harrop, Flying Frog Consultancy
http://www.ffconsultancy.com
From: William D Clinger
Subject: Re: Will Clinger's Types Rant
Date: 
Message-ID: <1127766257.817002.282480@g43g2000cwa.googlegroups.com>
Matthew D Swank wrote:
> Could anyone who saw Will Clinger's talk at this year's ILC explain
> the gist of this slide:
> http://www.ccs.neu.edu/home/will/Research/ILC2005/Slides/typesrant6.html

I didn't see that talk either, but the audio for it is online at
http://www.international-lisp-conference.org/2005/media/clinger-audio.mp3

(Get him!)

Will
From: Matthew D Swank
Subject: Re: Will Clinger's Types Rant
Date: 
Message-ID: <pan.2005.09.26.20.28.50.646811@c.net>
On Mon, 26 Sep 2005 13:24:17 -0700, William D Clinger wrote:


> I didn't see that talk either, but the audio for it is online at
> http://www.international-lisp-conference.org/2005/media/clinger-audio.mp3
> 

Thanks! (I don't know how I missed that)

Matt

-- 
"You do not really understand something unless you can
 explain it to your grandmother." — Albert Einstein.
From: Ulrich Hobelmann
Subject: Re: Will Clinger's Types Rant
Date: 
Message-ID: <3pqtqfFbqgdmU1@individual.net>
Matthew D Swank wrote:
I didn't see him, but here's my two cents anyway.

> http://www.ccs.neu.edu/home/will/Research/ILC2005/Slides/typesrant6.html

Hm, strong typing could be something like verifying that the if and else 
clause of a function return values of the same type, as that is 
obviously important if the caller is to rely on that.

Strongarm typing might be something like C requiring you to declare a 
struct just so you can return more than one value from a function.

> I have an idea what he might be talking about, but I wasn't there.

Same here.

Optional type checking provides exactly the above, and doesn't prevent 
code from being run.

-- 
Some people like democracy.  That's because it does whatever the 
majority wants, and because they happen to be part of that majority.
"Do you want the Total War?"
From: Ray Blaak
Subject: Re: Will Clinger's Types Rant
Date: 
Message-ID: <u3bnrsldl.fsf@STRIPCAPStelus.net>
Ulrich Hobelmann <···········@web.de> writes:
> Matthew D Swank wrote:
> I didn't see him, but here's my two cents anyway.
> 
> > http://www.ccs.neu.edu/home/will/Research/ILC2005/Slides/typesrant6.html
> 
> Hm, strong typing could be something like verifying that the if and else
> clause of a function return values of the same type, as that is obviously
> important if the caller is to rely on that.

I wouldn't think so. It should mean that the type of something cannot be
abused or violated, i.e. interpreted as a value of another type. Perl "is it a
string or a number" values are a great example of the violation of strong
typing.

Note that I am not touching on statically versus dynamically typed here. Lisp
is a dynamically strongly typed languages in that you cann't abuse the type of
a value. A language like Ada is statically strongly typed, relying less on the
runtime side and instead making the bindings strongly typed. A language like
ML seems make things so that you can't tell the difference: your very thoughts
must be strongly typed.

> Strongarm typing might be something like C requiring you to declare a struct
> just so you can return more than one value from a function.

I would guess forcing one to do that things that make statically typed
languages tedious: force everything to be explicitly
declared/constructed/proved/whatever.

-- 
Cheers,                                        The Rhythm is around me,
                                               The Rhythm has control.
Ray Blaak                                      The Rhythm is inside me,
········@STRIPCAPStelus.net                    The Rhythm has my soul.
From: Charles Hoffman
Subject: Re: Will Clinger's Types Rant
Date: 
Message-ID: <cr94f.437319$x96.434663@attbi_s72>
Ulrich Hobelmann wrote:
> Matthew D Swank wrote:
> I didn't see him, but here's my two cents anyway.
> 
>> http://www.ccs.neu.edu/home/will/Research/ILC2005/Slides/typesrant6.html
> 
> 
> Hm, strong typing could be something like verifying that the if and else 
> clause of a function return values of the same type, as that is 
> obviously important if the caller is to rely on that.
> 
> Strongarm typing might be something like C requiring you to declare a 
> struct just so you can return more than one value from a function.
> 
>> I have an idea what he might be talking about, but I wasn't there.
> 
> 
> Same here.
> 
> Optional type checking provides exactly the above, and doesn't prevent 
> code from being run.
> 

I didn't RTFA yet but I felt the need to caution us about not confusing 
static typing and strong typing, which are different things.  Static 
typing is when types can be determined at compile time, i.e. are 
specified in the text of the code; dynamic typing is when type-checking 
waits until runtime.  Strong/weak typing is another dimension, dealing 
with how strictly types are enforced.  Lisp/Scheme is strongly (= only 
works on numbers, for instance), but dynamically, typed.  C is 
statically, but more weakly, typed.  An example of very strong static 
typing would be Ada.

--ch--
From: Ulrich Hobelmann
Subject: Re: Will Clinger's Types Rant
Date: 
Message-ID: <3rcujsFiunq3U3@individual.net>
Charles Hoffman wrote:
> Ulrich Hobelmann wrote:
>> Matthew D Swank wrote:
>> I didn't see him, but here's my two cents anyway.
>>
>>> http://www.ccs.neu.edu/home/will/Research/ILC2005/Slides/typesrant6.html
>>
>>
>> Hm, strong typing could be something like verifying that the if and 
>> else clause of a function return values of the same type, as that is 
>> obviously important if the caller is to rely on that.
>>
>> Strongarm typing might be something like C requiring you to declare a 
>> struct just so you can return more than one value from a function.
>>
>>> I have an idea what he might be talking about, but I wasn't there.
>>
>>
>> Same here.
>>
>> Optional type checking provides exactly the above, and doesn't prevent 
>> code from being run.
>>
> 
> I didn't RTFA yet but I felt the need to caution us about not confusing 
> static typing and strong typing, which are different things.  Static 
> typing is when types can be determined at compile time, i.e. are 
> specified in the text of the code; dynamic typing is when type-checking 
> waits until runtime.  Strong/weak typing is another dimension, dealing 
> with how strictly types are enforced.  Lisp/Scheme is strongly (= only 
> works on numbers, for instance), but dynamically, typed.  C is 
> statically, but more weakly, typed.  An example of very strong static 
> typing would be Ada.

Yes, I meant static strong typing, thanks.  "Optional type checking" 
should read "optional static checking."

-- 
Blessed are the young for they shall inherit the national debt.
	Herbert Hoover