[r6rs-discuss] r6rs is perfect

Matthias Felleisen matthias at ccs.neu.edu
Sat Jun 9 12:34:47 EDT 2007


When I read the "side by side" and "head to head" descriptions, I am  
wondering which one is which and which one is better.

  * Is it really good that Scheme (the spec) doesn't support a module  
system?
  * Is it really good that almost all major implementations support  
their own version of a module system?
  * Is it really good that programmers can't even leave the module  
structure intact when porting code?

Imagine your own similar questions and add them here. We have lived  
in a side-by-side universe for a long time, and there are quite a few  
programmers who have suffered from this not-really-the-same-language  
problem. Besides the module system, there are other not-quite-the- 
same-but-related features that implementations have and programmers  
wish to use.

The R6RS process has pushed several major implementors/ 
implementations to agree on a design for modules and other  
constructs. Their report declares that they are ready to put a large  
amount of work in to get from r5rs to r6rs. I believe that this step  
would help the community in several arenas, listed in increasing  
order of relevance:

  -- the academic publishing business
  -- the fund raising business (NSF and friends)
  -- adapting each others innovations
  -- supporting programmers who learn on one and switch to another  
implementation
  -- supporting commercial programmers who need reassurance that  
there is more than one implementation and implementor [ever attended  
CUFP?]

Is the document perfect? Is every construct exactly the 'right  
thing'? Of course not! Guy and Gerry revised their first Scheme  
report because they didn't get it 'right'. R3RS and R4RS and R5RS  
revised flaws in R(n-1)RS because the authors/editors didn't get it  
'right'. It is extremely difficult and usually impossible to get the  
design of a complex beast (such as a programming language) 'right'  
the first time. It's all about the feedback loop and revising your  
design as you go. Indeed, 'right' doesn't exist; what exists is 'most  
pragmatic and internally beautiful' nothing else. (See my other post.)

Our choice is quite simple: move forward as a community with some  
amount of convergence (r6rs) or split into dozens of mutually  
incompatible sub-communities (status quo, including srfi).

-- Matthias












More information about the r6rs-discuss mailing list