Joseph Weizenbaum makes the point in his
"Science and the Compulsive Programmer" chapter of Computer Power and Human
Reason, that some programmers are more drawn to the computer than others.
These hackers are the compulsive programmers, and they program like compulsive
gamblers gamble. Weizenbaum generalizes the characteristics of these individuals
superbly:
How may compulsive programmers be distinguished
from a merely dedicated, hard-working professional programmer? First, by
the fact that the ordinary professional programmer addresses himself to
the problem to be solved, whereas the compulsive programmer sees the problem
mainly as an opportunity to interact with the computer.Ö. The professional
regards programming as a means to an end, not as an end in itself. His
satisfaction comes from having solved a substantive problem, not having
bent a computer to his will.
The compulsive programmer is generally a superb
technician, one who knows every detail of the computer he works on, its
peripheral equipment, the computerís operating system, etcÖ. His position
is rather like that of a bank employee who doesnít do much for the bank,
but is kept on because only he knows the combination of the safeÖ.
Unlike the professional, the compulsive programmer
cannot attend to other tasks, not even to tasks closely related to his
program, during periods when he is not actually operating a computer. He
can barely tolerate being away from the machine. But when he is nevertheless
forced by circumstances to be separated from it, at least he has his computer
printouts with him. He studies them, he talks about them to anyone who
will listenóthough, of course, no one else can understand them. Indeed,
while in the grip of his compulsion he can talk of nothing but his program.
But the only time he is, so to say, happy, is when he is at the computer
console. (Weizenbaum, 117-18)
Obviously Weizenbaum is describing an individual deep in the throes
of technophilia. But is this necessarily a bad thing? Weizenbaum, from
his tone, would seem to think so. Others, such as Ellen
Ullman, would disagree. Weizenbaum, perhaps, would see the compulsive
programmer as having a problem while the so-called professional does not.
I, on the other hand, see both programmers as simply having varying degrees
of technophilia. Instead of such a sharp binary distinction between the
"compulsives" and the "professionals," the situation is more akin to a
technophiliac spectrum. While both the programmers described love computers,
they obviously do so to varying degrees - that is to say, they lie toward
the opposite ends of the spectrum.
If there's one thing I've learned from working with computer programmers,
it's that they constantly defie expectations. Just when you thing you've
got them figured out they throw you a curveball. Maybe they break down
and tell you about the puppy they lost when they were six, or maybe someone
who hasn't seemed to obsess over computer science suddenly spends 74 hours
straight in the lab, or something equally unexpected. The point is, by
defying expectations they also defy being placed into Weizenbaum's neat
little buckets. Still, he does come up with some good psychological explanations,
although I believe they apply to all coders, not just the "compulsive"
ones:
The psychological situation the compulsive programmer
find himself in while [fixing a bug in his code] is strongly determined
by two apparently opposing facts: first, he knows that he can make the
computer do anything he wants it to do; and second, the computer constantly
displays undeniable evidence of his failures to him. It reproaches him.
There is no escaping this bind. The engineer can resign himself to the
truth that there are some things he doesnít know. But the programmer moves
in a world entirely of his own making. The computer challenges his power,
not his knowledge.
Indeed, the compulsive programmerís excitement
rises to a fevered pitch when he is on the trail of a most recalcitrant
error, when everything ought to work but the computer nevertheless reproaches
him by misbehaving in a number of mysterious, apparently unrelated ways.
It is then that the system the programmer has created gives every evidence
of having taken on a life of its own, and certainly, of having slipped
from his control. This too is the point where the idea that the computer
can be "made to do anything" becomes most relevant and most soundly based
in reality. For, under such circumstances, the misbehaving artifact is,
in fact, the programmerís own creation. Its very misbehavior can, as we
have already said, be the consequence only of what he has done. And what
he has done he can presumably come to understand, to undo, and to redo
to better serve his purpose. Accordingly, his mood and his activity becomes
increasingly frantic when he believes he has finally discovered the source
of the trouble. Should his time at the console be nearly up at that moment,
he will take enormous risks with his program, making substantial changes,
one after another, in minutes or even seconds without so much as recording
what he is doing, always pleading for another minute. He can, under such
circumstances, rapidly and virtually irretrievably destroy weeks and weeks
of his own work. Should he, however, find a deeply embedded error, one
that actually does account for much of the programís misbehavior, his joy
is unbounded. It is a thrill to see a hitherto moribund program come back
to life; there is no other way to say it. When some deep error has been
found and repaired, many different portions of the program, which until
then had given nothing but incomprehensible outputs, suddenly behave smoothly
and deliver precisely the intended results. There is reason for the diagnostician
to be pleased and, if the error was really deep inside the system, even
proud.
But the compulsive programmerís pride and elation
are very brief. His success consists of having shown the computer who its
master is. And having demonstrated that he can make it do this much, he
immediately sets out to make it do even more. (Weizenbaum,
119-20)
I hope from this description that it is easier for some of you
to see why programming can be so addictive. To some of you technophilia
must seem like an inapropriate term. After all, coding has nothing to do
with sex. Let me assure you, at least on the emotional level, it
does.
authored by mip@netspace.org