What's The Scoop On REBOL?
muggs asks: "After reading this article in Byte, I'd like to hear people's experiences and opinions about REBOL." The language's creator, Carl Sassenrath, describes REBOL (Relative Expression-Based Object Language) as "a highly dynamic, polymorphic, reflective, context-dependent, symbolic, functional language...a powerful tool that provides great productive leverage." How well does it live up to this description?
It's not very C-like; if I had to pick a language it _is_ like, it'd be Forth, but with the ability to have syntax. Not at all unpleasant.
Anyhow, one interesting result of the Forth-like nature is that there are a huge number of datatypes which are not possible in other languages; for example, URLs are actually formal datatypes, not just another string (a malformed URL is a compile-time error).
They've obviously learned from Perl and Python otherwise; it's a nicely dynamic language which seems to be error-tolerant, and has quick, easy syntax for most needs.
I'm reasonably happy with it. It doesn't look as _nice_ as Python, but at least its braces and brackets have a purpose. It's not nearly as messy as perl can get, either.
Do you even know anything about perl? -- AC Replying to Tom Christiansen post.
I have written a few small applications in REBOL to index web sites and it was quite easy to do. To achieve the same thing in e.g. C/C++ would have taken much, much more time. The language has some really useful built-in functions for processing urls and html documents. This, together with features such as list processing and simple string manipulation functions, make it a very powerful (scripting) language for certain tasks (such as indexing web sites or maintaining mailing lists, etc). In my opinion, it is much more powerful than e.g. Perl. The syntax and semantics of the language are also quite neat and better thought out than it might seem at first sight (IMHO), although it takes some getting used to. I had some initial problems with the "by reference" mechanism. However, it is not your ideal language for all uses. I found file management somewhat problematic: files are apparently maintained in working memory until you close them, which caused massive swapping in my indexing application as soon as the file size grew over 100Mb... There are ways to overcome this, though, but it's not the most elegant thing I ever saw. Conclusion: check it out, it may have something that you might need or never thought possible in a language. Theo