Suppose that I wish to do something to each of the elements of an
assembly-time array in turn.  In the macro language of the HLASM I
must write something like

|&ne       seta   n'&array
|&i          seta   0
|.traverse_loop anop
|&i          seta   &i+1
|&elements_exhausted setb (&i gt &ne)
|             aif       (&elements_exhausted).traverse_lend
|  .  .  .                         <process &array(&i)
|             ago    .traverse_loop
|.traverse_lend anop

In other languages I can write functional equivalents more compactly.
In all of them I can do this of anything else well or very badly
indeed.

Positive, chiefly one-on-one, mentoring focused on how to code well
can be very helpful.

Prohibitions cannot.  They are always and everywhere unwise.  They
never ensure that code written using some notionally virtuous subset
of a language will have any positive merit.

It used to be thought that all would be well with the world when the
last king had been strangled.  We know better now, but we continue to
seek authoritarian, Orwellian solutions to the problem of programming
quality.  Our world will not be an improved one when the last explicit
GOTO has been excised from the last routine still in use somewhere.

Bad code and good code reflect the qualities of mind, training, and
experience of the programmers who write them; there are no shortcuts
available for producing the good kind.


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

Reply via email to