[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Request for feedback on SRFI-126

From: Panicz Maciej Godek
Subject: Re: Request for feedback on SRFI-126
Date: Sun, 27 Sep 2015 21:00:46 +0200

while I have nothing to say regarding the details of your SRFI, I find some of your motivations questionable, and therefore I decided to write this reply. Forgive the somewhat "negative" tone of this e-mail, despite my intentions being positive.

I've made pretty fine experiences with R7RS-small so far[0][1][2][3],
and after seeing people's disdain towards R7RS-large's direction and
agreeing with them (although I wouldn't trust my own judgment alone),
I've decided to try pushing R7RS-large in a somewhat better direction.

It is unclear to me what do you mean by "better direction", and in particular, how do you judge which direction is better or worse

The benefit for Guile?  I shortly summed up my thoughts on that in the
FOSDEM thread on the Guix ML; here the mail from the archives:

You wrote there, among others, that "with a little more work, standard Scheme might actually become a language essentially as usable as Python and the like".

If you're looking for a language that is "as usable as Python", then I'd recommend trying out Python, which is very good at what it does.

Maybe I'm reading your point wrong, but I don't think that competing with Python or chasing Python or trying to mimic Python would be anything but a waste of time
Perhaps a better summary: better Scheme standards -> more libraries that
work on any implementation -> more total Scheme users & more free-flow
of users between implementations -> more potential for growth of the
Guile community.

I don't think that the flow of users between the implementations is the major concern of the Scheme community, and I also haven't got a clue how one can tell what the phrase "better Scheme standards" means. "Better" by which standards?

Actually, I think that if you really wanted to unite communities around various Scheme implementations, you'd need to do that through dialogue rather than standardizations -- because apparently the diversity between various implementations exists for a reason, as probably those communities worship different values
The envisioned direction for R7RS-large?  I'll try writing specs which
could have been part of the clean R7RS-small, or could be part of an
R8RS that would be more in the vein of R6RS (without some key bad
parts), that is: not being overly minimalist, not catering to obscure
implementations that are barely maintained and used, being more daring
in requesting modern and advanced features from implementations that
want to be compliant.

To me, minimalism is at the very heart of Scheme, and any departure from it will sooner or later turn out to be harmful. I think that putting hash tables into the language is a particularly good example of something that goes against the spirit of Scheme.

What I believe would go along the spirit of Scheme is that in certain circumstances, an assoc list could be optimized to a hash table, because a hash table is essentially an optimized implementation of key-value lookup

Not like R7RS-large's apparent current direction[4][5][6][7][8], i.e.:
specifying a ton of questionable libraries that seem to fill imaginary
gaps, invite design bugs through the inclusion of spurious utility
forms, and overall seem more suitable to live as third-party libraries,
because they can be implemented as such without needing support for
additional fundamental features from Scheme implementations.  All the
while said fundamental features are neglected from standardization
because X and Y minimalist implementation of Scheme won't be able to
support them.

Which "said fundamental features" do you mean?

Does that make sense?  Feel free to add to this high-level description
of the desired direction, even if it seems vague.  I'm trying to sum up
the sentiment of others, so don't see the above as my personal opinion.

 I think it would be much more worthwhile to create stunning applications (especially the ones that would make use of the Scheme's particular traits), rather than constantly improving the language which is already good enough.

The issue of library interoperability between implementations should be solved only if it really turns out to be an actual problem.

Best regards,

reply via email to

[Prev in Thread] Current Thread [Next in Thread]