ooRexx has two main issues: its a superset of REXX, which is a subpar programming language, and it consumes a lot of CPU resources. Each language clause in ooRexx is a C++ object that invokes dynamic dispatch whenever it's executed. Unlike most other sensible programming languages, which compile to bytecode and use a virtual machine, ooRexx does not. When I benchmarked OoRexx against Lua, I was surprised to find that it was almost 100 times slower. I used valgrind to profile ooRexx's performance and discovered that most of the time was spent allocating and marking objects for garbage collection. These objects were language metadata used by the interpreter. ooRexx is an example of how not to implement a language interpreter in C++.

On 28/2/23 20:28, Seymour J Metz wrote:
What about Java? How well does JIT work?

The gold standard for REXX is ooRexx, but IBM has not seen fit to integrate it 
into z/OS or z/VM.

However, for off the shelf package libraries, Perl and Python are admittedly 
ahead of REXX. What are the Python and Ruby equivalents of CPAN?

I've found extending REXX for CMS and TSO to be easy, although admittedly 
assembler is mothers' milk to me and I didn't have to deal with LE issues.


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
David Crayford [dcrayf...@gmail.com]
Sent: Tuesday, February 28, 2023 12:47 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: zOSMF and zOWE for non-mainframers

On 25/2/23 01:23, Farley, Peter wrote:
Python on the mainframe is pretty good, but still can't beat out Rexx in 
performance even when the Rex script needs to use BPXWUNIX and friends to 
access z/OS Unix file systems,

I have conducted a series of benchtests, and the results suggest that
REXX is not as fast as Python. In my testing, I compare the performance
of C, Lua, Python, and REXX, and the results are clear: C is the
fastest, followed by Lua, which is within an order of magnitude of C.
Python comes next, within an order of magnitude of Lua, and REXX
consistently performs the poorest. In addition to the performance
factor, the vast Python ecosystem compared to the limited options
available for REXX also make it an easy decision. Python is also simpler
to extend with packages, while REXX requires more effort and potentially
complex steps, such as using modern libraries that require Language
Environment (LE).

----------------------------------------------------------------------
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

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to