On Fri, 2009-09-04 at 12:15 -0400, John Cowan wrote:
> Grant Rettke scripsit:
> 
> > Don't people want a minimalistic "small language"?
> 
> So it seems, but why?


Because that accurately reflects a variety of
effective, useful implementation techniques
while at the same time giving rise to a rich and
robust semantics.

It was precisely that eerie way in which a tiny
core could be extremely expressive and powerful 
yet also easy to implement that defined Scheme
from the start.  That's the point of Art of the
Interperter and Rabbit.

In some sense, the standards process went wrong
sometime around R3 or R4.   Around that time 
it would have been nicer to lay down low-level,
non-hygenic syntactic abstraction, first class
environments, and user-defined disjoint types.
None of T, Oaklisp, or MIT Scheme had it perfect
but they did tend to point in The Right Direction.

Then Scheme would have been *done*.  My sense is
that, back then, there was a big push to make 
Scheme look more like a "normal" language - make
it more a more plausible-looking competitor to CL
and other commercially relevant languages.   A form
of (imo, misplaced) conservativism took hold and
we wound up having such arguments as whether or not
to distinguish false from nil.

Hygenic macros and modules would have been better
off as libraries.  The norm for a Scheme compiler
should be to optimize only for certain subsets and
libraries.

It's realistic - not easy, but realistic - to 
envision a very general interpreted Scheme with 
a decent run-time system and *multiple* compilers
for interesting subsets of programs.  The result 
would be something easy to implement (on par with but
a bit easier than JVM) which provided a nice 
seamless and open-ended computing environment encompassing
both dynamic, exploratory/on-line programming and 
optimizing compilation when you want it.

-t



_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to