I of course agree that simplistic macros have no value. But it is not necessary to write simplistic macros.
We are all creatures of our experience, and Steve Hobson's views must reflect his. Mine has been very different. In my view one of the great strengths of macros is just that they make available what I hope I will be forgiven for calling a testicular grasp on change. If, say, the macro definition GUBBINS is used in N places, changing GUBBINS effectively changes what is done in these N places. Finding and changing idioms that were written out in extenso is much harder. Another, related merit of macros is that they regularize code. Deprived of macros, as I recently was in a very primitive environment, I found it diffricult to avoid ringing changes on standard figures. Macros do not suffer ennui or boredom; and this in many contexts is a merit. One of the striking things about Steve Hobson's posts is that they reflect what I shall call a handicraft orientation, one under which the sophistication of the products produced is very much greater than that of the technology used to produce them. I am reminded of some of the camel-bone inlaid wooden boxes produced in Middle Eastern bazaars, things of great beauty made using only a few simple hand tools.. My approach is again different. One of the features of the macros I write is that they all contain a sequence of comment lines in a standard, easily parsed format that specify the names of the other macros that they use directly, in many cases several dozens of these names. These macro names are also used to construct a square boolean reference matrix R in which element r(i,j) is boolean 1 if macro i invokes macro j or boolean 0 if not. (The diagonal of this matrix may contain boolean ones. Many macros usefully invoke themselves recursively.) Raising this matrix to the appropriate boolean power then yields a dependency matrix D in which element d(i,j) is 1 if macro i is in any way dependent upon macro j or boolean 0 if not. Let me also offer one more general comment. That some technique lends itself to misuse by clots is not in my view a good argument for suppressing that technique. I suspect, indeed, that any powerful and useful technique ineluctably lends itself to abuse by clots. The "Don't do anything complex or difficult because some clot who comes after you may not understand it" argument seems to me to be not just without merit but vicious. John Gilmore, Ashland, MA 01721 - USA
