On 30/06/2022 2:58 pm, David Crayford wrote:
REXX is never the right language unless you have no choice, such as
using an API such as SDSF or an environment such as Netview.
I'm going to take that back, which is unusual for me. I just realized
that I have recently coded lots of REXX that uses the SDSF API. I create
JSON which is processed in a pipe by Python code using the curses
library so I get the goodness of SDSF without having to leave the shell.
I also wrote a Redis command processor called RedisRexx. It's a good
example of where REXX is a good choice and pleasant to use. Redis turbo
charges REXX. You can use it for pub/sub models where you run pools of
address spaces to process tasks or as a distributed data structure
server. REXX doesn't have sorted sets, binary trees etc and Redis
provides that and is lightening fast.
On 30/06/2022 11:21 am, Charles Mills wrote:
Charles knows C++ so I don't understand why he would pick REXX
One factor is that my deployment machine does not have a C++ compiler
and does not share DASD with my development machine. So for C++ the
cycle is
- Edit in IDE on Windows
- Build in IDE on Windows; get to clean compile
- Upload to development machine
- Build on z/OS (hopefully no z-specific errors; if so, iterate)
- Copy load module from development to deployment (complex load
module FTP)
- Test
- Repeat as necessary
For Rexx OTOH the cycle is
- Edit in text editor in Windows
- Upload to deployment machine (simple ASCII text upload)
- Test
- Repeat as necessary
You need a better IDE. I recommend Intellij.
A much faster development cycle.
I built, tested and deployed the new HLASM module and the Rexx code
in about 13 hours billable (including all the discussion here). I
doubt that I could have done that with C++. There is more to "best
language for the job" than elegance, conciseness, "modernness" and
efficiency of execution.
For Python there is no way of knowing, but I think I might have spent
that much time trying to get Python downloaded and installed. IBM
manages to make the most simple tasks difficult. For one of the two
machines I would have had a "business" or "legal" issue that might
have taken 13 hours; certainly would have taken weeks elapsed. And
that is before any "learning Python" issues. I am sure it is a
wonderful language, but I think it is wishful thinking to say "see,
you had some API issues with Rexx; therefore you would have been
better off with Python." I suspect I might have had some API issues
with my first Python program. <g>
Also, I get great Rexx community support right here on this forum.
Where would I go for mainframe-specific Python community support? I'm
sure there is some relevant forum, but how active is it? OT, but I
have gotten pretty unhappy with Stack Overflow. Too many questions
there now seem to draw a "not a perfect question" rebuke from some
self-important moderator.
BTW, I do think I might want to learn Python. I bought an O'Reilly
textbook. I have a six-hour flight coming up, and I think that it
might be just perfect for learning Python.
Charles
-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU]
On Behalf Of David Crayford
Sent: Wednesday, June 29, 2022 3:27 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Some questions on SYSCALL
On 30/06/2022 5:52 am, Bernd Oppolzer wrote:
The only reason why your Python code is shorter is because you use
the builtin os.walk method to walk through the directory recursively.
Isn't that the point? Python has an enormous standard library to do
useful things. Also note the use of iterators (or generators). In most
languages I use you can turn a subroutine inside out
that returns a value using "yield". The advantages of this model should
be obvious. If you wanted to grab the first 10 items from a list of
100,000 you don't need to build the entire list as you would with REXX.
Going back to Charles original requirement and why I piped up. Charles
knows C++ so I don't understand why he would pick REXX for a z/OS UNIX
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN