[racket] Getting started with R6RS

From: Neil Van Dyke (neil at neilvandyke.org)
Date: Sat May 14 15:22:59 EDT 2011

Elliott Cable wrote at 05/14/2011 09:26 AM:
> As for the argument that I should be learning Racket instead of R6RS … well, there’s dozens of languages I should be learning right now. Unfortunately, Scheme, *standard* Scheme, not the “Racket” language, is what I’ve decided to learn next.

Just so you know, the Scheme universe is a bit different from that other 
languages, and I'd say that R6RS does not mean the same thing as a 
standard in some popular languages.  R6RS doesn't represent the essence 
of the language, best practices, nor consensus.  R6RS diverged from the 
tradition of earlier RnRS -- which were indeed very minimal de facto 
standards -- and had a very mixed reception.  Scheme dialect 
implementors will still try to support R6RS as a checklist item, or to 
get some library support they don't want to implement themselves, but 
R6RS is not revered doctrine like language standards tend to be.

In Scheme, the real activity of production use and R&D is around 
implementations that start with R*5*RS and add their own very necessary 
stuff atop that.  Of those clusters of activity, I believe that Racket, 
which could be considered a Scheme dialect, is the biggest.  In addition 
to Racket's popularity among users, I believe that Racket is the most 
influential Scheme dialect in ongoing evolution of the language -- just 
look at programming language research conference proceedings of the last 
decade or so.

Also, if you're trying to get experience with various interesting 
languages as an intellectual endeavor, be aware that one of the greatest 
strengths of Scheme is its support for metalanguage programming via 
syntax extension, and that the best current tools and research on Scheme 
syntax extension are in Racket, by Racket developers/users.

Perhaps I should put it this way: if you're looking for interesting 
stuff in programming language technology, I think you should be looking 
at "Racket" instead of "Scheme" anyway.  "Scheme" is old, and not where 
the interesting evolution that descended from Scheme is happening.

Also, don't be afraid to give DrRacket a try, especially once you start 
working with syntax extension.  I distribute the most popular Emacs 
package for Scheme, am ambidextrous with "vi", and use tools like "make" 
very heavily in Racket production use, but I still fire up DrRacket 
sometimes -- for things like the Macro Stepper, for some kinds of 
identifier renaming, or when I have a few communicating processes going 
on in development and I want to have each one sorta contained in its own 
editor&runner window.



Posted on the users mailing list.