The arguments John Eells makes for retaining long-established interfaces as they are and have been for decades are eminently respectable generic ones.
As a defense cherished infelicities they are, I think, unanswerable. In application to this case they nevertheless come close to something very different, to defense of hallowed error. The HLASM has rules---unchanged in it and long established in its precursors---that specify the doubling of single quotes and ampersands within single-quote framed strings. Another use for John's arguments would be to maintain that anyone who adheres to these rules has a right to the expectation that a string that is well formed under them will be processed correctly in an IBM-supplied macro. I turn now to Peter Relson's statement that some PARM-field values frequently used within IBM are just 7 characters in length. As an explanation of how an error may have arisen this is interesting, and it is certainly unexceptionable. As a defense of an error (or the retention of erroneous behavior) it is less satisfactory. Programmers who have any significant experience writing macro definitions know that string-handling operations need to be tested at boundary values. What happens when a nul, zero-length string is encountered? What happens when a string of maximal supported length is encountered? Etc., etc. In a word, data dependencies are ugly. They are indeed uglier than many other kinds of errors, and they need to be tested for. Half of the observation of Pliny the Younger is much quoted in English as To err is human. This truincation is now platitudinous. The full Latin text is not. It is Errare humanum est, perseverare autem diabolicum. To err is human; to persevere in it is diabolical. John Gilmore, Ashland, MA 01721 - USA ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
