[EMAIL PROTECTED] wrote:
> Following is Larry Wall talking about REBOL compared with Perl. I
want to know what you think about it.

        Here's my opinion. I believe this has come up before on this list.

Larry Wall wrote:
> Date: 1998/10/30

        Note the date, October, last year. Lots of changes in REBOL since
then.

> REBOL is essentially a de-parenthesized LISP variant with builtin
support for some handy datatypes such as dates and email addresses.
> As a LISP-like language, it conflates program and data in a way that
some folks will find confusing.

        Actually, there's no distinction between code and data in REBOL. Some
folks do find REBOL confusing, as you have to _unlearn_ baroque
programming. :-\ Baroque is not really the right word. You have to
unlearn the little picky bits that other languages force upon you. For
example, in Pascal/C/C++ the semicolon between statements. Pascal, the
full stop at the end. Most languages, the brackets around function
arguments. Lisp - Lots of Irritating, Stupid Parenthesis.

> Without LISP's parentheses, however, the syntax forces you to count
arguments to know which terms of an expression will be passed to which
function.

        Feel free to add parenthesis to improve understanding, or break up
lines when creating code to enhance readability.

> So far I think REBOL falls into the category of a cute toy.  The
documentation is sketchy and contains a certain amount of functional
mumbo jumbo.

        With the new Beta manual, and recent improvements in documentation, I
think this problem is nearly over come.

> The licensing terms for the REBOL interpreter are unclear from either
the documentation or the web site.

        I think it's fairly clear now that REBOL/Core, /Media and Browse are
free, but closed source. I got that from the REBOL site, whyrebol.html

> It's "free", but I don't know whether the source is available.

        As Carl has said on this list, REBOL is closed source, and will remain
so.

> The language makes some things easy, but other things very difficult.

        Hmmmm...

> There's no support for system-dependent programming.

        That's done deliberately. REBOL/Command will allow system-dependent
programming.

> Associative arrays are emulated, but don't scale well (200 times
slower than Perl for 1000 elements).

        Someone has checked this out earlier, for more recent REBOL versions,
and I believe this is no longer the case.

> There are no regular expressions for pattern matching.

        The 'parse word is very nice, but wasn't available when Larry wrote
his review.

> Where Perl and REBOL have corresponding builtin functionality, the
REBOL interpreter seems to run about ten times slower than the Perl
interpreter.

        I think REBOL is a lot faster now, but I can't say for sure, until
someone does a benchmark between the two.

> : What are, in your opinion, the greatest advantages of Perl over
REBOL?
> 
> Speed
>       Perl is about 10 times faster than REBOL at corresponding
operations, and REBOL is missing many of the corresponding operations.

        I think this is no longer the case. Anyone with PERL and REBOL want to
benchmark the two?

> Stability
>       Perl has been tested for 11 years now.  REBOL core dumps every time
I quit on my Linux machine.

        I'm certain that REBOL no longer does this. I'm also sure that when
REBOL has been tested for 11 years like Perl, in 2007?, REBOL will be
as reliable or more reliable.

> Maturity
>       Perl already has all the stuff that they say they're going to add to
REBOL someday.

        REBOL is still in developement, and stuff has been added, 'parse,
'replace and so on.

> Paradigm neutrality
>       You can program Perl in the functional paradigm, but it's not forced
on you.  Perl also lets you program in the procedural paradigm or the
OO paradigm.

        There was a discussion on this list recently about function and
procedural programming, and I believe it was concluded that REBOL
didn't force either style, and allowed either.

> (REBOL claims to allow OO programming, but there's no inheritance,
merely cloning.)

        Unfortunately, this is still true. :-( I, too, would love inheritance
in REBOL, along with deep copying of objects. Currently, I have to
simulate this with code in blocks.

> Expressiveness
>       REBOL is relatively impoverished in quoting mechanisms.

                I'm uncertain what this means.

>       There aren't any short-circuit logical operators in REBOL.

                I think 'and and 'any should help in this regard. I found that they
short-circuit logic well.

>       Can't break out of multi-level loops in REBOL.

                I believe this has been fixed now.

>       REBOl only has lexical scoping.  Perl has both lexical and dynamic.

                I'm unsure what Larry means here.

> Clarity
>       Perl almost always has the right tool for the job.  In REBOL you
often have to be more verbose.

                Perhaps Larry's lack of experience in REBOL?

>       Perl's reference model is explicit and straightforward.  REBOL is
full of implicit references into the middles of lists that may be
"owned" by other variables.  Here's a quote from REBOL's manual:
>  
>               "The change, insert, remove, and clear functions directly affect
the series provided as the first argument. If you have other variables
which refer to the same series, after the operation they may no longer
reference the same value within the series."

        Each variable has its own offset into the common series data.

> Free and open source
>       REBOL's terms are very murky here.

                I think they are a lot clearer now. See earlier statement.

> Regular expressions
>       REBOL only has basic wildcard-style matches, ? and *.

                'Parse wasn't available when Larry wrote this.

> Associative arrays
>       Perl's associative arrays are the same speed no matter how large
they are.

                Again, someone with PERL and REBOL needs to benchmark this.

> System-dependent programming
>       Both Perl and REBOL allow system-independent programming, but REBOL
doesn't provide any system-dependent programming.

                REBOL/Command will provide system-dependent programming.

> The REBOL interpreter is more compact than Perl's, at least for the
barebones interpreter.

        Hmmm, yes.

> REBOL has continuations, meaning you can restart a function where it
left off, as a kind of co-routine.  (In Perl these might be emulated
with closures or threads.)

        I believe that continuations have been removed from REBOL, according
to pekr.

> Most of the other claims seem like hype to me:
> 
>     I don't count REBOL's builtin types as an advantage because these
can easily be done in Perl with existing extension modules.

        In REBOL, they're standard. One doesn't need an extension module.

>     I don't think REBOL is any more English-like than any other
dialecting language such as, say, Tcl.  (Or Perl, for that matter.)

        I think REBOL is very english-like or, I should say, that is better
for creating application specific languages. Creating a dialect and
being able to use any word with out fear that it might be used for some
other purpose, is quite liberating, I've found.

>     It claims to have little punctuation, but in fact REBOL has its
own set of funny punctuation characters: "!" for types, "?" for
booleans, "%" for filenames, ":" to quote keywords, and such.  The
interpolation rules are inconsistent: you use ^[foo] in strings, but
:foo in paths.

        Very little punctuation in REBOL, it just uses unix? standards for
file names, the "%" for file names. Question marks "?" are english-like
for asking questions. For example, 'length? for asking the length of
something. The "!" helps distinguish types. Colon ":" to define get-
and set- word.
        I think this complaint is Larry's lack of experience in REBOL.

>     Automatic case folding seems really retro these days when XML and
Unicode are moving in the opposite direction.

        As the REBOL site says, it's for people, not technicians. I enjoy not
having to worry about case.

>     The fact of the matter is that almost every claim they make about
REBOL is also true of Perl.  I don't think the reverse of that could be
stated with a straight face.

        It would be interesting to compare Perl with REBOL again.

> : Is there anything else that comes to your mind when you hear REBOL?
> 
> I think they shouldn't have given it a name that people will
intentionally mispronounce.  :-)

        I enjoy REBOL! :-) I'm waiting for REBOLution, the operating system.
:-)

Andrew Martin
REBOLutionary...
[EMAIL PROTECTED]
http://members.xoom.com/AndrewMartin/
Online @ 33,600 Baud!
-><-

Reply via email to