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

A Minimalist Standard

> If Scheme is to be a vehicle for research and experimentation, then I
> forsee little problem, but as Scheme becomes more of a development
> language for delivering other applications (eg., TI's Personal
> Consultant), then there will be considerable pressure to "standardize"
> the non-standard parts of the language.  For example, many of us at TI
> have succumbed to the use of multiple values as part of our Scheme
> language - not to investigate multiple values but to use it in larger
> efforts. 
> I don't have a solution to this problem, but I think that something
> more than a minimalist approach will become necessary.  The language
> must be "sufficient" for significant development as perceived by the
> users.

I think we can reasonably hope to have our cake and eat it too.  A
"minimalist" standard is necessary now because it's the only kind we
can hope to get agreement on any time soon.  It also establishes what
kind of language Scheme is---a very important point to many of us who
are fearful of any standardization.

I also think it is sufficient, even for the case you mention (users
writing non-trivial applications who need more features than exist in
the minimalist standard).  Such "features" need to be debated among
the implementors and alternatives placed before the user community as
parts of packaged Scheme products.  They need to prove themselves
before they are considered for standardization.  I think the informal
approach has worked so far, and should continue to be used.  Macros,
opaque objects, etc., can and should be worked out informally and
incorporated in a later revision.

One of the problems with the Common Lisp standardization process is
that the existence of holes---like a real LOOP macro or a standard
Object programming paradigm---has resulted in *design* going on
instead of *ratification*.  We don't need to do that.

I support the minimalist approach, which I take to mean (roughly)
blessing R3RS with minor fixup (e.g. the numbers proposal from last
June, but not macros (and throw out DO??)).  The segregation of
essential, inessential, and "yellow pages" is already there.