That's a fine curated list of the bad points of REXX. If I may add that only having one data type, the string, is not the killer feature that people laud it to be. As you mentioned, compound varibles being the only data structure REXX is a problem in todays world. Try serializing a REXX array into JSON.

Lack of variable scoping is one of my biggest gripes. It means REXX doesn't scale. Of course, you can add "procedure expose" to functions but that soon turns into an intractable mess.

I discovered just how slow REXX is when I first started using Lua on z/OS. Programs that were running sub-second in Lua were taking 40 seconds in REXX! Once I ported the Lua I/O standard library to z/OS it handled all the file systems and data sets types that C stdio supports, PS, VSAM, UNIX, hiperspace etc. The fact that REXX does not have native support for VSAM data sets is a shocking omission. And other features like multi-threading are pipe dreams in REXX.

On 11/05/2018 11:41 PM, Kirk Wolf wrote:
Yeah, I said it.  I remember how fond I was of REXX when I first discovered
it VM/CMS in the 1980s, when big hair and mullets were also great.

Sure, on the surface it seems like a user friendly scripting language, but
IMO that is only true if you compare it to JCL, CLIST, RPGII, and Windows
"BAT".  It does look much easier than the classic Unix shell, but not so
much in practice.

I recognize that many here have learned it really well and don't have to
think about all of the pitfalls and landmines.   But please don't try to
tell new mainframers who have learned modern scripting languages how nice
it is :-)

The good:

- it is on every z/OS system,  and it has a good set of system interfaces
("environments")
- it does have case-sensitive variable names, which maybe some people don't
like ;-)

The bad:

- a single data type (string)
- limited control flow statements; lack of short-cut boolean expressions
- compound variables - the only data structure you'll ever need?
- weird handling of undefined/omitted variables/args
- variable name scopes?
- packages/namespaces/libraries?
- purports to follow the principle of "least surprise", but I often find
the opposite
- slow (although that really isn't a language criticism)

Kirk Wolf
Dovetailed Technologies
http://dovetail.com

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to