On 29/06/2022 11:07 pm, Rony G. Flatscher wrote:
Hi David,
On 29.06.2022 15:54, David Crayford wrote:
I know ooRexx. I ported it to z/OS 10 years ago but it was buggy and
slow.
Hmm, ten years ago? Over time there has been so much improvements in
these and other areas including a testing framework with quite a
comprehensive coverage of the ooRexx interpreter.
There is zero chance of IBM or a vendor wasting resources on REXX
today as there is no market for it.
Hmm, so you speak for IBM? The REXX infrastructure, the REXX experts,
the ability to learn REXX (and ooRexx for that matter) in a short
time, becoming empowered to solve mainframe based problems quickly and
the like does not constitute a USP (uinque selling proposition on the
market)?
I don't speak for IBM but we provide the SciPy libraries for the IBM
AI/ML products.
Now we have Python on z/OS REXX is very much a legacy language.
That's even more pertinent with the shift from TSO/ISPF to IDEs.
Hmm, so Python is the end of the world as it solves everything? No
other language stands a chance anymore?
Python isn't my favorite language I just can't see any use for REXX
outside of TSO/ISPF.
I could be wrong and I'm willing to be turned. I'm a big fan of Lua
which I consider to be the most elegant language I know.
Sure, Lua - like many other languages following different paradigms -
is an interesting language, but it could not be used to teach Business
administration students programming from scratch within four months to
the extent that in the end they would be able to program Windows, MSO,
create complex, portable GUIs etc. on their own. It can be done with
ooRexx (and the BSF4ooRexx function library bridging ooRexx and Java),
believe it or not. As a result it is cheaper to learn ooRexx, and the
problem solving capacity one gains with it quickly is really quite
unparalleled.
Having REXX/ooRexx one is able to easily orchestrate and control other
software. If need be one can bridge REXX/ooRexx easily with
specialized software like database management systems (who would write
one in REXX or Python for that matter) and the like.
In today's world I would deploy Java everywhere and exploit Java class
libraries as much as possible from other languages, if need be. For
the latter to be feasible you need a flexible, dynamical and easy to
use language which is proven, which can be said of ooRexx with the
ooRexx-Java bridge.
It can easily be used to write DSLs for configuration or model
development. How do I write a DSL in REXX?
Why would I want to? Why not: "How do I write a DSL in C++?"
https://leafo.net/guides/dsl-in-lua.html
REXX is such an easy programming language that one does not need to
create yet another language to make it usable. ;)
If really needed one could create DSLs with ooRexx as with any other
programming language, of course.
Really? Lua supports closures which is why it can be used for DSLs. REXX
does not. You would need to write a parser.
---rony
On 29/06/2022 9:41 pm, Rony G. Flatscher wrote:
Hi David,
On 29.06.2022 14:06, David Crayford wrote:
On 29/06/2022 6:37 pm, Seymour J Metz wrote:
Sme, but manageable. The article Safe REXX at
<http://www.rexxla.org/Newsletter/9812safe.html> and
<http://www.rexxla.org/Newsletter/9901safe.html"> has some tips on
avoiding REXX pitfalls.
What's the point in managing something when you can just use a
better language? It's a good time to be working on z/OS as we have
an abundance of choice. That's not entirely obvious on this forum
where every problem seems to be met with a ham-fisted REXX solution.
Yes, Crayford's bashing REXX again. I have some experience of using
z/OS UNIX REXX services but I didn't find it productive. Maybe
somebody with more knowledge than me could post a snippet that
demonstrates how to recursively traverse a directory tree printing
the entries.
The problem is that this is not constructive. Not sure why it is so
important for you to bash REXX even if it makes you look bad at times.
REXX in the mainframe world (I learned REXX for the first time on a
VM/CMS 370 system a few decades ago) is of course a great - and
unmatched - productivity tool and as a result over the decades there
has been an incredible amount of useful REXX inventory created.
Best, REXX is easy to learn and easy to use like no other language
of that power.
If you were to know ooRexx you would realize that porting it to the
mainframe would even help yourself and everyone else to settle on a
few important languages and not being forced to go astray with this
language for solving this particular problem, that language for
solving that particular problem, and then suggesting to use yet
another language for ...
Porting ooRexx to the mainframe would allow for keeping the existing
REXX programs running with ooRexx (the design of ooRexx - by demand
of IBM's customers - is such that it is compatible with classic
REXX). Therefore one can use ooRexx to run existing REXX programs
and one could use ooRexx to create new classic REXX programs.
Only then would one become able to take advantage of the many new
ooRexx features like becoming able to fetch e.g. stems by
reference, or using ANSI REXX' "address...with" (e.g. redirecting
input from stems or standard and error output to stems), being able
to create public Rexx routines (can be directly called from another
REXX program) and much more.
Doing so would be sensible as it allows for exploiting the already
known programming language, its environment and existing REXX
infrastructure; one would gain new abilities and options from then on.
Also the important property - being able to learn and understand the
language quickly - remains intact with ooRexx, it just increases the
problem solution capacity dramatically by embracing the
object-oriented paradigm the way it does.
If Business administration students are able to learn ooRexx from
scratch in just four months such that in the end they have become
able to create programs for Windows and Microsoft Office (after only
two months) and portable (running unchanged on Windows, Linux and
MacOS) applications including OpenOffice/LibreOffice and even JavaFX
(!) GUIs (after another two months, exploiting all of Java which
gets camouflaged as the dynamically typed, caseless ooRexx, without
having to learn a single line of Java; one only needs to be able to
read and understand the JavaDocs).
So it is feasible and not expensive at all to teach newcomers to
program in ooRexx. Putting ooRexx into the hands of REXXperts like
the ones that can be found here, would be a real and important boon ...
As IBM has been successfully porting quite a few programming
languages to the mainframe, it should be feasible to port ooRexx as
well as ooRexx is purely implemented in C++ (it has in addition a
very nice and powerful native API to the interpreter) making a
modern and powerful incarnation of REXX available on the mainframe
where REXX was born ...
---rony
----------------------------------------------------------------------
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