[REBOL] [style] REBOL is different
From: greggirwin::mindspring::com at: 21-Apr-2004 12:00
Thanks for your posts! It's good for us to get "a view from the
outside" when new people come in. Please do use this list as a
resource to help you in your work with REBOL. We all learn when people
ask questions here.
Your post inspired me to write a bit here, if you'll bear with me, and
hopefully others will contribute thoughts as well.
pbc> Personally I find myself amazed at the compactness & speed of
pbc> Rebol. I don't know the language itself well enough to
pbc> appreciate it's ease of use, but I expect to be totally blown
pbc> away by that aspect as well.
I just needed to learn some basic PHP for a project (fortunately I
only had to do very simple things, being a newbie with it). I can't,
in fairness, compare the two because I haven't spent enough time with
PHP to learn the advanced idioms that let me leverage it the way I can
When you look at some advanced REBOL code (e.g. from Carl, Gabriele,
Romano, Ladislav, Joel, and others) you'll be amazed at how little can
do so much. That can put some people off, saying it's cryptic or too
terse. REBOL can be made *very* "dense", and there are a number of
subtleties to the language, but the reason some of us write code that
way is rarely because we want to save space.
Saving space can be a powerful motivator though. There's no doubt in
my mind that being able to see an entire program in one, or just a
few, screens is very helpful. You may have to think more deeply about
that smaller amount of code, but it's all there in context.
What happens, over time (IME), is that the way you read REBOL changes,
and this dense code starts to make more sense. Refactoring is talked
about a lot these days. With REBOL it doesn't mean just cleaning or
reorganizing code; it means *rethinking everything*; finding new
idioms; expressing the solution in a different way. In REBOL,
refactoring can reduce (no pun intended) things dramatically, which
isn't true in most other langugages, probably because they don't give
you the expressive freedom that REBOL does. When you see dense REBOL
code, it's probably been heavily refactored to be that way.
Looking at how someone expresses a solution can also help in
understanding *them*. i.e. if all code looks basically the same (the
Python advantage), you don't "get into the head" of the person who
wrote it; their code can't "communicate" very much to you. With REBOL,
you can get more into their mindset, or "world view", about how they
wanted to solve the problem.
REBOL is all about communication and the way a person expresses
themselves--with words or in code--can tell you a lot. How a person
interacts; the phrases and idioms they use; are they verbose or
succinct; knowing these things, and more, about a person help you
communicate with them.
Know your target audience. Some REBOL is intended for mass
consumption, but the majority of REBOL--like most code in other
languages--will be shared with smaller groups; write for them. Using
the power of REBOL to facilitate communication *within* the group is
where the real power lies.
REBOL is different--express yourself.