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

Re: Why would anyone want opacity?

From: Shriram Krishnamurthi <shriram@cs.rice.edu>
Subject: Re: Why would anyone want opacity?
Date: Sat, 11 May 1996 03:45:32 -0500 (CDT)

> [Apologies for the previous message: Emacs key-slippage.]
> Matthias Blume wrote:
> > This can all be done with sum types. [...]
> > If you want to write a piece of code in ML where you want to leave the
> > number type and the primitive operations over those numbers open, then
> > you write it as a functor. [...]
> > Furthermore, what you want to do here can easily be done by, again,
> > using a functor. [...]
> > So I wouldn't consider this taking anything away.  But new rules are
> > new rules, and sometimes one has to change an old habit or two in
> > order to comply.
> I, for one, am rather unsure about exactly what Matthias Blume is
> trying to say here (in general).  It sounds like he would like Scheme
> to adopt some form of static type-checking (if not, why else does he
> repeatedly talk about it?).  Perhaps he would like the adoption of an
> ML-style module system too.  Indeed, he feels that little will be lost
> in adopting these systems, with the implication that such an adoption
> should be considered.

I have not suggested any of that.  Yes, I am in favor of static typing
and abstractions (but don't demand their addition to Scheme at the
moment).  The reason why we have this thread here is because I have
been accused of trying to take some king of `freedom' away from those
who feel restricted by types, and of trying to impose my `intellectual
crutches' upon those who don't need them.

My reply was an attempt to show that what I want amounts to none of
this, or -- if it does -- that similar restrictions, abstractions, and
`crutches' have been accepted happily before.  The previous letter, to
which I was responding, was apparently supposed to be some kind of
`challenge' where I was *asked* to explain how I would do certain
things in the language of my liking.

> If this is not his intent, then I'm unsure of his point.  Surely it's
> not merely education, since many in this discussion _know_ what he's
> talking about; they just don't want to accept it into Scheme.

I have given up the hope that a language matching my preferences will
ever be called Scheme again.  But then, this isn't a big deal -- I
don't really care what the name of my favorite language is.

> But adding all -- even some -- of these things to Scheme will
> radically alter the nature of the language.  Go far enough along that
> line, and the only thing to distinguish Scheme and ML will be their
> syntax.  So I can't imagine this is what he wants either.
> What's the bottom-line, then?  What's the agenda?

I don't know what the bottom line is.  What I like about Scheme is
this: uniform syntax and macros.  There is indeed nothing else left
that I wouldn't be able to find elsewhere.  I am not arguing in favor
of ML-sytle types or modules for Scheme (just yet), because I don't
know how to make them work with hygienic macros, which I consider the
only remaining unique feature of Scheme (even though they aren't even
in the language definition/report proper).