Information Technology Reference
In-Depth Information
program a computer. The experience was life changing, and by 1955 he
had decided to relinquish physics to take up computing full-time. His
dissertation in 1959 on “communication with an automatic computer”
described his development of an assembly code for the mathematical
computation center at the University of Amsterdam. 1
Like many of his fellow scientists, Dijkstra was not so much interested
in the electronic computer as a technology as he was in computing as an
intellectual activity. While the electronic computer itself would no doubt
have an enormous impact on society, it would be “but a ripple on the
surface of our culture” compared to the potential infl uence of the science
of computing. The emergence of the computing sciences, Dijkstra
declared, represented an intellectual opportunity “without precedent in
the cultural history of mankind.” To program a computer effi ciently was
to master complexity, and the mastery of complexity was the fundamen-
tal challenge of modern science and society. 2
Despite his enthusiasm for the challenge and potential of computing,
however, Dijkstra's decision to abandon physics for computing was
fraught with doubt and uncertainty. As Dijkstra would later recall in
his 1972 Turing Award Lecture (revealingly titled “The Humble
Programmer”),
I had to make up my mind, either to stop programming and become a real,
respectable theoretical physicist, or to carry my study of physics to formal com-
pletion only, with a minimum of effort, and to become . . . what? A programmer?
But was that a respectable profession? After all what was programming? Where
was the sound body of knowledge that could support it as an intellectually
respectable discipline? I remember quite vividly how I envied my hardware
colleagues, who, when asked about their professional competence, could at
least point out that they knew everything about vacuum tubes, amplifi ers
and the rest, whereas I felt that, when faced with that question, I would stand
empty-handed.
The principal problem with programming in this early period, according
to Dijkstra, was the persistence of a black art mentality among many of
its practitioners. Programmers too often saw their work as temporary
solutions to local problems, rather than as an opportunity to develop a
more permanent body of knowledge and technique. They reveled in the
popular notion that programmers were idiosyncratic geniuses, and that
“a really competent programmer should be puzzle-minded and very
fond of clever tricks.” To Dijkstra these were pernicious anachronisms
that encouraged a provincial, “tinkering” approach to software develop-
ment. Such “clumsy and expensive” processes might have been tolerated
when computer software, like computer hardware, was still relatively
Search WWH ::




Custom Search