Re: [r6rs-discuss] Fwd: [plt-scheme] [ANN] Scheme Language Working Groups 1 and 2 draft charters Arthur A. Gleckler 28 Oct 2009 04:38 UTC

> I think first of all that the timelines set forth in the working group
> charters are too short by at least half.  It is not reasonable to
> think that both consensus and consistency may be achieved in this
> timeframe, especially since WG1's charter includes a "proof of
> implementability" which at this time can only be interpreted to
> mean an implementation.

I interpret proof of implementability as allowing us to point to
existing implementations that already have whatever feature is being
discussed.  That should be a much easier goal than providing a
complete implementation from whole cloth.

You may be right about the time frame.  Nevertheless, I hope we'll
shoot for the time frame that the Steering Committee has recommended.
Eighteen months is a long time, and we should be able to make
substantial progress in that much time.  If Scheme users and
implementers who are interested in the standards process can agree on
goals, i.e. the charters for the two working groups, then we have a
much better chance of making quick progress.

> Secondly I suspect that the requirement that the language of WG1 must
> be a subset of the language of WG2 will cause difficulties more
> serious than those who drafted the charters now suspect, for reasons
> I have explained on the R6RS-discuss list.  I see the desires of
> those who want a "small scheme" as being qualitatively different
> than what can be achieved by subsetting a larger scheme which serves
> the needs outlined in the WG2 charter.  The subset language will not
> under these rules be permitted to be consistent and unconstrained
> enough to avoid the need for the additional things required by the
> full language, thus it really will be "part of a language" instead
> of "a language so consistent and unconstrained that it can remain
> small."

I'm not convinced.  I'll point out that there's a difference between
asserting that WG1 Scheme will be a subset of WG2 Scheme and asserting
that it must be possible to implement all of WG2 Scheme strictly in
terms of WG1 Scheme.  (You're probably not making the latter
assertion, but I want to make that clear anyway.)  There may very well
be features of WG2 Scheme that depend on infrastructure that is not
provided by WG1 Scheme, either because there was no consensus on how
to standardize such infrastructure or because people were convinced
that the infrastructure didn't belong in WG1 Scheme.  That's okay as
long as what is, in fact, in WG1 Scheme is not inconsistent with WG2
Scheme.

I think I've found the message on <r6rs-discuss> where you made the
argument about the difficulties of reconciling WG1 Scheme and WG2
Scheme.  Is it the message from 23 Sep with the subject line "What's
under the hood?"  I'll quote from that message:

  One is the pedagogical language; expressiveness, simplicity, and
  clarity, as Brian wrote above.  Large implementations are fine here
  if they abstract details in a nice way.  The "minimal" I/O
  requirements are all character-oriented.  Nobody has to worry about
  issues like encoding because that's all taken care of in the
  implementation, and blobs can be implemented as general vectors
  holding u8 values, etc.  This camp is occupied by those who thought
  R6 was specifying too many grotty details.

  The other (or at least another) is the embedded-systems language;
  simplicity, clarity, and expressiveness are important, but the
  implementation needs to be fast and small (possibly skipping parts
  of the numeric tower for the sake of being small) and the "minimal"
  I/O requirement is byte-oriented.  Reading/Writing characters is
  secondary and may be supplied by a library implemented in terms of
  bytes.  Blobs are *the* most important datatype, and have to be
  handled with blazing speed.  Strings are secondary and may be
  supplied by a library implemented in terms of blobs. In fact there
  probably needs to be a way to designate that a blob has a particular
  system address, or that parts of it are to be considered "volatile"
  or writable by other processes, or else you can't write device
  drivers or reliable FFI's.  This camp is occupied by those who want
  a systems programming language, and thought R6 was loaded with
  irrelevant stuff that didn't address their needs and made the
  implementation too large and not flexible enough for the systems
  they're targeting.

But the WG1 charter, as it stands now, says this:

  The language's target uses include education, programming language
  research, embedded systems, embedded scripting languages, and as a
  platform on which other languages can build.  For these uses a
  language that is "lightweight" at the semantic and/or implementation
  level is appropriate.

The draft WG2 charter describes its language thus:

  ...a language in the Scheme family that is large enough to address
  the practical needs of mainstream software development.

So WG1 Scheme, not WG2 Scheme, is intended to be a minimal language
that can, among other things, work on embedded systems.  But WG1
Scheme isn't intended to be a systems programming language, just one
that is small enough and simple enough at the conceptual level and
easy enough to implement that it is suitable not only for embedded
systems, but also for education, research, and embedded scripting
languages.  Those goals don't conflict with the language also being
the core of more complex implementations that support WG2 Scheme.  If
they do, then we should adjust the charters, since an explicit goal of
both charters is that the working groups "...must work together to
produce specifications that are consistent with one another."  Do you
have any specific suggestions for improving the charters?

Please forgive me if I have misunderstood your argument.

> It would not have been necessary to have more than one working
> group in the first place if subsetting were a viable approach.
> Rather, it would be appropriate for the working group to produce
> a document specifying some constraints as "optional", as was done
> in past RNRS reports. Indeed, this will be the net effect of the
> current effort if the draft WG charters are ratified and executed.
>
> At any rate, the effort will be interesting.

Yes, I'm sure that will be true!

Thank you very much for being the first person to publicly comment on
the revised charters (as far as I know).

We are eager for feedback.  The better the charters, the better chance
the two working groups have of making proposals that will please a
large part of the Scheme world.  The more successful we are at that,
the easier it will be for us all to share Scheme code with each other
-- to understand each other's code, and even to run each other's code.
Those are, to me, the most exciting things about the whole
standardization process.