[REBOL] Re: Parsing comment
From: gscottjones:mchsi at: 24-Sep-2002 5:25
From: "Jason Cunliffe"
> rejoin ["some string" variable function [param1 param2]]
> If it gets any longer than that,
> time for line breaks.
> Keep each phrase
> on its own line
> so it reads like a poem!
That is wonderful! REBOL poetry for the masses (, but the gurus use REBOL
sonnets!). I think Ralph Roberts would like this, too.
I guess REBOL's indentation rules (or lack thereof) and syntax (or lack
thereof) would probably drive a hard-core Pythoner to drink (at least one
who had never been exposed to more functional-like languages). It made me
think of another analogy, of sorts, in how we learn language. We start with
short phrases, testing them out, and see what response we get. Sometimes,
we see that our meaning has been conveyed; other times, not. Sometimes we
*unknowingly* carry forward an ambiguous state of knowledge and
understanding that only unravels much later. It can be very confusing to
the initiate. The ability to work interactively with short commands can be
very powerful, easy way to learn and be productive from early on.
Some imperative languages (NB: I am not necessarily characterizing Python in
this regard) require a process more akin to sentence diagramming. However,
instead of decomposing a sentence into its diagram, one would construct the
fragments, and then string the fragments into a working whole. The process
itself may contribute to developing well-organized, technically correct
sentences (or program, by way of the analogy) where errors can be pinpointed
more readily, but the learning curve for the initiate is daunting. Proper
construction requires vision, planning, and experience.
Most of us learn our spoken languages at the command-line console of life.
Later, we learn more about proper structure through the implicit method of
diagramming in the development of sentences, paragraphs, and topics. I do
not know this to be true, but my guess is that some languages have more
built-in ambiguity than others. Formalized training in the scientific
process helps us to disambiguate language and concepts, but our building
blocks are inherently ambiguous (by tradition and culture).
REBOL and Python both offer the consoles that ease the learning curve. Both
are high level in that we are not having to bake our limestone, so that we
can have cement to which we can add to aggregate and build the concrete
foundation upon which we build our house (makes me miss assembly language).
REBOL allows a decidely more free-form construction that can become James
Joyce-ian, and therefore inscrutable to all but the REBOL interpreter and
the author :-). Python encourages the sort of structure upon which sky
scrappers can be built. These are not absolutes, of course, as we certainly
know that James Joyce wrote some impressive novels, and who amongst us
believes that we are going to build a sky scrapper by ourselves.
The one special quality that REBOL offers over many other languages is the
stuff of alchemy: not only the ability to know about itself, but to change
itself into something quite different. It is the jump from the hand carved
printing block to moveable type. REBOL is not unique in this capacity, of
course, nor do many people take advantage of this feature. But like the
lawyer who can wiggle his/her words as needed, its nice to know that it
*can* be done when needed.
Thanks for sharing your ideas.