> wasn't easy to port Would OOREXX 5 pose the same porting issues?
> A couple of years later I ported Lua I believe that is the implementation language for much of wiki. > I don't think ooRexx supports functions as first class objects? Alas, no. Also, while OOREXX 5 has regexen, it's missing regex features that you may be used to in, e.g., Perl, Python. > What I do appreciate about Python is it's colossal standard library and > eco-system. How does it compare to CPAN? > I'm a Vim man myself when I dwell in the shell ;) Why not emacs? > I agree but the truth is they don't really need to. I work with a lot of > really smart millennials who have a deeper knowledge of MVS internals t> hen REXX and JCL. How do they get access to logic manuals and compilation listings? -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 ________________________________________ From: IBM Mainframe Discussion List [[email protected]] on behalf of David Crayford [[email protected]] Sent: Thursday, December 2, 2021 12:46 AM To: [email protected] Subject: Re: z/OS 2.5 install with z/OSMF On 1/12/21 11:58 pm, René Jansen wrote: > David, > > Thank you for mentioning these plugins, I am certainly going to have a look > at them. > There are some things in your mail I feel I have to correct. > >> On 30 Nov 2021, at 22:55, David Crayford <[email protected]> wrote: >> >> On 1/12/21 1:55 am, Seymour J Metz wrote: >>> I just wish that they would acknowledge their abandoned child OREXX. >> IBM certainly haven't abandoned ooRexx. It's my understanding that Rick >> McGuire works on it almost full time. The mailing lists still get quite a >> bit of traffic and the Github repo shows recent commit activity. If you're >> referring the fact that ooRexx hasn't been ported to z/OS then unfortunately >> I don't see IBM committing resources to a language in decline. > IBM has abandoned ORexx; the source code was given to the Rexx Language > Association (of which I am, coincidentally, president) in 2005 already and we > have to thank Rick that he still works on it in his own time, not IBM; as do > lots of other people. It is very much alive, and at the moment better than it > ever was. I’ll leave the remark “language in decline” without comment here, > but allow me to say that if Rexx would fail at this moment, it would mark the > end of civilisation as we know it. Rexx might wel be the most under-the-radar > programming language there is, because it is very often used by systems staff > (who were never allowed to program) to save applications of otherwise > questionable architecture and implementation. Thanks Rene, I stand corrected. I appreciate you taking the effort to write such an insightful response. > > Some people from IBM have told me that there was an Object Rexx > implementation for z/OS (well, it might have been MVS/ESA or OS/390) that was > finished and ready, and was scrapped through company polittics. In this > sense, I agree with Seymour. If you look through the oorexx-dev archives you will my name attached to a z/OS port of ooRexx about 15 years ago. I got it working but it was buggy and it wasn't easy to port as the UNIX code used nefarious hacks such as using integers for pthread_t which isn't portable. Once it became obvious that integration with the MVS file system and TSO/ISPF was a very heavy lift I abandoned it. A couple of years later I ported Lua which was easy to port and inteegrates into z/OS very nicely. It supports all MVS data set access methods such as VSAM which REXX doesn't https://secure-web.cisco.com/10AufpS9N_uXofzsDcsv0gg_wU0mOHbvy_ayYdmyTXRtPkiukf7czsKVKHhvrCBhPWlTLcW3VrNieVd3vZ5u70bDXF3jh8VsBxWtM0vzxXyUtXbveLYxYCJbeMBVjexemjLppGn_u2MHMTOpIgPuHkDutCSFUCinlIL-0EwxYNoyUREu8gbk_qDpjjOqTiThj93EVRJXd7Y-TJmu3cydMN5tZEVGRtXaKLtxh9SGzgqwBSkvuaVTNGW-ggW3sVgAx3f8lbX598NKz9VTl2DLi7pkw0pMURL7kDONSGPhiQ9AYLehDZZ-_y6l5kObsgB6w_mvGg5sX86AG9xkt_ndiR0uClh93zQn6GaCRmWeFbUXTw0y0w3OIINyyKO7dJdxoEko6gcAmd4MT_vdmVueLN5XS0-BZtCRCJPM0uYS0QvYAPSyQ2jG9dnI-BCNAUNTmvuTVbcXYKuHAjSPrHDQfsA/https%3A%2F%2Flua4z.github.io%2FLua4z%2F. ooRexx is a massive code base. I didn't like the architecture very much. Everything is a C++ class, including language constructs such as If/Else etc that all use an abstract base class. The amount of dynamic dispatch going on makes it bloated and slow. Lua compiles to bytecode and uses a highly optimzed VM that is tiny and can fit in L2 cache which is why it's so fast and commonly embedded into larger applications such as video games. Lua on z/OS is an order of magnitude faster than native REXX. > As RexxLA, we did not receive this codebase; the same goes for the OS/2 > Object Rexx codebase, which apparently was encumbered copyright-wise. Where > the OREXX for MVS implementation has the status of a rumour, the mishandling > of the Linux/Windows/AIX codebase (which would be open sourced, then not, > then ‘free’ for Linux, cheap for Windows and expensive for the ’toolset’ - > and some decade later open sourced again (for which we are grateful, of > course, because even open sourcing is costly business) is public knowledge > and can be found on the net. > > For this list, it would go too far to go into the ‘LotusScript’ and > ‘DataBasic’ circumstances that probably influenced these decisions. Rexx in > decline? Not really - who would be making Microsoft Visual whatever > extensions for it if that were true. > >> It makes much more sense to port modern languages like Go, Python and >> runtimes like Node.js. Docker is going to be important for z/OS and it's >> written in Go so it's a no-brainer. We've been beta testing IBMs new clang >> LLVM z/OS port which is exciting in the fact that LLVM can be used to build >> a plethora of different languages. I particularly like Julia which has a >> similar syntax to Lua but can be strongly typed and is compiled and >> bench-tests show it runs at near C speeds. >> > I have some trouble to see Go and Python as more modern languages. A recent > book tells me there are ‘100 Go Mistakes to Avoid’ - I think I am going to > avoid only one. Python bases structure on indentation - I have trouble > calling that modern, it actually reminds me of A and B margins and BAL > sheets. And lots of ugly double underscores, if I may say. It's all subjective. I could pick holes in any language. I much prefer languages that support anonymous functions to Pythons puny lambda syntax. I don't think ooRexx supports functions as first class objects? What I do appreciate about Python is it's colossal standard library and eco-system. > > The LLVM for z/OS port actually is the best news there is here: it means we > can base an Object Rexx version on that in a number of years from now. Also, > the mainframe has gotten so fast that you probably can write an ooRexx in > Classic Rexx for it without seeing slowdown. > >> As we are discussing z/OSMF and REXX I thought I would mention the Z Open >> Editor plugin [1] for the VS Code editor. This includes the REXX LSP plugin >> [2] written by Broadcom which supports auto-completion, syntax checking as >> you type and symbol outlines. > That is great news. Although I use ISPF, LEXX or XEDIT for serious work, and > Emacs for all other platforms, I would love to see what they made, especially > for an MS platform, the company that was very hostile to REXX in the OS/2 > days - remember it initially was only in IBM’s OS/2 EE (Extended Edition). It's not your fathers Microsoft. Don't forget that MS owns Github! I'm a Vim man myself when I dwell in the shell ;) Steep learning curve but incredibly powerful when mastered. > >> Of course, this new tooling is mainly targeted at the new generation of >> mainframers and not at folks who don't like learning curves. But there is a >> lot of value to be had if you don't mind trying new things. The Zowe >> explorer VS Code extension has 46K downloads so it's quite popular. Although >> when you compare that to 46M for Python [5] you can appreciate why IBM >> ported Python to z/OS :) >> > I - personally - feel that people would be missing out when they are not > learning ISPF and JCL (and REXX!) like we did. If I was starting out in this > field, I’d rather learn something that is a nice niche instead of the > standard fare that millions of young people must have in their repertoire. > Which mostly lasts the lifetime of a JavaScript framework. Also, with all the > ‘modern’ interfaces, I never saw someone use them without having a small 3270 > window to that same box open - and asking me questions every time I passed > their rooms in the hallway. I agree but the truth is they don't really need to. I work with a lot of really smart millennials who have a deeper knowledge of MVS internals then REXX and JCL. At work most of us work in a bash shell and only use ISPF for SDSF and to submit jobs. > I feel the same goes for Python on z/OS - admittedly not having looked at it. > Does it have the same TSO, batch, console, SDSF etc interfaces as Rexx has? > Not native APIs but all of that's supported using the z/OSMF APIs wrapped in a scripting CLI https://secure-web.cisco.com/1DoHGci9erwfOjUeWeDOZOXACMh9DVy02L_OU3U0j1B_yIELSe_eWcLUhnILeqDZw_pPTvvwjH6L9Ua8kwBIk3Jqjmtgi9gnKBfMUR9GuvJRxdRwoSyDbU1QH2Rf9izGYioA8bHaFy3rBf3ywBrxVNZR1lVCDHhhwnzFBBX-2ixNm8k6K8x_in8RSV4Q1G7hzurpwPPLjPO9D9POETM2euxIWzX9e4HLGnpn-emvqmGlKO6SOQFUwqluZDGFjquzaz1LAOXx3fsJ2zghZWaSQpRVp0FpXlOx6JTg2ZSU-RqDhbNYMqLBRZYcyXLJSt3xHoNWzPLSRn41aQ829toqNfd1tLfcy_BEvb2RkwTKToz22iXZKgfBW5L59iBqate6y1Pnznaz8t6QsBjSTDKLg3csEJJOjZzks9WHqlth9NRiPmn9y1HQ96A9xxX876S5HR6gEgn9_HTk3QpRDmxLd8g/https%3A%2F%2Fdocs.zowe.org%2Fstable%2Fuser-guide%2Fcli-usingcli%2F. This has the advantage of being cross-platform. I think z/OSMF is terrific but I only use the REST APIs. > >> [1] >> https://secure-web.cisco.com/1LuaoiqpNgcZeI31zXnCoUivKMtVgeadgO-nvdZNr1cCuPVXv58wSUoj6RxC3KQjcADaRvaXnYni9bZR5VS2cepE3twdtZmh-uCYNjb0lusjcRsb6Bc15ftT4h0sRhvsYyKUwG7scDEBTfwNDVQt7dW6iyMZEb3Rb8r1l1VGAIEgFsAmeoxjbi74ABe53KkLeJL9sVWmrdXKerp7IopGT75mTe8KoN7h80CCgyTsywLJvyIfMXdDY6CCSxSOQfqefre9hE6KmJmE-Rv-RSKnm_UKt8gtuD8gub-aR9jifs8Jy4Jhf-RjWNh1XW7o7Di06ktMCGVmLqIzg9sILc7sZLA8ja8HkJuq8yVr2H1FYGHQ5EvcGnpuVvwYPy3nSZy8bDhNKdwc5iU9UtO4dlc1WWrVL_ZFswqlvf_y53iTeXTcm-2N_6kwQdDOYaI4kcHDz/https%3A%2F%2Fmarketplace.visualstudio.com%2Fitems%3FitemName%3DIBM.zopeneditor >> [2] >> https://secure-web.cisco.com/1eFWYpI6BgFWYzBC7sF4lQr3lt6koxVGncL-5_dpfZRQzq8PCfCi1124Nxfn0VhiArVLaf8KRCeu3nmqH3zp-l30BkLvGoSbbpCp1_JwHs8XmPiMIufEjyTOmqRHRNmYoNEVb1BRxoDu5ruHtzejbxMyzd4wB-HRDF7hsKb0Wa2e01yI_Kp8TqLiDbpHyCtEEqwShELhDTxhWcJ2OhcE3L789h-Npc5G-kkHn9fVDcApWtY_3rfbCpWaPpVjHjRdZsbq7xGFDMrnA5YyosMviwBi0ZQXqQfuQ1aZXfr-6RHEJIkFk5DqdiP-8P1tkNYZuO7cBlbZVmVC4RTQuqT74JewelXnPhltmbRVFTQq5tWmduDERIwfC6XcLq6y7ieuwZQqQQB41wBEd4eAR62aPXO5Cy4Ao28wvm6Y9cMJBwppqL2iZBKXiWP65MFh-atD_/https%3A%2F%2Fmarketplace.visualstudio.com%2Fitems%3FitemName%3DbroadcomMFD.lsp-for-rexx >> [3] >> https://secure-web.cisco.com/1n7pA-IE-OM6OVRegrc0BgOjPYUbJ53WJHKRDgMuDUhcQM8eYfsHMGS6H4UdzMh-Xd2t1N9vtXkQaO_MtLfCNixXJtp7g83lzlIuFt5SBprYH6f50JtYwiGsvu-UDf987Co5Qy28JbouHZ1W9xROMLn09rEdsK3209Y_GuZb0kMJM7htgVBciCdFKokOyHDcEpOvlB9Y-VMNg8cWIm2Olw-9rRQGd4OTA6b8zFo1Tm2He8YYF0SoMg1akSR521vUItdkGBr4uW_jaqndxG91ECap-IfqTtHYhiiyz4yvMQ8gZ3Y2mHYflfgYbvE7SVlaLN7v4y5W5z6tdaqogufoWW9Wrs0FeTLpyRjy5omtY9AT0tRctgtliQEx9w61M46bj6QIXF5OeEiS52ZBmWBJ9LR6Cds5RZXfYdY46YLtFoUWArXZ0c3EeibPcc9kmmyLcwGQHIngyCvN3rBXTYMFpSA/https%3A%2F%2Fdocs.zowe.org%2Fstable%2Fuser-guide%2Finstall-overview >> [4] >> https://secure-web.cisco.com/1kUt4EwL9_Vl13hPvTpCAY_NeHN8gAHYOYU9bIjBbnBe2y3NtEQFA_PLGmJRNf9V9NdPE2arXSn6FwggHI6qU77QA9i13V_u05gbnDPhWxpP6BpWX75SFqG6xb-6HWN7Z6egkrsuB4ExW5LjbfaaTcJyvqb9q2gf7zJ3onZVtQfZ2NfuFkfVsqEtcriPj7ymgPbXRmD7CBm9tuwg5DiWvvB-ksN-H1BLY5Sz7sZh-uUbd0o83uhX8GpzfmRRz7_W6IBNBL333wKBbOVH8o9CkX6B4jNSXWb64Bk1u4GEa7kcFBA81sZo1z3B44o_R2VgbshNpNN0UOaqaeBNOjwjSV8FCJK-qg7xXxN0McEU7ekNKta3s9Icx8gmbbQFsjbvXRwNvqm2PVw2ouu_Nfy63-ES_2H_5Spws-QQLiQnlAdGU-hBDxSoYsV9LspCaQXG7/https%3A%2F%2Fmarketplace.visualstudio.com%2Fitems%3FitemName%3DZowe.vscode-extension-for-zowe >> [5] >> https://secure-web.cisco.com/1DhC68_HDFFJfqt3hVRiZZ4BX3GOgcewY-jBqJctQ0WnmXgGOi1Ggo9YwcSOiLB_RffUxzcTHN3Qc65I7g5iO4bEX5QxzUC7ZZzqccwclxOyqX7fAiZwzLQLPtintZyGwFCa638kcRoVddAqDBVvCe3G7mv_P0OgiS2pf9ciqHI94_qb1Hx_k_1anmk4kd1tBdkTzQGRGGQkTqG1ETv7LWWH6OXw3l8p7C8YAk5ieBxe8lEUJ9qwekXoeB75jdYpFqwyMieaj48jgTmIv6rqZUsNrw5U6qiH2X5-B7DDIezTV-VWyepl34u1fm2LraHOY29bpv58RgTT42VM17Y-xhX3954vFsMZuBlfThU7CGoVAmal3Xefizbxhke-teKHbBV8-GtDHjkFN_MQrXHw8jQ4hyLXGHsuSl4XrOMwOrpdzCSGmsbsqzKg_gT63HBPg/https%3A%2F%2Fmarketplace.visualstudio.com%2Fitems%3FitemName%3Dms-python.python >> >> >> >> ---------------------------------------------------------------------- >> For IBM-MAIN subscribe / signoff / archive access instructions, >> send email to [email protected] with the message: INFO IBM-MAIN > > Best regards, > > René. > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to [email protected] with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
