Jol and REXX both live in the IBM mainframe world, but they were created for very different purposes. Think of them as two tools that occasionally overlap, but fundamentally solve different problems.
Below is a clean, structured comparison.
A high‑level job control language designed to replace or simplify JCL.
Focuses on batch jobs, datasets, scheduling, and job networks.
English‑like syntax for defining and running operational workloads.
Built to make mainframe batch processing easier, safer, and more maintainable.
A general‑purpose scripting language.
Designed for procedural logic, automation, and interactive scripting.
Often used in TSO, ISPF, automation tools, and system utilities.
Great for logic, text processing, and tool-building — not job control.
In short:Â Â
Jol is for running jobs.
REXX is for writing scripts.
Free‑form, English‑like commands.
Minimal punctuation.
Designed for readability by operations staff.
Example:
Code
IF DAY='MONDAY' THEN SUBMIT PAYROLL;
More like a traditional programming language.
Uses statements, expressions, functions, and structured logic.
Example:
Code
if day = "MONDAY" then call SubmitPayroll
Jol reads like instructions.
REXX reads like code.
Built‑in dataset operations: ALLOCATE, COPY, SORT, DELETE, CATLG, etc.
Automatic dataset attribute lookup from a central database.
Native job submission, step control, restarts, GDG handling.
Can generate JCL or bypass it entirely.
Has no native dataset or JCL semantics.
Must call external utilities (IKJEFT01, LISTDSI, ISPF services, etc.).
Cannot generate or run jobs without external commands.
No built‑in scheduling or job networking.
Jol understands datasets and jobs natively.
REXX needs helpers.
Built‑in scheduler.
Day‑based rules (MON, HOLIDAY, JUL12, WORKDAY, etc.).