I think we will have to agree to disagree Rene. I certainly don't want to engage in a sh**storm because I respect you.

I'm a REXX expert. Not only do I know the language I have written many extensions. It's not easy because the REXX API is designed for HLASM so I had to write a CEEPIPI glue module. Horrible REXX fact is REXX is dog slow. The DSNREXX command environment you cited took 12secs to run a query that luasql ran in 0.03 secs using ODBC. Reading a large file using EXECIO is 3 orders of magnitude slower than using Lua. SDSF? A lot of my workmates are ex IBMers some of whom worked on FileManager. REXX was so slow they had to dump it and write a subset for the product. There is no Lua API and I don't care about performance. We also got Lua running in CICS so we could replace a 3270 application with a web application shorturl.at/ilyFG. I don't use Lua much these days as I am mainly a Java programmer. My background is 35 of years HLASM, REXX, CLIST, COBOL, C/C++, etc, etc, etc.


On 8/1/22 9:49 pm, René Jansen wrote:
I thought gmail had eaten my reply so I took some time to give you a more 
elaborate reaction. I am still sorry that you need to resort to ad-hominems but 
I would like to give you some facts. It is not only my undeniable love for Rexx 
(but I do program in anything that the job requires, even ABAP, well maybe not 
that anymore), but also for z/OS, and the facts are these:

Rexx has (on z/OS, at least) the following address environments:

TSO
MVS
ISREDIT
ISPEXEC
ISPF Panel Rexx
ISPF File Tailoring Skeleton Rexx
CONSOLE
LINK, LINKMVS, LINKPGM, ATTACH, ATTCHMVS, ATTCHPGM
SYSCALL
SDSF
DSNREXX
IPCS
IRRXUTIL
RACVAR

Then there is:
System Rexx
Rexx/CICS
and I even saw some NetView Rexx only last year.

There are very many samples of how to use MQ, DB2, ICSF, DFDSS, VSAM (you told 
us that Rexx does not support VSAM but that is also plainly untrue, there are 
many ways to do that), variable record SAM. Someone starting on the platform 
with only Python in their repertoire would be lost.

I fail to see how much computer science gimmickry (which I also enjoy, really, 
but on the Raspberry Pi and the macbook) that mostly is available in the latest 
releases of coming and going fad languages (you mentioned Swift as one - Swift 
I appreciate because of the Objective C integration as not to invalidate 
people’s code, and those clean OO concepts which make C++ seem overcomplicated) 
*compensates* for not having these interfaces to the platform. I worry for the 
platform when its originator deprecates it in an act of self-harm. Personally, 
I think that Linux is better done in Linux than in USS, at least in Linux on Z, 
which makes people happy while still running a solid platform.

I also like the other languages you mention and I see the appeal of Lua as a 
macro language for gaming and LuaTeX. Still, numeric support is bad and Unicode 
support is worse. It does macro language worse than the original macro 
language, certainly on z/OS. For applications you don’t need those interfaces, 
but then I would like to see Elixir, and maybe Prolog and APL in open source 
versions, instead of all those small variations on C, C++, Java, JS - the 
aforementioned really bring something to the table.

Unless a lot of work is done to make Python support the above list of 
interfaces, it is - in my view - plainly the wrong proposition for the 
platform. Maybe some good examples of how to use IRXSUBCM, SHVBLOCK, ENVBLOCK,  
EXECBLK and EVALBLOCK from Python would help in addressing these interfaces. 
You can interface Python using C routines to those (need examples), but I think 
that would needlessly complicate things, as opposed to the language that has 
syntax for that.

So I stand by my original propositions, but after being called unprofessional, 
a luddite, red flagged and whatever after mentioning factual truths, I fear for 
the quality of the discussion here. To really modernize, lots of device 
specific code needs to be taken out to adapt to the current reality (DB2 did 
that some years ago and guess what, taking out the optimizations for 
non-existing disks made it faster), the strong points of the OS (LPA, LLA) need 
to be reinforced for newer software, TCP/IP within the boxes still needs to be 
a lot better, better scripting level tools like Pipelines (that know about the 
environment) need to be included (doesn’t IBM look at SHARE requirement 
anymore?), instead of building layers on top of it, like new filesystems added 
on top or equivalent scripting environments added that can do less than the 
existing ones. And there is always the danger of fighting the last war.

best regards,

René.


On 8 Jan 2022, at 07:49, David Crayford <

Nobody is denying the value of that code. I wrote thousands of lines of REXX  
code for system automation back in the 90s

I just can’t find a use case for writing new REXX code today. Everything had 
changed.

On 8 Jan 2022, at 19:40, René Jansen <

Well I am explicitly not reacting on another round of namecalling. What is 
worrying to me is the denial of the value of all existing interfaces in the OS 
and infrastructure to the standard scripting language on the platform, making 
the ‘modernization’ effort a reduction to uss, which will be hated by everybody 
used to Linux. But if the reaction consists of ‘unprofessional’, I’m done.


On 8 Jan 2022, at 05:43, David Crayford <

Why not compile lua to support utf8?

Your unrelenting love of REXX worries me. it’s  the perfect example of personal 
preference over a functional requirement which is unprofessional and a red flag.

On 8 Jan 2022, at 14:57, René Jansen <
I looked at your list and I am happy to see that these include the things you 
find important. JS is undeniably a big factor but “the good parts” is a thin 
booklet. As is groovy - slow and nevery had any appeal to me, just looks messy. 
I quite like Ruby as an idea but slow as molasses.

Today I looked at Lua, and although quite elegant, small and snappy, I am 
really disappointed that this is one of those languages that gives you wrong 
answers for numeric problems and having unicode support in a utf8 library that 
is different from the string functions - that is just funny. I am not implying 
that all Rexx implementations shine in this regard, but that is just neglect. 
NetRexx does, however, as it does in unlimited decimal precision arithmetic.

Of course NetRexx can use the Java stream API for functional programming. That 
remark is just as odd as ‘it only has one type’. The fact that it is from 1995 
and can use features that only appeared in Java 8 - personally I find that 
telling about the quality of the design. But I am not telling you that you need 
to like it - like the way we are told that we now need to like Python more than 
Rexx, while it cannot do what we need to do - for all the wrong reasons.

Looking at your list of requirements I think Scheme had it quite covered. Some 
of them are gimmicky and some seem useful. None of them address the core 
qualities of the mainframe, which are Channels, packed decimal, DB2, CICS and 
COBOL (as long as you forbid dynamic memory).

I think the discussion has strayed too much from what sparked it, which is a 
hitpiece with 8 untruths about Python and Rexx. Yes we like all languages to be 
available, and well maintained on z/OS. Please provide interfaces and 
precompilers for the main infrastructure. It is remarkably odd that IBM does 
not invest in the things that made the platform what it is, but it is not my 
problem. If the message is that the mainframe now can run the same software as 
the Raspberry Pi or your generic AWS instance, so be it.

I think you will find that other people are emotionally attached to their tools 
and programming languages, it is a human thing. Also, I found that not all 
people can easily switch between a large number of ever-changing programming 
languages; which is meant as a compliment to you; but nevertheless very true.

So I thank you all for a very interesting discussion.

Best regards,

René.

On 7 Jan 2022, at 20:53, David Crayford <
I could go on. Even Java supports functional programming since Java 1.8 and 
which introduced the streams API. It's unusual to see and old school loop in 
modern Java code. Even C++ has lambda's.

I missed "closures" on my list which code hand in hand with "functions as first 
class objects". Very powerful, for example in Kotlin you can easily create type safe builders 
(DSLs)
That's why I have absolutely no interest in NetRexx. I have far better options 
on the JVM. I don't get emotionally attached to programming languages. If a 
better one becomes available I will quite happily switch as I have done
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to

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