I've read it, enjoyed it a lot, but am now more confused than before.
Sure, Gisele and Brian had a brilliant conversation, but I've read it
like I would watch a chess contest between two masters. Lots of
delight, but with this pervading sense that what goes on is beyond me.
Since both parties were arguing, I went back and forth between
different truths. I hope Carl will give in his new manual some kind of
answer concerning the philosphical foundation of Rebol. About the
tradition it comes from in terms of CS, about its ancestors (Scheme ?
Lisp ? Forth ?), in terms of the terminology shift (words = good,
variables = not good, context = good, scope = not good), in terms of
how it works internally and conceptually.
Carl is saying in interviews that Rebol is not meant only for
programmers, but that laymen could use and master it. Fine. That's
good publicity (isn't that what OS developers were saying in the
eighties, and succeeded in their efforts : computers are not just for
universities and the ministry of interior, they're for everybody) and
I don't doubt that in Carl's mind, Rebol is very simple. But there are
no things such as simple things. Something is simple if it is well
explained. I think this is the crucial element, and also the most
difficult to adhere to when you're a private company. If /Core can't
be Open Source, maybe RT should consider an Open Source scheme for
its documentation department. Sounds crazy, but might be the beginning
of an idea.
> This really was an interesting discussion about context.
> http://www.rebol.org/userlist/html/threads-21.html
> Maybe RebolPress (or Alexander Books) should be persuaded to pay Brian an
> advance to write something based on this (perhaps call it "Undocumented
> Rebol" or "Rebol Internals" or "A Schemer's Guide to Rebol")
> At 05:45 PM 7/10/00 -0500, you wrote:
>>Galt wrote:
>>>Jeff and Brian, you guys are terrific help, and I really
>>>appreciate it. Hopefully some of the other people
>>>on the list have the same questions as me and are
>>>benefitting from your wisdom, too.
>>
>>Flatterer :)
>>
>>>Brian, one little interesting point, as you may have
>>>seen from Ladislav's generous note:
>>>---------------------------
>>> > Did this used to work in an older rebol without compose?
>>> >
>>>Here you are:
>>>
>>>REBOL
>>>1.0.3.3 (Win32 x86)
>>...
>>>So, it did used to work in an older Rebol.
>>
>>This is interesting! I kind of thought this might be the
>>case, but I didn't check. Learn something old every day!
>>
>>But compose was added much later than this. The initial
>>2.x versions didn't have it either. The changeover from
>>the Scheme engine to the stack engine didn't have much
>>to do with compose.
>>
>>>So, is it safe to say that a context is associated
>>>only with a word? Or is a word assoc. with a context?
>>
>>A word is associated with a context, by the bind function
>>or some internal equivalent.
>>
>>>Or only words that are functions are associated with
>>>a context??
>>
>>Words are not functions. Functions are first-class values
>>that can be assigned to words like any other value. This
>>distinction is a good one to keep in mind with REBOL.
>>
>>>Does each function have one context?
>>
>>By default, yes. When the function is recursed into a new
>>context has to be created to make it reentrant. When that
>>function returns, the new context is lost. The original is
>>still there to be reused, though. Recursive functions are
>>much like using the USE operation, with all of the overhead
>>and GC-related context concerns.
>>
>>>What about dynamically generated functions not referred
>>>to directly by assigning to some 'word ? Do these
>>>automatically have a context, too?
>>
>>Yes. The context is associated with the function value, not
>>any words that may have that value assigned to them.
>>
>>>Is rebol's use of context similar enough to another language
>>>out there that I could get some good guidance by referring
>>>to that language's documentation/literature ?
>>
>>At the high level, REBOL behaves much like Scheme or some
>>other lisp-like language, or maybe Smalltalk. At the low
>>level, it behaves more like an intermediate language for a
>>compiler. Some have said that Forth might be similar, but
>>I haven't verified it. Other aspects of the engine are a
>>bit Forth-like (stack-machine), but the high level REBOL
>>syntax and semantics are quite different.
>>
>>So far, conversations on this mailing list have been the
>>best documentation for low-level aspects of REBOL context
>>handling. Someone should probably codify those some day.
>>
>>It should probably be me. But I've been too busy, or more
>>likely too lazy. I'm waiting for the Official Guide, to
>>see if it covers the subject properly. If not, I'll just
>>have to do it, probably as a page on my web site. It's
>>too minimal a site anyway...
>>
>>>Thanks! to everyone on the list who has been helping me
>>>out here with getting a better understanding of Rebol.
>>>I am going to print out those notes to study them better.
>>
>>Any time!
>>
>>Brian Hawley
>>
>>(There is another Brian on the list, so I have
>> to sign my whole name all the time now...)
>>
>>
--
[EMAIL PROTECTED]
http://perso.worldonline.fr/mutant