Re: z/OSMF PSWI

2022-09-25 Thread Barbara Nitz
>What I see is that z/OSMF development is following the same path as all of the 
>other 'lets get modern' projects.   You pick the pretty GUI you like and start 
>applying that toolset against a currently working 'solved' problem.   
>Promising modernization according to latest hot topics in code development.
>Buzzwords come and go, languages come and go, software development kits come 
>and go ad infinitum.
>
>What tends to be forgotten are all the time and effort spent on building the 
>solution to the old solved problem.   I can remember many discussions here and 
>elsewhere about ServerPac changes and difficulties that could benefit by more 
>development changes.   
>
>Who remembers all the IBM and OEM 'assistance' products created to buffer us 
>poor feeble support teams from the evils of SMP or SMP/E.  
>
>z/OSMF is just the latest way to 'dumb down' the complexities for the masses.  
>  But then reality steps in.   Somebody, Somewhere HAS to know what has to 
>happen when the rubber meets the road.   And navigating from the GUI through 
>the stack of products to get to the Road is a long and twisted path.
>
>IF (a big IF) you think the same way the GUI developer thinks, then life can 
>get smoother.  Any attempt to repeat the processes that were repeatable and  
>have worked before will meet resistance.   
>
>With the removal of old options like ServerPac and being forced to the new 
>paradigm  of z/OSMF will eventually lead to a better z/OSMF tool.  But lood 
>for years of development just like ServerPac needed to achieve its popularity.
>
Amen.

If I still had to install a new z/OS version before retirement, I'd go back to 
CBPDO. It's a bit more work because I have to do the apply myself, but it's 
tried and true, and I have used CBPDO on any product we have had to install 
except z/OS itself (Java, the compilers,  ...)

Regards, Barbara Nitz

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: z/OSMF PSWI

2022-09-25 Thread Barbara Nitz
>Create SYS1.IEBCOPY(IEBCOPY)?
>
>> Maybe, somewhere in the middle, IEBCOPY is relocated...

Or a ptf hit the ibm command processor, so each and every command issued 
abends

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: IBM python documentation?

2022-09-25 Thread Wayne Bickerdike
Shades of Monty Python:

IBM:
"Can I help you sir?"
Customer:
"I'm looking for an MVS IO package for Python".
IBM:
"You're the fifth bloke in here today asking for that, there's no demand
for it.."

On Mon, Sep 26, 2022 at 1:15 PM David Crayford  wrote:

> On 26/9/22 10:43, Charles Mills wrote:
> >> It's trivial to write an MVS I/O package if you have a C compiler.
> > One might ask then why IBM has not done so.
>
> I would suggest that they have not had a requirement. IBM use Python in
> their analytics products and for new stuff like Ansible. Same with
> golang, they need it for Kubernetes and OpenShift for z/CX containers. I
> doubt very much if many customers have tried golang. It's a great
> language now it supports generics. As fast as C++ with many advantages.
>
>
> > Charles
> >
> > -Original Message-
> > From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU]
> On Behalf Of David Crayford
> > Sent: Sunday, September 25, 2022 6:57 PM
> > To: IBM-MAIN@LISTSERV.UA.EDU
> > Subject: Re: IBM python documentation?
> >
> > On 26/9/22 07:34, Farley, Peter x23353 wrote:
> >> I know Rocket's port of python has some documented enhancements to
> support MVS dataset access among other things, but I have failed to find
> any documentation on the IBM websites for an IBM-produced "python
> Programmers Guide" (or similar) that would describe and provide examples
> for any "IBM-specific" functional enhancements to the base language
> facilities.
> >>
> >> Is there any such documentation?  Or are the python.org documentation
> websites the only reference material available for the IBM port of python?
> (i.e., no functional enhancements at all are provided in the IBM port)
> > Correct! It's trivial to write an MVS I/O package if you have a C
> compiler.
> >
> > --
> > 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
>


-- 
Wayne V. Bickerdike

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: IBM python documentation?

2022-09-25 Thread David Crayford

On 26/9/22 10:43, Charles Mills wrote:

It's trivial to write an MVS I/O package if you have a C compiler.

One might ask then why IBM has not done so.


I would suggest that they have not had a requirement. IBM use Python in 
their analytics products and for new stuff like Ansible. Same with 
golang, they need it for Kubernetes and OpenShift for z/CX containers. I 
doubt very much if many customers have tried golang. It's a great 
language now it supports generics. As fast as C++ with many advantages.




Charles

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of David Crayford
Sent: Sunday, September 25, 2022 6:57 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: IBM python documentation?

On 26/9/22 07:34, Farley, Peter x23353 wrote:

I know Rocket's port of python has some documented enhancements to support MVS dataset access among 
other things, but I have failed to find any documentation on the IBM websites for an IBM-produced 
"python Programmers Guide" (or similar) that would describe and provide examples for any 
"IBM-specific" functional enhancements to the base language facilities.

Is there any such documentation?  Or are the python.org documentation websites 
the only reference material available for the IBM port of python? (i.e., no 
functional enhancements at all are provided in the IBM port)

Correct! It's trivial to write an MVS I/O package if you have a C compiler.

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


Re: IBM python documentation?

2022-09-25 Thread Charles Mills
> It's trivial to write an MVS I/O package if you have a C compiler.

One might ask then why IBM has not done so.

Charles

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of David Crayford
Sent: Sunday, September 25, 2022 6:57 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: IBM python documentation?

On 26/9/22 07:34, Farley, Peter x23353 wrote:
> I know Rocket's port of python has some documented enhancements to support 
> MVS dataset access among other things, but I have failed to find any 
> documentation on the IBM websites for an IBM-produced "python Programmers 
> Guide" (or similar) that would describe and provide examples for any 
> "IBM-specific" functional enhancements to the base language facilities.
>
> Is there any such documentation?  Or are the python.org documentation 
> websites the only reference material available for the IBM port of python? 
> (i.e., no functional enhancements at all are provided in the IBM port)
Correct! It's trivial to write an MVS I/O package if you have a C compiler.

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


Re: Assembler courses

2022-09-25 Thread Steve Smith
I did read that, I like reading LT... you don't spend much time wondering
what his position really is.

While it covers an important use case, and actually covers it pretty
thoroughly, it's not a didactic document.  Or maybe it is, but I can't find
the word I want.  Pedagogical maybe?  Anyway, something written as a guide,
not a debate transcript.

And lo, your next example is more like that.

sas

On Sun, Sep 25, 2022 at 10:17 PM David Crayford  wrote:

> On 26/9/22 10:13, Steve Smith wrote:
> > lol... We definitely need a guide to refracturing code.
> >
> > More seriously, a decent commentary on how to use goto "correctly" would
> be
> > a nice thing to see.
> Here you go, just in case you missed it the first time I posted
>
> https://koblents.com/Ches/Links/Month-Mar-2013/20-Using-Goto-in-Linux-Kernel-Code/
>
> --
> 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


Re: Assembler courses

2022-09-25 Thread David Crayford

From the book "Linux Device Drivers".

Error recovery is sometimes best handled with the goto statement. We 
normally hate
to use goto, but in our opinion, this is one situation where it is 
useful. Careful use of
goto in error situations can eliminate a great deal of complicated, 
highly-indented,
“structured” logic. Thus, in the kernel, goto is often used as shown 
here to deal with

errors.

The following sample code (using fictitious registration and 
unregistration func-

tions) behaves correctly if initialization fails at any point:

int __init my_init_function(void)
{
    int err;
    /* registration takes a pointer and a name */
    err = register_this(ptr1, "skull");
    if (err) goto fail_this;
    err = register_that(ptr2, "skull");
    if (err) goto fail_that;
    err = register_those(ptr3, "skull");
    if (err) goto fail_those;
    return 0; /* success */
    fail_those: unregister_that(ptr2, "skull");
    fail_that: unregister_this(ptr1, "skull");
    fail_this: return err; /* propagate the error */
}

This code attempts to register three (fictitious)facilities. The goto 
statement is used
in case of failure to cause the unregistration of only the facilities 
that had been suc-

cessfully registered before things went bad.

On 26/9/22 10:17, David Crayford wrote:


On 26/9/22 10:13, Steve Smith wrote:

lol... We definitely need a guide to refracturing code.

More seriously, a decent commentary on how to use goto "correctly" 
would be

a nice thing to see.
Here you go, just in case you missed it the first time I posted 
https://koblents.com/Ches/Links/Month-Mar-2013/20-Using-Goto-in-Linux-Kernel-Code/ 



--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Assembler courses

2022-09-25 Thread David Crayford

On 26/9/22 10:13, Steve Smith wrote:

lol... We definitely need a guide to refracturing code.

More seriously, a decent commentary on how to use goto "correctly" would be
a nice thing to see.
Here you go, just in case you missed it the first time I posted 
https://koblents.com/Ches/Links/Month-Mar-2013/20-Using-Goto-in-Linux-Kernel-Code/ 


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Assembler courses

2022-09-25 Thread Steve Smith
lol... We definitely need a guide to refracturing code.

More seriously, a decent commentary on how to use goto "correctly" would be
a nice thing to see.  In my opinion, using it like REXX intends the signal
statement to be used is fair.  I can't at the moment recall much else that
I'd normally write.  Of course, signal in REXX is often as horribly misused
as any regular goto.

sas


On Sun, Sep 25, 2022 at 9:44 PM Paul Gilmartin <
042bfe9c879d-dmarc-requ...@listserv.ua.edu> wrote:

> On Mon, 26 Sep 2022 01:21:03 +, Seymour J  wrote:
>
> >As a companion to "Structured Programming with go to Statements" by
> DONALD E. KNUTH, I see a great need for "Spaghetti Code Without go to
> Statements". BTDT,GTS.
>
> That's almost trivial.  Refracture any spaghetti code as a single DO
> FOREVER
> containing a SELECT in which each WHEN clause assigns to a variable used
> to indicate the next WHEN.
>
> --
> gil
>
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Assembler courses

2022-09-25 Thread David Crayford
Here is another example of using a cleanup stack 
https://github.com/eclipse-openj9/openj9-omr/blob/openj9/port/win32/omrsignal.c. 
That's how we write our C code. SP evangelists would be inclined to nest 
if statements which would be harder to read and wouldn't pass code 
review in my team. Of course, withmore sophisticated languages cleanup 
is done using automatic finalization such as destructors in C++, 
try-with-resources in Java, using declarations in C#, "with" statements 
in Python etc. In programming languages that don't support finalization 
goto is a very good idea. I include COBOL in that statement. I've seen 
some god awful COBOL code with out of control nesting in my time.



On 26/9/22 02:07, Bernd Oppolzer wrote:

After looking at your example at
https://github.com/eclipse-openj9/openj9/blob/master/runtime/vm/classsupport.c 


I would like to comment:

the "goto done" in the first function is only necessary, because in C 
the return statement

serves two purposes:

- setting the return value
- returning control to the caller

In Pascal, for example, the return value of a function is set by 
assigning a value to the function name
(inside the function) and control is returned by reaching the end of 
the function, or (in case of
Stanford Pascal and more recent Pascal dialects) the return statement 
(which has no parameters etc.).


So there is a separation between the two purposes.

In Pascal then, there would be no need to branch to the end of the 
function, because there is the
one and only place where you set the function result from the local 
temp variable. Hence,
no need for a goto (no use case). The return statement would be at the 
position where the
goto done is. The value is assigned to the function name instead of 
the temp variable

(can be done at multiple places).

IIRC, this (the two purposes of the C return statement) has been 
mentioned in one
of the videos posted by Peter Sylvester. This (IMO) is a flaw of the C 
language.
There are others, for example that it's impossible to declare 
functions inside of functions

(no true ALGOL block concept).

Kind regards

Bernd


Am 25.09.2022 um 13:51 schrieb David Crayford:
Another thing that makes me incredibly dubious about some of the 
opinions in these videos is the hackneyed nonsense about "goto 
considered harmful". The original paper was misunderstood in that all 
goto statements are harmful and brainwashed a generation. Some of 
these videos present a trivial example using goto and refactor it 
using if/ifelse. In programming languages without scope based cleanup 
goto is not harmful. In fact it's leads to clean code as the branch 
direction is always descending to a cleanup block. Happily for me, 
the young guys I work with writing systems level Metal/C code haven't 
been seduced by this dogmatic BS.  Good C code uses goto statements 
as opposed to heavily nested or superfluously functionally decomposed 
routines. The IBM Openj9 JVM C code is a case in point 
https://github.com/eclipse-openj9/openj9/blob/master/runtime/vm/classsupport.c. 
I challenge anybody to write better code without goto statements.


On 20/09/2022 5:46 pm, Peter Sylvester wrote:

Hi,

49 years ago I 'stumbled' over Simula 67 (see video 1), well, at the 
university "informatik 1" course. I had gotten an Algol60 book given 
to me by my math teacher 2 years earlier. The student a year older 
learned PL/1. WE had an /168 and the Simula 67 system from the NCC 
(you can find it on the CBTTAPE, the turnkey system and elsewhere.


To assembler: On error, you got a nicely formatted storage dump of 
objects. One motivation


After two years and the first graduation (Vordiplom) with punched 
cards etc (but using the MFT like a PC), a got a job at at  the CS 
research center GMD:  MVS, TSO SPF, another universe. It would take 
to much here to explain all the reason why I did a lot of assembler 
(because of this I was able to work in an internship at the swiss 
Colony Computing Center), but I always more than mildly disliked aka 
hated the non structured way of assembled. My work was to write a 
fast program to create microfiches (block letters, index pages). The 
result were a set of structured programming macros (also on the 
cbttape).


Later  with UCLA/Mail, the formatting of "objects" on traces, dumps. 
and stack of function. Just read the "assembler" code (CBTTAPE).


Anyway, here some nice videos.

https://www.youtube.com/watch?v=pH-q2m5sb04

actually, why is smalltalk so close to objective C. Because of a 
Byte Magazine cover page.


https://www.youtube.com/watch?v=SFv8Wm2HdNM

https://www.youtube.com/watch?v=QM1iUe6IofM

https://www.youtube.com/watch?v=eEBOvqMfPoI

Some are provocative. There are many others. I really like "going 
virtually" to these conferences.


https://www.youtube.com/watch?v=_mZBa3sqTrI=45s

Sorry for this side track



--
For IBM-MAIN subscribe / signoff / archive 

Re: IBM python documentation?

2022-09-25 Thread David Crayford

On 26/9/22 07:34, Farley, Peter x23353 wrote:

I know Rocket's port of python has some documented enhancements to support MVS dataset access among 
other things, but I have failed to find any documentation on the IBM websites for an IBM-produced 
"python Programmers Guide" (or similar) that would describe and provide examples for any 
"IBM-specific" functional enhancements to the base language facilities.

Is there any such documentation?  Or are the python.org documentation websites 
the only reference material available for the IBM port of python? (i.e., no 
functional enhancements at all are provided in the IBM port)

Correct! It's trivial to write an MVS I/O package if you have a C compiler.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Assembler courses

2022-09-25 Thread Paul Gilmartin
On Mon, 26 Sep 2022 01:21:03 +, Seymour J  wrote:

>As a companion to "Structured Programming with go to Statements" by DONALD E. 
>KNUTH, I see a great need for "Spaghetti Code Without go to Statements". 
>BTDT,GTS.

That's almost trivial.  Refracture any spaghetti code as a single DO FOREVER
containing a SELECT in which each WHEN clause assigns to a variable used
to indicate the next WHEN.

-- 
gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Assembler courses

2022-09-25 Thread Seymour J Metz
As a companion to "Structured Programming with go to Statements" by DONALD E. 
KNUTH, I see a great need for "Spaghetti Code Without go to Statements". 
BTDT,GTS.


From: IBM Mainframe Discussion List  on behalf of 
David Crayford 
Sent: Sunday, September 25, 2022 8:38 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Assembler courses

According to Linus you’ve been brainwashed by using a garbage language 
https://secure-web.cisco.com/1AljfkLGGdV0Jty3Ym1w5HatMtcmZ3H0SpTJozVJj2O2mM6H3lJxH92R9iS9tGEwnOKGf5Rr8czIZ8iKjU4KoGgWUmFEOawaqYUlplyg_3woqC2QpQRSTjOR4sIwCmDns8vaTmeMJKq6eofFVp9fmG57yGDYeCz9rdT8VSIt6TZkzleobRrY5rdT86wx1KIhAZEHfJF5zDA_uWnd38OsXN0anZzpfug3AppfFTvJQ-It7zFS7KY2N5rJ0Ra9yOGL2gVhKwo2tHOD85bBqqgJQcn_QXDj0dSlHHe99lnMWR-Pr6AX61h7P4xS0osB1N5s0WBgLIpc9QR6w222GOfpxWsi0wWSJx1b5r2pz_PJ8iPqHhvFQomCjjU4xqMF5kpDbhsUrSB_jVCFTf9ZoDwtEUS_h5UU0t4vTy8GaWhkdryKcd3_qAd17r94Ei2uABI-l/https%3A%2F%2Fkoblents.com%2FChes%2FLinks%2FMonth-Mar-2013%2F20-Using-Goto-in-Linux-Kernel-Code%2F

> On 26 Sep 2022, at 1:43 am, Bernd Oppolzer  wrote:
>
> I try to be not dogmatic about GOTO statements,
> in fact, I am coding COBOL in my money (everyday) job, and there are lots of 
> GO TOs around;
> I try to remove them, when I do larger refactoring, but if not, I leave them 
> untouched.
>
> But now for another GOTO story.
>
> When I started my Stanford Pascal compiler adventure in 2011, the first 
> compiler pass (PASCAL1)
> had around 50 GOTO statements in it (in fact: 50 numeric labels which are 
> targets of GOTOs in Pascal;
> in Pascal, BTW, GOTOs are allowed, but they are sort of uncomfortable;
> you need a label declaration for them, not only the GOTO statement and the 
> target label -
> because the label is local to a block, the label number may be reused in 
> different blocks).
> The Stanford compiler, as many other Pascal compilers, is self-hosted,
> that means, it is written in Stanford Pascal and compiled by itself.
> The Stanford Pascal compiler pass 1 had 6.000 lines in 2011 ... with the 50 
> labels mentioned above
> (well, this was the 1982 McGill version, to be honest).
>
> One of my first extensions to Stanford Pascal was to add CONTINUE, BREAK and 
> RETURN statements
> to it (semantics like in C). It turned out that almost all GOTOs were used to 
> implement the missing
> statements CONTINUE, BREAK and RETURN using GOTOs. I then started (after some 
> time)
> to remove the GOTOs by replacing them by the new statements, where this was 
> possible
> without problems.
>
> Today the compiler pass 1 has almost 25.000 lines. It only contains 7 GOTO 
> statemens (I just checked it).
> Because, see above, I am not dogmatic about GOTO, I will leave them, as long 
> as there is no need
> to work on the procedures containing them.
> The compiler story (including downloads) is here: 
> http://secure-web.cisco.com/1SeQcGdriYjXOUOZmJ0TQyNubfV-j2u1wqtZiAsKEVGvUnkEjGQlKIlwL_bHmG-eNMe96E878kRA-dAsBTTUloloysZCZ61Ay5d_7IMHDG1vnhQ2biIAO0BHVDrU887sf2-r95sv7ydGHB2OKEsX8CFPMYsVgfYgli-LImo7OJCItLF3Ez63AslXYlvIDO0U6FlG_STVPESyecE0q-KLvXvZdS6_tXxoI1MV4-6eOquKsggUhiR9uHzhfEkpmpdG73mC2LK4YBbf9I_Cr18yUsr7RBoYiO6J9vjDebBJb8dN43jWuw-E4Sg97svU2mcuLeTuTHgDMYocb4HY7NqR-kt9bU-02vf0UCnmP2ovV9icLKeqp8WD1gfnVj2yq2cNpnsP5qgY-QF37tfgpE-12yeTUm9O_9l4JK_tah8EgA2s7juJf9qDtqxY2RjLLg7BV/http%3A%2F%2Fbernd-oppolzer.de%2Fjob9.htm
>
> IMO, GOTOs (and the statements mentioned above) must be used with care.
> If you don't use them right, nobody will be able to follow the logic in your 
> programs,
> including yourself (after some time). Indentation is key, and meaningful 
> comments.
>
> Kind regards
>
> Bernd
>
>
>> Am 25.09.2022 um 13:51 schrieb David Crayford:
>> Another thing that makes me incredibly dubious about some of the opinions in 
>> these videos is the hackneyed nonsense about "goto considered harmful". The 
>> original paper was misunderstood in that all goto statements are harmful and 
>> brainwashed a generation. Some of these videos present a trivial example 
>> using goto and refactor it using if/ifelse. In programming languages without 
>> scope based cleanup goto is not harmful. In fact it's leads to clean code as 
>> the branch direction is always descending to a cleanup block. Happily for 
>> me, the young guys I work with writing systems level Metal/C code haven't 
>> been seduced by this dogmatic BS.  Good C code uses goto statements as 
>> opposed to heavily nested or superfluously functionally decomposed routines. 
>> The IBM Openj9 JVM C code is a case in point 
>> 

Re: Assembler courses

2022-09-25 Thread David Crayford
According to Linus you’ve been brainwashed by using a garbage language 
https://koblents.com/Ches/Links/Month-Mar-2013/20-Using-Goto-in-Linux-Kernel-Code/

> On 26 Sep 2022, at 1:43 am, Bernd Oppolzer  wrote:
> 
> I try to be not dogmatic about GOTO statements,
> in fact, I am coding COBOL in my money (everyday) job, and there are lots of 
> GO TOs around;
> I try to remove them, when I do larger refactoring, but if not, I leave them 
> untouched.
> 
> But now for another GOTO story.
> 
> When I started my Stanford Pascal compiler adventure in 2011, the first 
> compiler pass (PASCAL1)
> had around 50 GOTO statements in it (in fact: 50 numeric labels which are 
> targets of GOTOs in Pascal;
> in Pascal, BTW, GOTOs are allowed, but they are sort of uncomfortable;
> you need a label declaration for them, not only the GOTO statement and the 
> target label -
> because the label is local to a block, the label number may be reused in 
> different blocks).
> The Stanford compiler, as many other Pascal compilers, is self-hosted,
> that means, it is written in Stanford Pascal and compiled by itself.
> The Stanford Pascal compiler pass 1 had 6.000 lines in 2011 ... with the 50 
> labels mentioned above
> (well, this was the 1982 McGill version, to be honest).
> 
> One of my first extensions to Stanford Pascal was to add CONTINUE, BREAK and 
> RETURN statements
> to it (semantics like in C). It turned out that almost all GOTOs were used to 
> implement the missing
> statements CONTINUE, BREAK and RETURN using GOTOs. I then started (after some 
> time)
> to remove the GOTOs by replacing them by the new statements, where this was 
> possible
> without problems.
> 
> Today the compiler pass 1 has almost 25.000 lines. It only contains 7 GOTO 
> statemens (I just checked it).
> Because, see above, I am not dogmatic about GOTO, I will leave them, as long 
> as there is no need
> to work on the procedures containing them.
> The compiler story (including downloads) is here: 
> http://bernd-oppolzer.de/job9.htm
> 
> IMO, GOTOs (and the statements mentioned above) must be used with care.
> If you don't use them right, nobody will be able to follow the logic in your 
> programs,
> including yourself (after some time). Indentation is key, and meaningful 
> comments.
> 
> Kind regards
> 
> Bernd
> 
> 
>> Am 25.09.2022 um 13:51 schrieb David Crayford:
>> Another thing that makes me incredibly dubious about some of the opinions in 
>> these videos is the hackneyed nonsense about "goto considered harmful". The 
>> original paper was misunderstood in that all goto statements are harmful and 
>> brainwashed a generation. Some of these videos present a trivial example 
>> using goto and refactor it using if/ifelse. In programming languages without 
>> scope based cleanup goto is not harmful. In fact it's leads to clean code as 
>> the branch direction is always descending to a cleanup block. Happily for 
>> me, the young guys I work with writing systems level Metal/C code haven't 
>> been seduced by this dogmatic BS.  Good C code uses goto statements as 
>> opposed to heavily nested or superfluously functionally decomposed routines. 
>> The IBM Openj9 JVM C code is a case in point 
>> https://github.com/eclipse-openj9/openj9/blob/master/runtime/vm/classsupport.c.
>>  I challenge anybody to write better code without goto statements.
>> 
>> 
> 
> --
> 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


IBM python documentation?

2022-09-25 Thread Farley, Peter x23353
I know Rocket's port of python has some documented enhancements to support MVS 
dataset access among other things, but I have failed to find any documentation 
on the IBM websites for an IBM-produced "python Programmers Guide" (or similar) 
that would describe and provide examples for any "IBM-specific" functional 
enhancements to the base language facilities.

Is there any such documentation?  Or are the python.org documentation websites 
the only reference material available for the IBM port of python? (i.e., no 
functional enhancements at all are provided in the IBM port)

Peter

This message and any attachments are intended only for the use of the addressee 
and may contain information that is privileged and confidential. If the reader 
of the message is not the intended recipient or an authorized representative of 
the intended recipient, you are hereby notified that any dissemination of this 
communication is strictly prohibited. If you have received this communication 
in error, please notify us immediately by e-mail and delete the message and any 
attachments from your system.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Assembler courses

2022-09-25 Thread Bob Bridges
I'm glad someone else is saying this about GOTOs.  I was a COBOL developer for 
years before getting into ACF2, and argued strenuously (and futilely) for 
limited use of GOTOs at a shop where they'd all fallen for the religious belief 
that GOTO is Satan.  Three clear places where a GOTO can make a program better, 
not worse, in COBOL:

1) GOTO EXIT-PROGRAM, where last messages be issued and other shutdown 
processed.

2) GOTO END-OF-SECTION, sort of like a LEAVE statement in REXX.

3) GOTO TOP-OF-LOOP, which would correspond to the ITERATE in REXX.  (Nowadays 
I would probably write that as GOTO BOTTOM-OF-LOOP, but that's a detail.)

Now that I'm doing a lot of VBA programming, I often use that third example to 
goto a label placed immediately before the Next statement; the label is 
invariably IterateSomething (IterateRow, IterateRegion or whatever) to keep me 
from forgetting that gotos are not to be used carelessly.  So far I haven't 
convinced myself that one of my VBA programs needs a GoTo of the second type, 
but usually the reason I want it is to avoid one of those long series of 
indented If statements you spoke of, and in VBA I can handle that with a 
one-time Do block:

  Do 'one time
If RegionCode Like "W*" Then Exit Do
If AddLimit < 99 Then Exit Do
Set oaddr = User.GetAddress
If Not CheckState(oaddr) Is Nothing Then Exit Do
' Now do what you wanted.
Loop While False

---
Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313

/* October: The Boston Red Sox, ending an 86-year drought, defeat the St. Louis 
Cardinals to win the World Series. The Red Sox got into the Series thanks to 
the fact that the New York Yankees -- who were leading the American-League 
championships three games to none, and had all-stars at every position, not to 
mention a payroll larger than the gross national product of Sweden -- chose 
that particular time to execute the most spectacular choke in all of sports 
history, an unbelievable Gag-o-Rama, a noxious nosedive, a pathetic gut-check 
failure of such epic dimensions that every thinking human outside of the New 
York Metropolitan area experienced a near-orgasmic level of happiness. But 
there is no need to rub it in.  -Dave Barry, 2004 in Review */

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
David Crayford
Sent: Sunday, September 25, 2022 07:52

Another thing that makes me incredibly dubious about some of the opinions in 
these videos is the hackneyed nonsense about "goto considered harmful". The 
original paper was misunderstood in that all goto statements are harmful and 
brainwashed a generation. Some of these videos present a trivial example using 
goto and refactor it using if/ifelse. In programming languages without scope 
based cleanup goto is not harmful. In fact it's leads to clean code as the 
branch direction is always descending to a cleanup block. Happily for me, the 
young guys I work with writing systems level Metal/C code haven't been seduced 
by this dogmatic BS.  Good C code uses goto statements as opposed to heavily 
nested or superfluously functionally decomposed routines. The IBM Openj9 JVM C 
code is a case in point 
https://github.com/eclipse-openj9/openj9/blob/master/runtime/vm/classsupport.c. 
I challenge anybody to write better code without goto statements.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Assembler courses

2022-09-25 Thread Peter Sylvester

Hi,

I have the feeling that the author of

https://github.com/eclipse-openj9/openj9/blob/master/runtime/vm/classsupport.c.

might not know/like/understand the && operator.

The huge case testing length and values can be contracted into a single if.

using     (len = 3 && memcmp(v,"ddd",3)

   Ah the || operator. :-)

not talking about a static inline or macro in order to avoid writing "3" twice. caution about 
obfuscation)


This "smells" using C like simple assembler.

Or the used compiler optimations cannot be trusted ;-)

When I read if a if b if c  I tend to expect some else. ==> if a && b && c

the  "goto done" can either be return whatever, it is done in almost all other 
situations).

I don't want to go into a length debate about 'return'.

if cond1 { ... return } if cond2 { ... return }

vs using "else" is sometimes "not so bad".

The "techniques" used in the code are not consistently used, and this *may* 
hurt the reader.

Anecdote: In Simula (and Algol?) :

 a & b is    a AND b

 a && b   is    if a THEN b else TRUE

==>    if (a && b) { .. becomes

  if if a then b else true then begin ...

you might or might not like it.

doing things before return or at the end of a block: syntactically "finally" or the infamous "else" 
in a python "for".


I kind of cheated in assembler:  Whatever "block"  (block, (if, (loop, (while, (for, ...) there is a 
"POSTLUDE name" (kind of named finally) and a "SIGNAL name" from the inside in order not to use 
GOTO. Wording is all.


   (block ...   SIGNAL c1  ...  SIGNAL c2 ...   POSTLUDE c1 ... POSTLUDE  
c2 ...  block)

writing all kind of variations of

       goto end;

case1:  whatever := nonsense; goto end;

case2 : 

end:  return whatever

shows what:   C can be regarded as a better macro assembler (and this very 
useful for OS kernel dev)

The point is readability, expectation, avoiding noise ...  and obfuscation is a 
funny game.

I got used to hear (but extremely rarely to read) qualifications such as  "c'est la merde"  or "so'n 
Scheiss mach i nett".


I know two generations considered "lost" (grandpa was in Verdun and "dad" was 
born in 1922)


Best

Peter






--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


"Foo considered harmful" considered harmful

2022-09-25 Thread Seymour J Metz
Any tool can be misused. That doesn't justify throwing out perfectly good tools.

In many cases goto is inappropriate and better tools are available. That 
doesn't negate the legitimacy of using goto when it is the best tool for the 
task at hand.
The same applies to object-oriented and functional programming; they are  
often, but not always, appropriate, and are not at fault if someone uses them 
inappropriately.
--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Assembler courses

2022-09-25 Thread Bernd Oppolzer

After looking at your example at
https://github.com/eclipse-openj9/openj9/blob/master/runtime/vm/classsupport.c
I would like to comment:

the "goto done" in the first function is only necessary, because in C 
the return statement

serves two purposes:

- setting the return value
- returning control to the caller

In Pascal, for example, the return value of a function is set by 
assigning a value to the function name
(inside the function) and control is returned by reaching the end of the 
function, or (in case of
Stanford Pascal and more recent Pascal dialects) the return statement 
(which has no parameters etc.).


So there is a separation between the two purposes.

In Pascal then, there would be no need to branch to the end of the 
function, because there is the
one and only place where you set the function result from the local temp 
variable. Hence,
no need for a goto (no use case). The return statement would be at the 
position where the
goto done is. The value is assigned to the function name instead of the 
temp variable

(can be done at multiple places).

IIRC, this (the two purposes of the C return statement) has been 
mentioned in one
of the videos posted by Peter Sylvester. This (IMO) is a flaw of the C 
language.
There are others, for example that it's impossible to declare functions 
inside of functions

(no true ALGOL block concept).

Kind regards

Bernd


Am 25.09.2022 um 13:51 schrieb David Crayford:
Another thing that makes me incredibly dubious about some of the 
opinions in these videos is the hackneyed nonsense about "goto 
considered harmful". The original paper was misunderstood in that all 
goto statements are harmful and brainwashed a generation. Some of 
these videos present a trivial example using goto and refactor it 
using if/ifelse. In programming languages without scope based cleanup 
goto is not harmful. In fact it's leads to clean code as the branch 
direction is always descending to a cleanup block. Happily for me, the 
young guys I work with writing systems level Metal/C code haven't been 
seduced by this dogmatic BS.  Good C code uses goto statements as 
opposed to heavily nested or superfluously functionally decomposed 
routines. The IBM Openj9 JVM C code is a case in point 
https://github.com/eclipse-openj9/openj9/blob/master/runtime/vm/classsupport.c. 
I challenge anybody to write better code without goto statements.


On 20/09/2022 5:46 pm, Peter Sylvester wrote:

Hi,

49 years ago I 'stumbled' over Simula 67 (see video 1), well, at the 
university "informatik 1" course. I had gotten an Algol60 book given 
to me by my math teacher 2 years earlier. The student a year older 
learned PL/1. WE had an /168 and the Simula 67 system from the NCC 
(you can find it on the CBTTAPE, the turnkey system and elsewhere.


To assembler: On error, you got a nicely formatted storage dump of 
objects. One motivation


After two years and the first graduation (Vordiplom) with punched 
cards etc (but using the MFT like a PC), a got a job at at  the CS 
research center GMD:  MVS, TSO SPF, another universe. It would take 
to much here to explain all the reason why I did a lot of assembler 
(because of this I was able to work in an internship at the swiss 
Colony Computing Center), but I always more than mildly disliked aka 
hated the non structured way of assembled. My work was to write a 
fast program to create microfiches (block letters, index pages). The 
result were a set of structured programming macros (also on the 
cbttape).


Later  with UCLA/Mail, the formatting of "objects" on traces, dumps. 
and stack of function. Just read the "assembler" code (CBTTAPE).


Anyway, here some nice videos.

https://www.youtube.com/watch?v=pH-q2m5sb04

actually, why is smalltalk so close to objective C. Because of a Byte 
Magazine cover page.


https://www.youtube.com/watch?v=SFv8Wm2HdNM

https://www.youtube.com/watch?v=QM1iUe6IofM

https://www.youtube.com/watch?v=eEBOvqMfPoI

Some are provocative. There are many others. I really like "going 
virtually" to these conferences.


https://www.youtube.com/watch?v=_mZBa3sqTrI=45s

Sorry for this side track



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


Re: Assembler courses

2022-09-25 Thread Bernd Oppolzer

I try to be not dogmatic about GOTO statements,
in fact, I am coding COBOL in my money (everyday) job, and there are 
lots of GO TOs around;
I try to remove them, when I do larger refactoring, but if not, I leave 
them untouched.


But now for another GOTO story.

When I started my Stanford Pascal compiler adventure in 2011, the first 
compiler pass (PASCAL1)
had around 50 GOTO statements in it (in fact: 50 numeric labels which 
are targets of GOTOs in Pascal;

in Pascal, BTW, GOTOs are allowed, but they are sort of uncomfortable;
you need a label declaration for them, not only the GOTO statement and 
the target label -
because the label is local to a block, the label number may be reused in 
different blocks).

The Stanford compiler, as many other Pascal compilers, is self-hosted,
that means, it is written in Stanford Pascal and compiled by itself.
The Stanford Pascal compiler pass 1 had 6.000 lines in 2011 ... with the 
50 labels mentioned above

(well, this was the 1982 McGill version, to be honest).

One of my first extensions to Stanford Pascal was to add CONTINUE, BREAK 
and RETURN statements
to it (semantics like in C). It turned out that almost all GOTOs were 
used to implement the missing
statements CONTINUE, BREAK and RETURN using GOTOs. I then started (after 
some time)
to remove the GOTOs by replacing them by the new statements, where this 
was possible

without problems.

Today the compiler pass 1 has almost 25.000 lines. It only contains 7 
GOTO statemens (I just checked it).
Because, see above, I am not dogmatic about GOTO, I will leave them, as 
long as there is no need

to work on the procedures containing them.
The compiler story (including downloads) is here: 
http://bernd-oppolzer.de/job9.htm


IMO, GOTOs (and the statements mentioned above) must be used with care.
If you don't use them right, nobody will be able to follow the logic in 
your programs,
including yourself (after some time). Indentation is key, and meaningful 
comments.


Kind regards

Bernd


Am 25.09.2022 um 13:51 schrieb David Crayford:
Another thing that makes me incredibly dubious about some of the 
opinions in these videos is the hackneyed nonsense about "goto 
considered harmful". The original paper was misunderstood in that all 
goto statements are harmful and brainwashed a generation. Some of 
these videos present a trivial example using goto and refactor it 
using if/ifelse. In programming languages without scope based cleanup 
goto is not harmful. In fact it's leads to clean code as the branch 
direction is always descending to a cleanup block. Happily for me, the 
young guys I work with writing systems level Metal/C code haven't been 
seduced by this dogmatic BS.  Good C code uses goto statements as 
opposed to heavily nested or superfluously functionally decomposed 
routines. The IBM Openj9 JVM C code is a case in point 
https://github.com/eclipse-openj9/openj9/blob/master/runtime/vm/classsupport.c. 
I challenge anybody to write better code without goto statements.





--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: ICSF Utilites

2022-09-25 Thread Radoslaw Skorupka

Just to complement: look at IDCAMS REPRO ENCIPHER
(My opinion) It is rather poor & obsolete feature, however it is still 
possible to use it.


--
Radoslaw Skorupka
Lodz, Poland



W dniu 09.09.2022 o 19:19, Allan Staller pisze:

Classification: Confidential

Long long ago, in a land far far away...

IBM supplied some simple batch utilities w/ICSF that would input a file and 
output and encrypted version of that file (and vice versa).
I can't seem to find any references to these utilities in the current doc.

Does anyone remember the name of these fine utilities?




--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Assembler courses

2022-09-25 Thread Tom Brennan
I can work without goto for a long time, until suddenly I need it, 
usually when coding some kind of error logic.  Then I'll have to either 
duplicate code or scoot a section into its own subroutine for no other 
reason than the lack of a goto.  But yeah, it can be confusing later if 
used when not necessary.  Maybe I should put a piggy bank on my desk and 
force myself to put $20 in each time I use it.


On 9/25/2022 4:51 AM, David Crayford wrote:
Another thing that makes me incredibly dubious about some of the 
opinions in these videos is the hackneyed nonsense about "goto 
considered harmful". The original paper was misunderstood in that all 
goto statements are harmful and brainwashed a generation. Some of these 
videos present a trivial example using goto and refactor it using 
if/ifelse. In programming languages without scope based cleanup goto is 
not harmful. In fact it's leads to clean code as the branch direction is 
always descending to a cleanup block. Happily for me, the young guys I 
work with writing systems level Metal/C code haven't been seduced by 
this dogmatic BS.  Good C code uses goto statements as opposed to 
heavily nested or superfluously functionally decomposed routines. The 
IBM Openj9 JVM C code is a case in point 
https://github.com/eclipse-openj9/openj9/blob/master/runtime/vm/classsupport.c. 
I challenge anybody to write better code without goto statements.


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: An interesting article on the continuing demand for floppy discs

2022-09-25 Thread Radoslaw Skorupka
Correction: NOT ALL sorts of floppies are still in use - or the article 
does not mention other types.

Only three form factors were mentioned: 3.5", 5.25" and 8"
And I doubt about 5.25" 2.4MB format. Or fileware.
However I have some CF-2 3" diskettes (and some hardware for them). And 
I know much more types, much less popular. Everything well described and 
pictured (one of my weird hobbies).


--
Radoslaw Skorupka
Lodz, Poland




W dniu 16.09.2022 o 21:43, Bob Bridges pisze:

Really interesting, at least for me.  Apparently all sorts of floppies are 
still in use, and this one business is the last one selling them.

https://eyeondesign.aiga.org/we-spoke-with-the-last-person-standing-in-the-floppy-disk-business/

---



--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Assembler courses

2022-09-25 Thread David Crayford
Another thing that makes me incredibly dubious about some of the 
opinions in these videos is the hackneyed nonsense about "goto 
considered harmful". The original paper was misunderstood in that all 
goto statements are harmful and brainwashed a generation. Some of these 
videos present a trivial example using goto and refactor it using 
if/ifelse. In programming languages without scope based cleanup goto is 
not harmful. In fact it's leads to clean code as the branch direction is 
always descending to a cleanup block. Happily for me, the young guys I 
work with writing systems level Metal/C code haven't been seduced by 
this dogmatic BS.  Good C code uses goto statements as opposed to 
heavily nested or superfluously functionally decomposed routines. The 
IBM Openj9 JVM C code is a case in point 
https://github.com/eclipse-openj9/openj9/blob/master/runtime/vm/classsupport.c. 
I challenge anybody to write better code without goto statements.


On 20/09/2022 5:46 pm, Peter Sylvester wrote:

Hi,

49 years ago I 'stumbled' over Simula 67 (see video 1), well, at the 
university "informatik 1" course. I had gotten an Algol60 book given 
to me by my math teacher 2 years earlier. The student a year older 
learned PL/1. WE had an /168 and the Simula 67 system from the NCC 
(you can find it on the CBTTAPE, the turnkey system and elsewhere.


To assembler: On error, you got a nicely formatted storage dump of 
objects. One motivation


After two years and the first graduation (Vordiplom) with punched 
cards etc (but using the MFT like a PC), a got a job at at  the CS 
research center GMD:  MVS, TSO SPF, another universe. It would take to 
much here to explain all the reason why I did a lot of assembler 
(because of this I was able to work in an internship at the swiss 
Colony Computing Center), but I always more than mildly disliked aka 
hated the non structured way of assembled. My work was to write a fast 
program to create microfiches (block letters, index pages). The result 
were a set of structured programming macros (also on the cbttape).


Later  with UCLA/Mail, the formatting of "objects" on traces, dumps. 
and stack of function. Just read the "assembler" code (CBTTAPE).


Anyway, here some nice videos.

https://www.youtube.com/watch?v=pH-q2m5sb04

actually, why is smalltalk so close to objective C. Because of a Byte 
Magazine cover page.


https://www.youtube.com/watch?v=SFv8Wm2HdNM

https://www.youtube.com/watch?v=QM1iUe6IofM

https://www.youtube.com/watch?v=eEBOvqMfPoI

Some are provocative. There are many others. I really like "going 
virtually" to these conferences.


https://www.youtube.com/watch?v=_mZBa3sqTrI=45s

Sorry for this side track



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


Re: Assembler courses

2022-09-25 Thread David Crayford

On 25/09/2022 3:56 pm, Peter Sylvester wrote:

On 25/09/2022 05:02, David Crayford wrote:
There's some interesting videos here. All entertaining in their own 
way. It's like any dogma, if you want to believe then you will. If 
you have spent your entire career using structured programming you 
probably think "hell yeah"!


Is such a person the primary target audience of this presentation? I 
don't think so (the audience is younger). In some other presentation 
(I don't know the conf/presenter): "If you agree with me, you haven't 
understood".


Maybe, but young people just want a decent job and that usually means 
using either an OO or FP language in todays job market. We've got a lot 
of HLASM in our code base and it's not easy to find young people who 
want to commit to learning a language they consider to be a dead end.
Young people move around a lot and want to pick up skills that are 
transferable. The job market for HLASM programmers may get lively as 
more people start to retire. Same for COBOL and PL/I. Half of our team 
have moved to 3 day weeks with a view to retiring.



One funny "critique/comment" is the fortran COMEFROM :-) Easy to 
implement btw. The spaghetti monster"s programming language, (R)amen.


IMHO, your last sentence may provide a hint. If one spends all his 
career using the same "paradigm" (or whatever one may call a 
"religion") ... And then may even reinvent a square shaped wheel 
(where pi equals 4) ...  Or a cubic sphere (in my neighborhood), which 
is actually fun :-)


  https://www.youtube.com/watch?v=cNSTJ2Y80OQ

Lot's of things to be critized about the following, too. But whow, 
putting *all* this into a short presentation. (I missed some, e.g. 
SNOBOL, CDL).


  https://www.youtube.com/watch?v=0fpDlAEQio4


LOL. Agreed, good fun :)



As already said, I was lucky to work as a student (and later as IBM 
systems programmer) in a mainframe environment of a CS and math 
research institute (GMD) with >1000 people. Chance to see "beyond and 
avove" and "play with" a multitude of different perspectives and 
experiments, some good, some no so, software (totally unstructured 
programs), hardware (lisp/reduction machine, Suprenum, Eumel), 
theories (Petri Nets, Interval arithmetic). And, of course, preachers, 
dogmas.


Our ported tools team develop the SciPy libraries for IBM machine 
learning products on z/OS using highly optimized C/C++ code to implement 
Python libraries. The MIT "Introduction to programming" course is now 
taught in Python. SciPy supports both OOP and FP paradigms. 
https://docs.scipy.org/doc/scipy/






Best












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


Re: Assembler courses

2022-09-25 Thread Peter Sylvester

On 25/09/2022 05:02, David Crayford wrote:
There's some interesting videos here. All entertaining in their own way. It's like any dogma, if 
you want to believe then you will. If you have spent your entire career using structured 
programming you probably think "hell yeah"!


Is such a person the primary target audience of this presentation? I don't think so (the audience is 
younger). In some other presentation (I don't know the conf/presenter): "If you agree with me, you 
haven't understood".


One funny "critique/comment" is the fortran COMEFROM :-) Easy to implement btw. The spaghetti 
monster"s programming language, (R)amen.


IMHO, your last sentence may provide a hint. If one spends all his career using the same "paradigm" 
(or whatever one may call a "religion") ... And then may even reinvent a square shaped wheel (where 
pi equals 4) ...  Or a cubic sphere (in my neighborhood), which is actually fun :-)


  https://www.youtube.com/watch?v=cNSTJ2Y80OQ

Lot's of things to be critized about the following, too. But whow, putting *all* this into a short 
presentation. (I missed some, e.g. SNOBOL, CDL).


  https://www.youtube.com/watch?v=0fpDlAEQio4

As already said, I was lucky to work as a student (and later as IBM systems programmer) in a 
mainframe environment of a CS and math research institute (GMD) with >1000 people. Chance to see 
"beyond and avove" and "play with" a multitude of different perspectives and experiments, some good, 
some no so, software (totally unstructured programs), hardware (lisp/reduction machine, Suprenum, 
Eumel), theories (Petri Nets, Interval arithmetic). And, of course, preachers, dogmas.


Best












--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN