[racket] Running Racket in the R6RS mode
Rouben Rostamian wrote at 07/14/2012 08:54 PM:
> In retrospect, that assumption was influenced by my experience
> with C which is the predominant language in which I program.
> Various implementations of C, such as those of GNU, Microsoft,
> Intel, Sun, AIX, etc., provide their own diverse extensions
> to the language but in all cases the extensions are strict
> supersets of the standard C -- they would be considered
> unacceptable otherwise.
>
> I was looking for something similar in the scheme world but
> what I have learned is that one cannot extend his experience
> from one programming language realm and culture into another
> and expect to find a one to one correspondence.
>
Exactly. Some of the people currently developing in Racket were C
developers in the past, and appreciate why someone coming from C would
just naturally look for a language standard, and see advantage to
developing to that standard. But Racket is in a different category, and
-- as you say -- the assumptions behind looking for an industry standard
don't apply here they do for, say, C.
Context: C compilers being standards-compliant is actually a relatively
new thing. In the early '90s, for example, even Unix workstation
compilers sometimes weren't even K&R-compliant, much less
ANSI-compliant. This made cross-platform development interesting,
especially when it was even tricky to write an "#ifdef" that itself was
portable. Also, more recently with C compilers, we've also had GCC
extensions driving features in other compilers. Perhaps similarly, you
will sometimes see a Scheme implementation adopt Racket features,
looking at Racket as Scheme dialect, although some Racket features are
not easy to implement because there is fancy infrastructure underlying
them. The Racket developers have also participated quite a lot in
various Scheme standardization efforts in the past, but I think that
RnRS is still experimenting with philosophies, including backtracking
between versions. Yet the Racket community already has a platform that
is where RnRS would like to be, but RnRS hasn't yet gotten anywhere near
there, and there have been a lot of reinvention attempts going on in the
efforts, which again is a bit different than the history of C
standardization. My impression is that Racket supports R6RS
(incidentally showing off Racket's multiple language platform), but it's
not let RnRS hold back all the innovation and general productivity
that's going on.
BTW, Matthias Felleisen is one of the definitive authorities on the
design of Racket. I am only a consultant who uses Racket for work, and
occasionally releases open source third-party libraries for Racket. I'm
speaking here only for myself, based on my current impressions.
Neil V.