On 7/1/22 12:33 pm, Matt Hogstrom wrote:
I would not describe JCL as a programming language anymore than  a pom is a 
language.  Maven uses the pom XML to describe actions, dependencies and based 
on its analysis actually does the execution.

And the declarative nature of pom.xml is why people have shifted from Maven to Gradle which is basically a groovy DSL where you can drop down into scripting. Same as a Jenkins with the Jenkinsfile, you can choose to use Groovy if you want to add logic.

JCL sucks! We know it sucks but there is nothing we can do about it other than suck it up and crack on. Try and teach a new hire about a DCB with cylinders and tracks and RECFM, LRECL, BLKSIZE etc. It's no wonder they prefer the file system.


Not a great comparison but I think it is consistent with JCL being a set of 
directives that are interpreted and acted upon as opposed to being an execution 
engine.  I think its does a fine job for what it is for in terms of abstraction 
of data from programs, allowing serialization via JES and dynamic allocation, 
etc.  It describes a unit of work.

Matt Hogstrom
m...@hogstrom.org
+1-919-656-0564
PGP Key: 0x90ECB270
Facebook <https://facebook.com/matt.hogstrom>  LinkedIn 
<https://linkedin/in/mhogstrom>  Twitter <https://twitter.com/hogstrom>

“It may be cognitive, but, it ain’t intuitive."
— Hogstrom

On Jan 6, 2022, at 10:05 PM, Andrew Rowley <and...@blackhillsoftware.com> wrote:

On 7/01/2022 12:23 pm, David Crayford wrote:
I understand that it's declarative. But it has logic such as IF/THEN. That is 
no reason why it couldn't have been a scripting language like CL on AS/400.

IF/THEN was a late addition, and is probably one of the biggest problems with 
JCL because it doesn't work like IF/THEN in a programming language. IF/THEN is 
really a property of the enclosed steps (I suspect it generates the same thing 
as equivalent COND statements on the steps) rather than a logical block in the 
JCL.

e.g. from the JCL reference:

The system processes the following statements regardless of the logic of the 
IF/THEN/ELSE/ENDIF
statement construct. They can be placed in a THEN or ELSE clause, but they are 
not executed
conditionally.
• PROC and PEND statements
• JES2 and JES3 statements and commands
• JCL command statements
• Comment (//*) statements
• INCLUDE statements
• Delimiter (/*) statements
• Null statements
• SET statements

The IF/THEN/ELSE/ENDIF statement construct does not conditionally control the 
processing of JCL; rather, it conditionally controls the execution of job steps.


--
Andrew Rowley
Black Hill Software

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