One of the more recent computer programing languages, Pascal, has many of the software education gurus in ecstasy. “Pascal makes you think in the right way,” they say. I wish they were not so fond of saying that. It makes me wonder if the teaching of Pascal is likely to be fascist, and I am becoming concerned about the new army of programmers who will emerge with this new movement from the bowels of academe.
You see, there are the “good” guys and the “bad” guys. The “good” guys follow the strict rules of so-called “structured” programming, organizing their programs with rigid (and sometimes blind) discipline so as to insure correctness (does the program do what it is supposed to do?) and intelligibility (is it easy to understand what the computer will do?—even at the expense, sometimes, of intelligibility. The “bad” guys, on the other hand, are the self trained anarchists, lacking a standard structure, programming with wild abandon, and making free use of the chaos-producing “GO TO” instruction. The “good” guys think the right way; the “bad” guys don’t.
Now this, if true, might be a cause for concern. But first of all it is a cause for wonder. What is the right way to think? Why, in a structured way, of course. But what structures in particular? Why. Pascal-like structures!
Why the emphasis on Pascal? I believe there are three main reasons. (1) It is a block-structured, procedure-oriented language with English-like key words. This, in the pronouncements of the establishment, is the proper programming tool. (Not, perhaps, the ideal, but close enough for now.) (2) It can be a very powerful language, useful, with some pushing and shoving, for teaching more advanced concepts to computer science. Consequently, students might as well start out with it. And (3), it was supposed to be the up and coming language of industry and government. (The Department of Defense pushed Pascal until the super-pascal language, Ada, was recently announced; now the DoD is supporting only Ada. That business and industry still are relying heavily on FORTRAN and CORBOL does not daunt the educators’ reverence for Pascal and Ada: although, to be fair, part of the establishment is grumbling about the obesity of Ada—a language that seems to have been, because it really was, designed by a committee.)
Having first come to Pascal with all the enthusiasm proper for an advocate of good programming practice, I was startled by what I found. Then I was suspicious. Then I was aghast. Pascal can be a powerful languages to be sure. But there is something odd going on. The oddity is the contortions the programmer (especially the beginning programmer) must go through. There must, for example, be a semicolon here and here, but not there and there. In fact, however, these semicolons are usually quite useless, except as devices which force you (whether you like it or not) to “structure” your program in a particular way, (the right way.) And while the teachers of Pascal push “top down structured programming,” Pascal programs, it turns out, must be written “from the bottom up”! Even the mini-Pascal language used in Richard E Pattis’s charming little book, Karel the Robot, shares these features: useless semicolons and programs that must be submitted upside down. Pascal also requires the programmer to distinguish between real numbers and integers so that typing “23” is unacceptable if Pascal is looking for “23.0.”
Surely the insistence on this sort of idle rigor is no way to teach beginners. Some instructors are so enamored of the discipline which Pascal encourages that they heap discipline upon discipline until the student, instead of being exposed to the joy and adventure of programming, is being dragged through a virtual boot camp. As far as I can tell, students just have to listen to the highfalutin’ rationale and then dismiss it all in order to do as they are told. If they survive their training, it will not necessarily be on account of knowing and understanding what good programming practices point to; it may be because they are obedient little soldiers.
If that is the case, then the army of programmers which will be marched (in a structured way, please) out of the computer science departments in the coming years will be unmerchantable machines, “If you’re going to deal with these computers, then for God’s sake act like one. “Hup, one ...hup, one...!”
It is not, however, Pascal itself which is responsible for these sad prospects; nor is it the fault of the particular programming structures which it tries to implement. It is, rather the attitudes of educators who are true believers and the extremes to which they will insist for those over whom they hold power—typically, students in the classroom. The power holders have seized upon Pascal as a vehicle for promulgating THE WAY. Just as many people have become involved with computers because they have been told they must become “computer literates” (what a mistake lies therein), so too many followers and advocates of the current version of “structured” programming are comrades on the bandwagon, submitting themselves to the commands of the Generals.
If there is to be any salvation, I think it will come from the availability of cheap, independent, stand-alone microcomputers and, ironically, from the ranks of those on whom the most obloquy has been dumped-those who persist in making use of the sinfullest of all programming languages, BASIC. I am referring to the unwashed youth (and not so youth) of amateur hackers who have helped make the microcomputer industry worth billions of dollars in less than a decade; who have demanded—and received—quick and dirty BASIC interpreters; who continue, in the face of constant threats of hell-fire and damnation, to type the forbidden words, “GO TO.” This guerrilla army of unprofessionals, this effete class of depraved minds, these lost, undisciplined souls, will be—are—the vanguard of the reformation.
No, it is not that they are using BASIC which is the key. BASIC just happened to be there when they needed something. Nor is it that they are apt to write so-called “unstructured,” tangled mismanaged programs. The salvation which they offer is, rather, the salvation of individualism—of freedom, of self-imposed discipline, of experimentation, of delight, of enthusiasm. The structured minds which graduate from the structured schools of structured programming will, in the end, be no match for the iconoclasts who teach themselves, and each other.
David B. Suits teaches philosophy at the Rochester Institute of Technology. He also has written programs distributed at Intelligent Systems Corp., has had articles published an computer magazines. He has done microcomputer consulting work for Walt Disney Productions.
All trademarks and copyrights property of their owners.