By Reg Harbeck
“Always write the documentation for your program before you write the program itself.”
That’s the advice that Mike Cowlishaw, creator of the Rexx programming language, said he would give someone starting in development. That was in an interview 19 years ago, when the Rexx programming language was only 21 years old, and it echoed the original aspirations of the COBOL programming language to be self-documenting.
Interestingly, in the same interview, Mike Cowlishaw also stated that he hoped human programmers wouldn’t be needed in 20 years’ time (i.e., in 2020). That would be one of the very few areas where his foresight about programming wasn’t 20/20. Fortunately, the language he gave us has made it a very pleasant outcome to have to continue programming it.
In fact, thanks to the efforts of Mike and the many other fans (often more “fanatics” than just “fanciers”) of Rexx, this wonderful and versatile language has shown up on many platforms, beginning with VM/CMS, branching out to other IBM mainframe environments, and flowing to a multitude of platforms, including classic personal environments such as OS/2 and Commodore’s Amiga. There are even specialized flavors of it for networked usage and lexical environments.
Now, Mike is a very interesting fellow, or rather Fellow (retired IBM Fellow, Fellow of the Royal Academy of Engineering, Fellow of the Institute of Engineering and Technology, and Fellow of the British Computer Society), with many fascinating academic, business, computing and personal pursuits to his credit (see http://speleotrove.com, and particularly http://speleotrove.com/rexxhist/, for more). And that overflows into the results of his work. Those of us who use Rexx are eternally grateful for that.
One way Mike’s personality and philosophy have flowed into Rexx is his emphasis on documentation. Not only does he recommend writing the doc first, which is something good programmers learn to do early on, but he modeled that behavior by documenting the language itself before creating it! And then, to model another key aspect of Rexx, its user-friendliness, he worked closely with its users as a key aspect of its creation. (As an aside, nowadays Mike also adds to his advice, "Write the test cases before the program," too. That way, when the program runs—and passes the test cases—you're ready to release it).
While we continue to wait for the breakthroughs that will make it possible for computers to program themselves, using neural technology yet to be perfected, if Mike has any say about it, we can at least take comfort that one of the great rewards of working on the mainframe is the prevalence of this most enjoyable programming language.
So happy XL to Rexx, and thanks to Mike Cowlishaw for your critical role in making programming of mainframe systems, automation and many other areas so rewarding over the past 40 years. I won’t mind at all if I’m still allowed to write Rexx programs 40 more years in the future.