Link to the Lua CICSs 3270 SHARE presentation shorturl.at/ilyFG

On 8/1/22 10:29 pm, David Crayford wrote:
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