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>.