[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Icon

> Date: Mon, 24 Dec 2001 09:27:20 -0500 (EST)
> From: Guy Steele - Sun Microsystems Labs <gls@labean.East.Sun.COM>
>    From: Matthias Felleisen <matthias@ccs.neu.edu>
>    To: gls@labean.East.Sun.COM
>    Cc: ll1-discuss@ai.mit.edu
>    Subject: Re: Icon
>    Date: Mon, 24 Dec 2001 09:12:19 -0500 (EST)
>       A few years back I spent 15 minutes implementing and running a minimini
>       thread system in Scheme using call/cc and nothing else. A person who had
>       worked on the SML/NJ compiler tried to mimic the idea in SML and spent 
>       2 hours getting the types right. Yes, when his code ran, it was correct. 
>       But is it worth the price>
> Not for a minimini thread system.  But for an industrial-strength
> thread system to be deployed and used by thousands of people,
> it might well be worth the investment.  A strong type system would
> strongly increase my confidence that an extension added to the system
> a year later would not introduce bugs.
> --Guy

Which leads me to something I've wondered about for a long time.  Why
aren't there statically-typed dialects of lisp and scheme?  I'm thinking of
something similar to ML with s-expression syntax.  Is it because the
s-expression syntax is too cumbersome to use with explicit type
declarations?  I know Curl has optional static types, and I've heard of at
least one attempt to add them to scheme (from Indiana IIRC).  I know common
lisp has type declarations, but most CLs just use them for optimization
rather than correctness checking.  Of course Dylan has optional types
(static or dynamic as the case may be) but doesn't use s-expression

Don't get me wrong; I have no objection to type inference or soft typing
like PLT Scheme has had (and will have more of).  But for >80% of the code
that I write, I know what the types of the variables are supposed to be,
and it's annoying that I can't annotate the code accordingly.