[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: (problem? 'guile)



Shriram, I liked your post a lot, but I have one comment:

   But language design usually needs a focal point of control, and
   this person should ideally be as literate as possible.

I'd guess that Matthias is the PLT `focal point of control', and
Matthias is certainly `as literate as possible'.  But I don't think
control/literate explains the success of PLT.

I think the success of PLT is because Matthias learned/did some good
Math Math, and then did a remarkable job implementing his Math.

This is hazy conjecture on my point, since I don't know that much
Scheme, but here's 2 supporting examples from HTDP:

1) HTDP gives (implicitly) a syntactic definition of Scheme values.
   That's a great advance!  R5RS (for instance) says that that when
   you evaluate a Scheme expression (syntax), it returns a Scheme
   value, and this value isn't syntax anymore.  An example of an R5RS
   value is a pair of locations + boolean flag.  HTDP gets rid of that
   extra value layer, and says that values are again syntax.
   (Actually maybe cons cells being constructors is a counterexample.)
   I say that's a huge advance, and I guess it came from Matthias work
   on LC_v and State LC_v.

2) HTDP distinction between structural and generative recursion seems
   to grow out of the distinction in Recursive Functions between total
   functions and partial functions.  That's another great advance of
   Matthias's (I think, I don't entirely understand it).  But lots of
   the "design recipe" stuff in HTDP grows out of this distinction.
   So this is really useful Math that Matthias scored for us.

My hook: We shouldn't be content to use the insights that Matthias
scored for us.  We should (some of us, anyway) try to understand where
Matthias's Math insights came from, and push them farther!

But that's a great point you made:

   The problems with process are, simply, that I don't think the Open
   Source model is a good way to design a *language*.

When you're beating the highways & biways for programmers, it's tough
to enforce any design standards.  It seems that the GNU model is based
on having low standards of design in order to encourage participation.