The Parable of the Horse Being a diversion intended to produce a few horse laughs and perhaps some horse sense on a subject that has already fertilized too many fields. bv John M. Nevison Author note: The author has wrangled programs of his own for many years. He has served as a shipping clerk for Project Conduit at the Kiewit Computation Center of Dartmouth College. Presently he is engaged in some private ranching on forest watershed models. Copyright 7974 by John M.Nevison. The Parable There was a farmer who caught a wild horse. He put the animal to work, enlarged his farm and called it a ranch. The idea caught on and soon everyone was after horses to help with their work. Horsemanship developed apace. The wrangler was born. Horse trading flourished. So did stealing. After the railroads came, horses were shipped from one range to another. Ranchers benefitted from the increase of good animals. And the many regions prospered as the artistry of their breeding and the skill of their training improved the quality of their stock. The Animal Bad tempered programs kick even their own handlers. A computer program has much in common with a wild horse. It is temperamental; docile one moment and vicious the next. With good training it will return a lifetime of hard Work. It usually performs well for only one person. And like all living things, it eventually grows old and dies. Programs and horses exhibit a similar variety. There are frisky colts, hard racing two-year-olds, even tempered mares, ornery stallions, heavy hooved plow-horses, high stepping trotters, quick turning quarter-horses, and broken down nags. The Home Range A professional who uses a computer program without knowing how to write one is like a rancher who has never ridden a horse: he may succeed, but he does so under a severe handicap. Often a skilled academic will train a string of programs to cover his range. How he uses a program will vary with the geography of his subject, the landscape of his students and the weather of his research. Different animals are appropriate to different tasks on a constantly changing range. A teacher who has learned how to ride a program uses it with discrimination. He knows what it does best, what its limits are, and how to use it most efficiently. Further, like the rancher who knows how to ride, he can manage with skill the wranglers in his employ. The program wrangler often adapts a preexisting program to his own use. Even the most docile of programs will kick and buck when a new wrangler begins to work with it. Very few programs are well mannered enough to work for someone other than their master. Not surprisingly, a wrangler learns to examine what he wants to do and voids difficult retraining by breeding his own program. To get his ranch work done the professional is constantly deciding whether to have his cowboys breed a horse suitable to the task or import one from another range and train it to the local tasks. The decision depends heavily on the size of the program. The Size of the Beast A nag is a nag. All kinds of programs come in one of three sizes: large, small, or middle. Large ones are those that take months of a programmer's time or tens of millions of bytes of storage on a computer. Small ones are those less than ten lines long. The middle size ones are those left in between. A very large program is cumbersome enough to move and store that a telephone connection to the source often costs less than moving it. A very small program is, by definition, the sort of animal anyone can breed with no trouble on his own range. Programs between these extremes, written in a language like APL, BASIC or Fortran compose the bulk of the herd currently used in research and instruction. Different academics will choose either to breed or to import a middle sized program after examining the local conditions and the cost of shipment. Shipping a Horse by Train Moving a program from one computer to another is like shipping a horse by train: fundamentally, it does not want to go. The cost of moving a computer program is hard to estimate and the problems of shipping are poorly understood. The cowboy's preconception of how to move one has proved wrong. His solution was to ride the program into the boxcar, slam the door, ship it and tell someone to ride it out at the other end. A program actually shipped this way usually seriously injures the first handler to get near it when it arrives. After inflicting multiple lacerations on the wrangler, it often dies of neglect. Sometimes it appears in unfamiliar harness, performing inappropriate work. When shipping clerks from several stations agree on how to immobilize the program in a standard character code, with certain formats for magnetic tape or punched cards, the cost to load,