I have been using REXX for making small tools for myself for last one year, and I have always wondered why most of MF professionals still know very little abt it??
Its such simple, yet powerful lang, still not very widely used. One of my senior told me that REXX codes eat up more of CPU time, and hence in long run they are not preferred!!
Would like to know disadvantages of using REXX codes !!
Your question is interesting, and possibly a bit difficult to answer.
I think that the tools that you are accustomed to using have a lot to do with what your role is in the IT organization and how your are expected to fulfill your duties. I would imagine that most folks don't know about or don't use REXX because it's not an integral component of their job. If your job entails writing large-scale applications, with massive amounts of file I/O, transactional processing, message queueing, multi-threading, and database interaction, why would you want to divert from the usual tools, such as C, COBOL, Easytrieve, SQL, and 4th-Generation languages?
You ask why REXX is not widely used. I believe that it is, again, depending on what your role is. REXX is the de-facto standard scripting language for system automation across multiple enterprises. Anyone who is involved with automation, scheduling, EDI, data transmissions, enterprise service-level monitoring, or operations is probably quite familiar with CLIST and REXX and probably use one of the two almost exclusively. A lot of the folks using a language like REXX are those that don't have a background in programming and don't have the expertise to use a structured language like COBOL.
There seems to be some wide-spread mis-information going around that REXX is the only language to use for TSO and/or ISPF applications. Nothing could be further from the truth, as neither TSO or ISPF care what language is used for automation. Personally, I have always used, and will continue to use, COBOL for any ISPF dialog sessions that I implement for a cross-company standardized process. Being that I am not a programmer, I will continue to use REXX, Java, and Java Script exclusively for automation (Mainframe and Distributed) and for small, single-purpose dialogs or edit scripts.
You ask what would be considered to be the disadvantages of using REXX. A few I can think of:
- File I/O speed. REXX is notoriously slow.
- Lack of native support for any file access method other than QSAM.
- Lack of native support for CICS or database access.
- Report writing. It is much harder to format numerical data
for presentation output in REXX than in a language like COBOL.
- Mathematical precision.
- Execution speed. Compiled and Optimized programs will run faster while using fewer resources.
My 2 Cents :
1. REXX is not precompiled and thus whenever you run the rexx it is first compiled and then creates an execution plan which makes it slow.
2. As you know, most of the organizations are now concerned about the cost of mainframe usage charged by IBM and they are planning to shift to new technologies (Oracle/CRM/ERP etc).. So, given the fact that the mainframe CPU time is a great concern for organization and REXX utilizes a lot of CPU time in comparision of COBOL or any other language, they discourage use of REXX as a programming language.
3. To control the network traffic..
Joined: 10 Mar 2005 Posts: 432 Location: Milan, Italy
For what I know, and is not enough, what Mr Kevin say is true
(it's really an Expert) but I believe also that Rexx has the power to grow.
First of all most of folks when think that Rexx means: panels, script,
skels and other kind of applicable concept to the Dialog Manager for ISPF
but few folks knows that this kind of use is also available to C,COBOL,
FORTRAN,PASCAL and few of these has the courage or want to use other
language than Rexx to create application and I suppose that's,
perhaps, for the "complex" structure that other language need to do the same.
Another question is the compiled mode to use Rexx.
All of us know that Rexx is slow because it must "compile" each
instruction each time.
But if you knew that there's a way to run your Rexx program faster with a
In my opinion, a great grow up is de-facto(thanks to Mr Kevin for this terms,
I'm learning more from you, and not only in prof terms) in act because Rexx,
at the moment can access to other file than QSAM and to DB2 also(this growing up
is perhaps only in my mind because I've recently found news about the Rexx use).
Personally I found Rexx really interesting too, I've programmed in other language,
but with Rexx I can't stop...I think that tie all the ability of mf in easy
way and allow you to do ALL you really want to do...
Rexx has many advantage and disadvantages but which language doesn't has?
I assume that the really reply to your post, that does not exclude the reply of
Mr Kevin that's true, is that usually Rexx is learned from the manual and not
in a classroom nor in a course and so everyone take a few part, a chapter or a
paragraph of it.
As often happens I can be wrong, but I always hope to help you.