7 comments

[ 3.4 ms ] story [ 25.8 ms ] thread
Lisp attracts hot-air punditry the same way Ruby attracts aerosol-based beauty products.
There wasn't much hot air after the title, I thought it was a pretty even handed comparison.
I found it superficial and bordering on mistaken.

  This problem [of software libraries] was definitely recognized by the Scheme community, and was “solved” in R6RS. However, R6RS seems to have been a flop...
I've heard this argument before (R6RS is a flop), but no-one can give me any logical reason why this is the case. I wish Scheme implementors would stop dragging their feet and implement R6RS already! Only with a portable library mechanism (specified in R6RS) can Scheme users like myself begin the effort of building a standard library platform for all Scheme implementations.
> ... but no-one can give me any logical reason why this is the case.

If you search the c.l.s archives, you can find the various reasons.

> I wish Scheme implementors would stop dragging their feet and implement R6RS already!

My limited understanding of the situation is as follows:

R6RS made it through the standards process even though a substantial number of implementors and practitioners weren't happy with it. Many refused to implement R6RS, or else ignored it, but some big players did implement it. After that, it was a stalemate for a while, with the community divided.

Then the current steering committee decided that this rift needed to be repaired. I think they saw that some Schemers wanted to keep Scheme small, while others wanted it to be more practical and include more "batteries". Read more about their conclusions and plans at http://www.scheme-reports.org/ (strangely (or perhaps not so strangely?), I can't find a link to that site from schemers.org)...

The long and the short of it is, to reunite the community, the steering committee decided to define Scheme (R7RS) as a small core language ("wg1") + a superset of features/libraries that most people are using in one way or another anyway ("wg2"). If an implementor only wants to implement wg1, then that's fine, and it's mostly like R5RS anyway. If they want to provide a full-featured batteries-included implementation, then they implement wg1 + wg2 (which will take the best and least controversial features from R6RS and probably also draw heavily from the SRFI's). This satisfies both the "keep it small!" faction and the "we want more practical stuff included!" faction.

As we speak, the R7RS wg1 and wg2 groups are working out the kinks for their respective proposals / public reports, with votes and discussions actively taking place. I think R7RS is going to have broad support and be rapidly adopted.

> I wish Scheme implementors would stop dragging their feet and implement R6RS already!

Would you stop dragging your feet after your hard work has been trashed? That's what happened with R6RS, which ignored established and widely supported SRFIs for no other reason than to provide its own. Yes, support for SRFIs is not mandatory in further Scheme standards, but I think it's reasonable to expect that discarding already-done work only happens after motivating it.

I really didn't like this attitude of the Scheme community as a whole, and as a result, I've chosen Common Lisp as the Lisp to learn.

Aw, why doesn't he mention Racket (formerly PLT Scheme)? I've been playing around with it since I saw it on HN a few weeks ago and it's a nifty implementation. DrRacket is a great environment, and it seems like it has good library support - both lots of things available, and easy to drop in to your code, with (require ...).