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