Yesterday for the first time, my client had all of its systems on v5r4 or later so I tried the "New CL Enhancements" for the first time. The DOFOR, DOWHILE were used along with *INT data-types, *DEFINED and the ITERATE command.
This made processing lists of data passed to the CL program from its Command Definition much, much easier.
While I basically responded with a "we could have used these 20 years ago" when I was asked how I liked them, it wasn't really until a critical mass of end-user shops were actually on v5r4 or later that any update to any language is really put to test. So... now I like them.
The bad news is that IBM broke the CL Command Prompter in v5r4 and later (We'll, at least on v7r1 its broke I still checking which pieces were broke at an earlier release.)
Bug 1: When you prompt, and use the & to extend the prompted parameter's input field, the prompter used to extend the parameter input length. Today it simply ends the prompter.
Bug 2: When you prompt inside of CDO (Command Definition Object) source, and specify the SPCVAL or SNGVAL (special or single values) keywords, the prompter inserts an *N into the 2nd component instead of "nothing". Meaning that your CDO source now looks like this:
PARM KWD(LIBNAME) TYPE(*NAME) MIN(1) EXPR(*YES) SPCVAL(*LIBL *N) (*CURLIB *N))
Instead of how it should look, which is like this:
PARM KWD(LIBNAME) TYPE(*NAME) MIN(1) EXPR(*YES) SPCVAL(*LIBL) (*CURLIB))
Now when I'm writing CL or creating Commands, I have to release my aggravation by insulting IBM, after all these years. Sad.