The only meaning that I'm familiar with is the one that I get on a search for 
'callback definition programming'. Or were you thinking of a non-computer 
contest?

The ,array class goes all the way back to OREXX in OS/2. 5.0 adds a regex 
class, but it doesn't support captures, and I rely on them heavily.


--
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: Thursday, June 24, 2021 5:00 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Coding for the future

On 24/06/2021 9:23 am, Seymour J Metz wrote:
> You invoke ISPF. You call a REXX script for ISPF. The script does ADDRESS 
> ISPEXEC foo and ISPF gets control back. It's well documented in the TSO/E 
> REXX Reference, and other implementations have essentially the same API. 
> Basically, when a REXX-aware application creates an environment, REXX 
> associates context with the environment name; when a REXX script routes a 
> command to that environment, the environment block contains the context so 
> that the application can locate its control blocks. It's quite elegant, and 
> REXX does all of the heavy lifting.

Yes, I'm familiar with the environment block as I have used IRXSUBCM to
create host command environments. In my case I had to use CEEPIPI to
create an LE environment for the C++ regex library. The environment
block has a user context pointer which is very useful. I was confused by
the term "call-back" which means something quite different to me.


> On the flip side, prior to OREXX everything was a string; there was no type 
> checking, only value testing. Also, the exception handling is fragile 
> compared to PL/I, Python or Ruby.

I noticed that ooRexx v5 has introduced array types which is long
overdue. Stem variables are hash tables so performance is not great when
iterating.


>
>
> --
> 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: Wednesday, June 23, 2021 8:57 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: Coding for the future
>
> Maybe I'm missing a subtlety here but can you demonstrate how REXX uses
> callbacks on z/OS? I'm familar with command environments, I've written
> one for REXX regex 
> https://secure-web.cisco.com/140q8fxdqURUGvmth2nK_lOrDPN09AtW0cBfgGnzMZm6MOvOho-HriWxdOrBSwiPotV2P6kacF9rpRwTORQsYeHqbOlnMFxHuUDYsjYnWlk0z0sR7CYhLEzIyd-DL6yuI6IRotLmLhmT3RbCQk9-VO0E6-NE3tyAdm1jgxYV9K6GosVOwG_tqv0j_Iv7TeRrCoUvhQ5ZNmnH2N9gR8CjU9xFydEZWlX1Y702G19rTTW9fV0qRkhU5kTGg16f16KMPIZbaB7Cqk0evdWJylMOkSMkIA5PECEmFeyiQXvrOBE2LDvGMC16AK6OZg5xdnzeWpSgm_g5F-nCgOQjteQ_82RUkquwXW_WqLZq0S0yXoz4PpyFEFJrpl2iZboK4FhuXZdrvui3BqiSrz0nKNJYIXUNRpVzfCH02p2xcc1Oqa0Lrndw3QSeal5ZFf3sRqGP-/https%3A%2F%2Fgithub.com%2Fdaveyc%2FRTK.
>  In Python, Lua etc you
> would just create an instance of a class an communicate using message
> passing like any OO language.
> For example, to create and ISPF in Lua you instantiate and ISPF object
> and then communicate with it by calling methods
> https://secure-web.cisco.com/1qsEFCKQQ8_UfI8nvAPUHIHUMRsk8zVcv8tyCsWKzPB5x6Iqcinh6eFRTvMYUE_fu4U_RlstYoTVGhhME8x92IIYlUFy0AvsQ_osnJyM5U0ASEu77n43wTA2l6-3XA99vaRmgsICvmmQW_Wlc1RO5W5SsL6uXFqvGMNSV5d2Swy6V131ckAPNDw9a-BsfYVkO5DRvOINNh9iJZqVw466fpXNjZh1CsFmaMQcpIvnXTnndqgbQwZw4yzPuxvmWTf__4ssShTUeQnjYxO6gcW4YsvpHhQslzGOP7V45e2SIHjYK3A2EGLp3hyelRfJG9gh3h0qFBX_1a5X08xba0wB0HwMXf4VyHIzAvI5LKoqvrMA90FsZq4h6TMxefXsiXKHALdxZV9djrJXqln73WhSCoaNFiVgG9C-wOFEwYW7bB12UrfhpL6v1ZJ3Hxudjq_4kHxQJuH7g6y4Brb90haU3vA/https%3A%2F%2Flua4z.github.io%2FLua4z%2Fmodules%2Fispf.html.
>
>
> On 23/06/2021 7:04 pm, Seymour J Metz wrote:
>> Allow applications to establish environments for scripts (ADDRESS) , allow 
>> call-backs from within scripts and access the variables of the scripts. I 
>> wish that I could do that from within Perl, although I'd take the time to 
>> learn Python or Ruby if they supported that.
>>
>>
>> --
>> 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: Wednesday, June 23, 2021 3:19 AM
>> To: IBM-MAIN@LISTSERV.UA.EDU
>> Subject: Re: Coding for the future
>>
>> On 23/06/2021 10:38 am, Seymour J Metz wrote:
>>> None of those are relevant to what REXX does best. Again, it's the 
>>> plumbing, not the syntactic sugar.
>> What exactly does REXX do best? What does it do better than Python?
>>
>>
>>> As to large applications, I believe that there are some pretty big ones in 
>>> Perl and REXX, so why should I be surprised by large applications in, e.g., 
>>> Python, Ruby?
>>>
>>>
>>> --
>>> 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, June 22, 2021 7:25 PM
>>> To: IBM-MAIN@LISTSERV.UA.EDU
>>> Subject: Re: Coding for the future
>>>
>>> On 22/06/2021 10:19 pm, Seymour J Metz wrote:
>>>> It's not a question of what environment it can run in; it's  a question of 
>>>> what facilities it supports in those environments.
>>> Indeed. Lua supports TSO, ISPF, CICS, IMS, the full MVS file system
>>> including VSAM. DB2 SQL + a SQLite API. A date/time module that supports
>>> dates that are greater than Mon Jan 01 1000000 BCE 00:00:00 and less
>>> than Mon Jan 01 1000001 00:00:00 etc, etc.
>>> We presented at SHARE where we demonstrated how to use Lua integration
>>> to convert a 3270 CICS BMS application to a mobile web app
>>> https://secure-web.cisco.com/1LTRemd3KBmC5tUUKSeo9EC5h9xyRF7Bz3PhdCSMXFnXeU9xUYZAMVe5chb0ZaeK3DMtRGm6fXidrWX-DdewRuiBFuunmJgylrBSK2m0dxTkBwteMqPfIErfpIkx2t0yKE_X4Vvjo2z5bwL3x5Gzol57ueWGXt0mRa5LkbagnGSXpBSeh0a0sqCHTv7dZ_yP7bvWRZEdnEhIKqF6yOijhnDFn7l75N3TqnoUwxHNnsOFWy_ZGihMqSRgOpFgNGT29c3jEMR9BWE6SwalS5Fq9qCm5mI3QT3QGXbhUjO6A4bL_zu9qSlFAFZM7PJeBTr73ngdhubfDFqh0fRWaFg5cyBhzcMGUTVbEV5QWTr76UNB_zRihnfVeyioclr2jou2HVmP2A7PlvHHZDFG0y1o-fR5mEjE0DxE6Jrzclf2Oy-W2TISt9m1rarhndnanZuca/https%3A%2F%2Fshare.confex.com%2Fshare%2F123%2Fwebprogram%2FHandout%2FSession15892%2F15892%2520Mobile%2520CICS%2520Application%2520Using%2520Lua.pdf.
>>>
>>> I spent a lot of time making sure Lua integrated well into the TSO/MVS
>>> environment. The irony is I spend very little time in TSO/ISPF these
>>> days. I spend most of my time in a shell and switch the ISPF when I want
>>> to use SDSF. I write new scripting code in Python which is enhanced
>>> ASCII so only
>>> runs in z/OS UNIX. Rocket and IBM don't see any value in integrating
>>> ported tools with TSO as it's not strategic. The main focus is on
>>> containers.
>>>
>>> BTW, did you know that the photo sharing app Instagram is written in
>>> Python? It's staggering to imagine that what we would consider a
>>> scripting language is serving over 1 billion monthly users.
>>>
>>>
>>>> --
>>>> 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, June 22, 2021 9:57 AM
>>>> To: IBM-MAIN@LISTSERV.UA.EDU
>>>> Subject: Re: Coding for the future
>>>>
>>>> On 22/06/2021 8:55 pm, Seymour J Metz wrote:
>>>>> What distinguishes REXX is not syntactic sugar but the plumbing that 
>>>>> enables close coupling of scripts with applications. Lua is missing that.
>>>> Maybe. But I can't think of an environment that REXX runs in that Lua
>>>> can't. I could port Python to run in TSO if I had the time but it's a
>>>> heavy lift. IBM have ported golang now which is compiled. We've had a
>>>> look at it and it's interesting.
>>>>
>>>> ----------------------------------------------------------------------
>>>> 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
>>>
>>> ----------------------------------------------------------------------
>>> 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
> ----------------------------------------------------------------------
> 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

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