[r6rs-discuss] Proposed features for small Scheme, part 1: a stake in the ground
Thomas Lord
lord at emf.net
Fri Sep 4 13:28:37 EDT 2009
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
More information about the r6rs-discuss
mailing list