[r6rs-discuss] r6rs is perfect
Matthias wrote:
> 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.
I have a pragmatic view of that.
Let's suppose that the draft document is published as a SRFI.
It could be titled "The 2004 Scheme Workshop Report on the
Algorithmic Language Scheme". Maybe it will include the outcome
of the vote. Maybe it will contain endorsements from the
steering committee.
And let's assume that, even though it's "only" published as a
SRFI, Gambit, Larceny, PLT, et al. all decide to implement it.
It will be a de facto R6, as far as many people are concerned.
What is wrong with that? If it is useful, then other and future
implementors are likely to follow suit.
Eventually we will either find that adoption of the standard is
almost unviersal (so, *then*, publish it as R6). Or we'll
discover good reasons why some Schemers don't adopt the standard
(and be on our way to a better R6).
> The R6RS process has pushed several major implementors/
> implementations to agree on a design for modules and other
> constructs.
That's good. But would the outcome have been different if it
were titled "The Scheme Workshop Report Process?" Even if so,
*should* it have been different?
> 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
But people can still publish books about or referring to the
"Scheme Workshop Programming Environment." That topic will be
helped because many famous implementations will support it and
because it will have been endorsed by so many luminaries.
I think that is probably better marketing, actually. A new name
like "Scheme Workshop Programming Environment" helps to
differentiate -- helps to make it clear that this is no longer
the same old toy "Scheme" found in "ancient" texts like SICP.
> -- the fund raising business (NSF and friends)
Well, it comes down to what the reviewers think, of course.
I think that you can honestly say, with a straight face, that
the SRFI process is the standards body in which standards about
Scheme are published. Thus, the "Scheme Workshop Report ..."
is a first-class, straight-up official language specification.
One that will apparently be adopted by several major
implementors.
> -- adapting each others innovations
Titling the document "R6" does not help with that. It can only
drive some people away or drag others in against their wishes.
> -- supporting programmers who learn on one and switch to
> another implementation
Actually having a bunch of implementations that work as the
draft describes is necessary first, and is probably sufficient.
The title "R6" adds nothing.
> -- supporting commercial programmers who need reassurance
> that there is more than one implementation and implementor
> [ever attended CUFP?]
Implementors should informally agree to prominantly advertise
that they support the standard "[SRFI-<N>] The 2004 Scheme
Workshop...". People can make lists of all of the
implementations that support it.
> 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.)
That "try and try again" approach is built-in to the SRFI
process, and in a more interesting way. In the R6 process,
the "try again" steps are executed serially. In the SRFI
process, the "try again" steps can be, and often are, executed
in parallel.
> 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).
A third way:
Implementors who are already interested in R6, implement it even
though it is published "only" as a SRFI. As practical, work on
a portable package system like Snowball and publish lots of
useful modules in the new dialect. If convenient, help port
parts of the new language to implementations that don't jump on
board.
With any luck, that should cause (at least the winning?)
features of the draft to gain momentum (er, "snowball?" :-) and
perhaps become the de facto standard in the "Scheme industry."
-t
Received on Sat Jun 09 2007 - 16:43:05 UTC
This archive was generated by hypermail 2.3.0
: Wed Oct 23 2024 - 09:15:01 UTC