Following is what Larry wall talking about REBOL compared with perl.I want to know what you think about it. ------------------------------------------------------------------------------ This message was forwarded to you from Deja.com by [EMAIL PROTECTED] Deja.com offers free consumer information, including ratings and reviews on thousands of products and services. Before you buy, visit http://www.deja.com/ ------------------------------------------------------------------------------ (beginning of original message) Subject: Re: Rebol (was Re: Perl's version number is way too low) From: [EMAIL PROTECTED] (Larry Wall) Date: 1998/10/30 Newsgroups: perl.porters-gw Well, it was actually reading up on REBOL that reminded me I wanted tuples. (REBOLs tuples are essentially a representation of an IP address. That is, the numbers are limited to 0..255, and you can only have four of them. The quote in Microtimes was just what I could say off the top of my head while reading the www.rebol.page for the first time. In other words, I was just winging it. Having studied up since then, here's what I really think (which I sent in answer to a query from Germany). Larry : Now my questions: Have you looked at REBOL yet? The first time I was asked, I was reading the web page on the fly while commenting on the phone. Needless to say, I mostly mumbled vague generalities. :-) But I've read all the available documentation since then, and played with it a little. : What do you think about it? 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. 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. 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. The licensing terms for the REBOL interpreter are unclear >from either the documentation or the web site. It's "free", but I don't know whether the source is available. The language makes some things easy, but other things very difficult. There's no support for system-dependent programming. Associative arrays are emulated, but don't scale well (200 times slower than Perl for 1000 elements). There are no regular expressions for pattern matching. Where Perl and REBOL have corresponding builtin functionality, the REBOL interpreter seems to run about ten times slower than the Perl interpreter. : Do you think we need yet another scripting language? That's like asking if we need new pictures in the art gallery. You can't prevent language designers from designing languages. On the other hand, Perl has never been afraid of competition. :-) : 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. Stability Perl has been tested for 11 years now. REBOL core dumps every time I quit on my Linux machine. Maturity Perl already has all the stuff that they say they're going to add to REBOL someday. 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. (REBOL claims to allow OO programming but there's no inheritance, merely cloning.) Expressiveness REBOL is relatively impoverished in quoting mechanisms. There aren't any short-circuit logical operators in REBOL. Can't break out of multi-level loops in REBOL. REBOl only has lexical scoping. Perl has both lexical and dynamic. Clarity Perl almost always has the right tool for the job. In REBOL you often have to be more verbose. 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." Free and open source REBOL's terms are very murky here. Regular expressions REBOL only has basic wildcard-style matches, ? and *. Associative arrays Perl's associative arrays are the same speed no matter how large they are. System-dependent programming Both Perl and REBOL allow system-independent programming, but REBOL doesn't provide any system-dependent programming : Or vice versa? The REBOL interpreter is more compact than Perl's, at least for the barebones interpreter. 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.) 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. I don't think REBOL is any more English-like than any other dialecting language such as, say, Tcl. (Or Perl, for that matter.) 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. Automatic case folding seems really retro these days when XML and Unicode are moving in the opposite direction. 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. : 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. :-) Larry (end of original message) ------------------------------------------------------------------------------ You can view this message and the related discussion by following this link: http://www.deja.com/dnquery.xp?search=thread&svcclass=dnserver&[EMAIL PROTECTED]%3e%231/2 We hope to see you soon at Deja.com. Before you buy. http://www.deja.com/
