Tuesday, October 02, 2007

ERR5RS - A Scheme Middle Ground

The silence has been fairly deafening after the ratification of R6RS. What, to me, started off as a promising effort, turned into one where Scheme community was split and ended with (in my opinion) bittersweet results.

Nobody seems particularly excited about the ratification, and 35% of the electorate (some key members of the community) are downright against it.

Tonight, however, I stumbled on a project which is giving me a bit more hope - ERR5RS. And what is ERR5RS? Glad you asked:

The purpose of ERR5RS is to fill a gap between the R5RS (which was last revised in 1998 to reflect a near-consensus of the early 1990s) and the R6RS (which was ratified in 2007 by 65.7% of a consensus).

Another goal is to provide greater portability between the two incompatibly different kinds of Scheme programs that now exist. ERR5RS should make it easier for programmers to convert traditional Scheme code into R6RS libraries, and should also make it easier to convert R6RS libraries into ERR5RS code. To achieve this goal, ERR5RS should use a subset of R6RS syntax and semantics wherever possible, inventing new syntax and semantics only for essential features (such as dynamic loading of libraries into an ERR5RS top level) that were left out of the R6RS.

This seems to me to be a key move to unify a potentially splintering community. Rather than force developers and implementers to choose between R6RS, R5RS or making up their own solution, a middle ground is being proposed. This middle ground may be just enough to keep an already small community linked.

It's an effort I hope to watch closely.

No comments:

Post a Comment