Rebol readability=> was {Re: [Edu-sig] Top 5 All Time Novice Obstacles => #3 Where am I ?}

Tim Peters tim.one@comcast.net
Mon, 23 Sep 2002 15:14:47 -0400


[Jason Cunliffe]
> ...
> As I said before, one of the interesting edu-sig questions is:
> "Why, in practice, so many people very quickly find Rebol very
> comfortable and easy to read?

I don't know that they do.  I was active on the Rebol mailing list for a
year, and most newbies appeared to be baffled by both the semantics and the
(lack of) syntax.  Few appeared to make swift progress in "getting it",
either, and most left.  A few hung on baffled the whole time I was there.
The docs were a mess at that point in Rebol's life (much of the mailing list
traffic at the consisted of "hey!  I typed this in, and this is what I got!
Can anyone guess what it's doing?"), and the language has changed some since
then, but I stopped paying attention.

> I'm not into this for any langauge flamebait reasons. Rebol does
> something very clever which people respond well to.

I'm afraid you lost me at the starting gate, Jason -- at the time I was
active, Rebol appeared to have a hardcore set of fans from the Amiga world
(where Sassenrath is a legend), and to them Rebol could do no wrong.  Kind
of like I praise every dumb idea of Guido's <wink>.  I didn't see any
evidence at the time of anyone else hopping on the bandwagon.  So I simply
can't speculate about why Rebol is quickly comfortable for so many people,
because in my own experience of it that simply wasn't the case.

>> Rebol has some very cool ideas, btw -- this wasn't one of them.

> What do you think are the good ones?

Many builtin datatypes, the "parse" subsystem, the interactive mode, the
wonderfully painless installation, the ability for a function to specify
"quoted" arguments (that's why you can do "help join" in Rebol and not have
Rebol run off trying to evaluate the "join" function first -- the "help"
definition says it wants its argument quoted), the idea of building a cursor
into container objects which is then manipulated via side effect, the
uniform use of "/" to build hierarchical namespaces doing multiple-duty for
file literals and URL literals and even modifying function calls with
optional arguments (like parse/all), the weak distinction between code and
data.

Many of those ideas would be a poor fit to Python, though, just as many of
Python's cool features would be a poor fit to Rebol -- languages aren't bags
of disconnected features you can pick and choose at random.  Well, you can
*try*, and then you get Perl5 <wink>.