Splitting the Scheme language
Aug. 24th, 2009 01:28 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Thanks to LtU for the pointer to this interesting post from the Scheme Steering Committee.
Summary: the Scheme community is starting to realize that you can't really have it both ways -- a truly focused teaching language isn't going to have the bells and whistles demanded by real-world programming, and a "real" programming language is going to be full of fat that just gets in the way of research and teaching. So they're trying to move in the direction of splitting Scheme into two compatible dialects, a "small" language oriented towards the research and teaching side, and a "large" language that is intended for practical day-to-day programming. A specific agenda here is to incorporate enough into the "large" language that people stop needing to use enhanced dialects whenever they want to actually *use* Scheme for development.
Overall, sounds sensible to me. I don't know whether they'll be able to get enough community support and momentum to pull this off (and to head off the inevitable friction and religious wars), but it's a very practical approach to resolving the tensions within the community...
Summary: the Scheme community is starting to realize that you can't really have it both ways -- a truly focused teaching language isn't going to have the bells and whistles demanded by real-world programming, and a "real" programming language is going to be full of fat that just gets in the way of research and teaching. So they're trying to move in the direction of splitting Scheme into two compatible dialects, a "small" language oriented towards the research and teaching side, and a "large" language that is intended for practical day-to-day programming. A specific agenda here is to incorporate enough into the "large" language that people stop needing to use enhanced dialects whenever they want to actually *use* Scheme for development.
Overall, sounds sensible to me. I don't know whether they'll be able to get enough community support and momentum to pull this off (and to head off the inevitable friction and religious wars), but it's a very practical approach to resolving the tensions within the community...
(no subject)
Date: 2009-08-24 06:33 pm (UTC)One of the great things about having a macro system is that you can write extensions with different syntax. In at least some implementations, you can even redefine the reader to parse, say, C syntax rather than Scheme s-expressions. So why not just put all the "large language" stuff into optional libraries? The "core" language would need to standardize the basic stuff that all reasonable Schemes agree on anyway, plus enough about modules and macros to write and invoke those libraries in a portable way. Presumably the most popular of these optional libraries would come to be bundled with all the common implementations, so they would be a de facto standardized programming base.
We would still have to negotiate a common ground among the various module system, and among the various macro systems, but that seems more manageable than trying to standardize everything that any professional programmer anywhere might want in the language. And conceptually simpler than having a "small" language standard and a "big" language standard.
But I'm not a Scheme-language mucky-muck; this approach is so obvious that the committee must have thought of it and rejected it for some reason.
(no subject)
Date: 2009-08-24 08:32 pm (UTC)So yes -- I believe that much of the large language *is* simply a standard library. But since at least K&R C, that's been pretty normal...
(no subject)
Date: 2009-08-24 08:07 pm (UTC)