The Purpose
The purpose of this note is to discuss a very early investigation into the Rebol language. I encountered this language while I was writing a tutorial in J, and was in the process of thinking about some of the problems in using J as a presentation medium for presenting tutorial information.
I confess, at the outset, that this is early in my understanding of
Rebol, and I probably exaggerate its capabilities (to make them match my
wishes?). I will say that I am as impressed with the fit between `problem
tackled' and `elegance of attack' in Rebol as when I first encountered
J---to me both seem to have:
(1) tackled an important problem; and
(2) done it with both elegance and elan.
I have decided that I have enough to say about this topic, and it is only of tangential interest to those who read JForum, so I feel somewhat more free to take time and space here, on my Home Page, for my discussion. However, I recognize that this isn't a very good way to interact, so if any wider interest develops we'll have to figure out where this discussion can be held.
What is Rebol's Domain?
If I had to summarize Rebol's problem domain, I would say that it tackles the problem of displaying distributed information in the same way as I would describe J's domain by saying that J tackles the problem of effective description of algorithms, particularly those which involve vectors and matricies. In both cases the languages in question are clearly capable of doing much much more, but the further we stray from the basic central domain, the less we tend to get for free, i.e. without doing all of the work anyway. My interest in Rebol was piqued by writing a J tutorial, where expressing the J algorithms was as much of a pleasure as it was to use J to discover and work on them, but where integrating the algorithms into an effective tutorial representation proved to be less productive than I had hoped it would be at the outset.
How is Rebol Priced
Strictly speaking, this is clearly a side issue. Nevertheless, it is a very important side issue to those of us without unlimited budgets. So let me get the matter out of the way.
I am still trying to figure out what Rebol is. So far it appears to me to be a `core' which implements an object-oriented language where the most particularly important `objects' relate to messages passed around on the internet. This `core' appears to be free. Implemented on top of the core is a `View' program which essentially creates a `desktop' that can be `shared' across computers in a LAN or across the net. This program is also free (in a version with some limitations) or is available in a `Pro' version for about $50. There are also `Command' and `Express' versions that seem to be designed for corporate use and are priced in the general range of J Commercial Licenses. All-in-all it appears to be a pricing structure not unlike that of J.
Apparent Plusses and Minuses
It looks to me like the plusses and minuses of Rebol are, as is often the case, intimately linked to one another. As the focus of Rebol is the sharing of distributed information, the plusses relate to the effectiveness with which this can be done, and the minusus (at least it seems so to me as of now) involve the dangers inherent in sharing distributed information (viri, worms, ...). It is evident from the discussion among `Rebol People' that (very much like J people) they are very good willed, and quite aware of the potential for problems when information is shared via procedures and processes as well as data sets. Indeed, it looks to me like the View Pro product (the $50 add-on to the free viewer) may well contribute some security and encryption capabilities so that the sharing of information might be managed and controlled in a corporate situation. As I do not have this problem yet, and as my investigations are in such a preliminary state, I haven't investigated this fully yet.
Getting Rebol
Rebol requires installing some code, but blissfully not too much. It
is not quite as small as K, but the download was 0.5mb, and my current
REBOL
subdirectory, containing all of the stuff I have played with so far is
about 3mb. The basic module is obtained by going to
Rebol
and clicking on `download'. You follow this by downloading Rebol View
by locating (and pressing) a `Give it a Try' button. After the usual kind
of `who are you' dialogue you are given the download. I can't remember
if I tried getting it without telling them who I was or not, but since
I didn't mind that they knew, I rather suspect I just filled out their
form.
The instillation was easy and went pretty much without incident.
Looking at a `Tutorial'
I can point you directly at the tutorial that interested me. You get
there by selecting:
Rebol.Com
Docs
Easy VID
in that order. If you then probe around in the tutorial, you'll find
code snippets highlighted throughout. If you point at any of them, and
click you'll see the effect of the code fragment displayed as it is executed.
I suppose it is worth saying that since the subject matter of the tutorial
is
the display of information, this may not be the best example to use to
think about J presentations.
But it's at least a start.
My Objective
I would be particularly interested in other's instinctive comments. I am trying to make a preliminary guess about whether this stuff looks productive enough to be worth spending some time and energy learning, and any remarks of others might well help me make that a better informed decision.