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
