[comp.unix.cray] In Defense of REXX...

Will@cup.portal.com (Will E Estes) (08/20/89)

REXX is probably the most elegant and easy-to-use shell language I
have ever encountered.  Except for real-time and systems software
work, REXX is more productive and powerful than even C. Because it
works at a higher level than C, solutions generally take half the
time they take in C. C shell is really a toy language by
comparison.

The string handling in REXX simply has to be seen to be believed.
For example you can supply a template to the instruction that
parses a variable:

parse var myvariable var1 ',' var2 . '(' var3 . ')' var4

/* the above puts all words in the variable myvariable up to the
 * first comma into var1, the next word after the comma into var2,
 * throws away subsequent words up to the literal '(', puts the
 * next word after that literal into var3, throws away all
 * subsequent words up to the literal ')' and puts all the
 * remaining words into var4.
 */

REXX implements every conceivable control structure (more than
compiled C), allows recursive subroutines nested as deep as
available memory allows ,allows variables to hold strings as large
as memory allows and arrays of any dimension and size - allowing
you to specify logical names instead of integers as the index to
the array.  Array elements are automatically stored in a binary
tree for fast lookups (all transparently to the user of the
array).  There is even an operator to specify the degree of
precision you want in floating point operations, and there is *no*
limit on the amount of precision that you can specify!  (Of course
if you say NUM 10000 and you have a complex calculation don't plan
on getting 10,000 digits of accuracy as fast as you got two...the
tradeoff here is speed versus extraordinary ease of use in doing
floating point calculations of great precision.)  Finally, this is
the easiest-to-use language I have ever encountered.

I am usually *not* a fan of IBM products, but boy they did
themselves right on this one.  Of hundreds of people I have met
who have actually used REXX, I have only encountered two who were
not head-over-heels in love with it.  And both of those
individuals dismissed the language after a short encounter.  Like
C, REXX is one of those rare languages that makes you feel that it
was designed by someone who was a true master and who had a sense
of programming aesthetics that approaches art.

The above just makes REXX a very fine language.  What it makes it
unique, however, is its ability to send application-level commands
to vendor applications.  This basically gives you the potential to
integrate more than one vendor application under the control of a
single program, and *that* makes the transition to this language
worth the trouble.

Will