Vous êtes sur la page 1sur 7

1974.

A C M T u r i n g
A w a r d Lecture
[The Tnring Award citation read by Bernard A. Galler, chairman ence with respect to the first recipient of the Turing Award, Pro-
of the 1974 "ll'~lringAward Committee, on the presentation of this fessor Alan J. Perlis, that at every meeting in which he participates
lecture on November 11 at the ACM Annual Conference in San he manages to provide the insight into the problems being dis-
Diego.] cussed that becomes the focal point of discussion for the rest of
The A.M. Turing Award of the ACM is presented annually the meeting. In a very similar way, the vocabulary, the examples,
by the ACM to an individual selected for his contributions of a the algorithms, and the insight that Don Knuth has provided in
technical nature made to the computing community. In particu- his excellent collection of books and papers have begun to find
lar, these contributions should have had significant influence on their way into a great many discussions in almost every area of
a major segment of the computer field. the field. This does not happen easily. As every author knows,
"The 1974 A.M. Turing Award is presented to Professor even a single volume requires a great deal of careful organization
Donald E. Knuth of Stanford University for a number of major and hard work. All the more must we appreciate the clear view
contributions to the analysis of algorithms and the design of and the patience and energy which Knuth must have had to plan
programming languages, and in particular for his most significant seven volumes and to set about implementing his plan so care-
contributions to the 'art of computer programming' through his fully and thoroughly.
series of well-known books. The collections of techniques, algo- It is significant that this award and the others that he has
rithrus and relevant theory in these books .have served as a focal been receiving are being given to him after three volumes of his
point for developing curricula and as an organizing influence on work have been published. We are clearly ready to signal to
computer science." everyone our appreciation of Don Knuth for his dedication and
Such a formal statement cannot put into proper perspective his contributions to our discipline. I am. very pleased to have
the role which Don Knuth has been playing in computer science, chaired the Committee that has chosen Don Knuth to receive the
and in the computer industry as a whole. It has been my expeli- 1974 A.M. Turing Award of the ACM.

Computer Programming as an Art


by Donald E. Knuth

W h e n Communications of the A C M b e g a n publi- that is classified as a n " a r t " ; it has to be a Science


cation in 1959, the m e m b e r s o f ACM'S Editorial Board before it has a n y real stature. On the other hand, I
m a d e the following r e m a r k as they described the have been w o r k i n g for more t h a n 12 years o n a series
purposes of acM's periodicals [2]: " I f c o m p u t e r pro- of b o o k s called " T h e Art of C o m p u t e r P r o g r a m m i n g / '
g r a m m i n g is to b e c o m e an i m p o r t a n t part of c o m p u t e r People frequently ask me why I picked such a title; a n d
research a n d d e v e l o p m e n t , a t r a n s i t i o n of p r o g r a m m i n g in fact some people a p p a r e n t l y d o n ' t believe that I
from an art to a disciplined science m u s t be effected." really did so, since I've seen at least one bibliographic
Such a goal has been a c o n t i n u a l l y recurring theme reference to some books called " T h e Act of C o m p u t e r
d u r i n g the e n s u i n g years; for example, we read in 1970 Programming."
of the "first steps t o w a r d t r a n s f o r m i n g the art of I n this talk I shall try to explain why I t h i n k " A r t "
p r o g r a m m i n g i n t o a science" [26]. M e a n w h i l e we have is the a p p r o p r i a t e word. I will discuss what it means
actually succeeded in m a k i n g our discipline a science, for something to be an art, in c o n t r a s t to being a science;
a n d in a r e m a r k a b l y simple way: merely by deciding I will try to e x a m i n e whether arts are good things or
to call it " c o m p u t e r science." bad t h i n g s ; a n d I will try to show that a p r o p e r view-
Implicit in these r e m a r k s is the n o t i o n t h a t there is p o i n t of the subject will help us all to i m p r o v e the
s o m e t h i n g u n d e s i r a b l e a b o u t a n area of h u m a n activity quality of what we are n o w doing.
Copyright @ 1974, AsSociation tbr Computing Machinery, Inc. One of the first times I w a s ever asked a b o u t the
General permission to republish, but not for profit, all or part t i t l e of m y b o o k s was in 1966, d u r i n g the last previous
of this material is granted provided that ACM's copyright notice
is given and that reference is made to the publication, to its date ACM n a t i o n a l m e e t i n g held in S o u t h e r n California. This
of issue, and to the fact that reprinting privileges were granted was b e f o r e a n y of the b o o k s were published, and I
by permission of the Association for Computing Machinery, recall having l u n c h with a friend at the c o n v e n t i o n
Author's address, Computer Science Department, Stanford
University, Stanford, CA 94305 hotel. He knew how conceited t was, already at that

667 Communications December 1974


of Volume 17
the ACM Number 12
time, so he asked if I was going to call my books " A n took on more and more independent meanings, "scJ,.
Introduction to D o n K ~ u t h . " I replied that, on tile ence" being used to stand for knowledge, and "art"
contrary, I was nam.ing the books after hi~. His name: for the application of know~edge. Thus, the science of
Art Evans. (The Art o f Computer Programming, in astronomy was the basis for the art of navigation. The
person.) situation was almost exactly like the way i'n which we
F r o m this story we can conclude that the word now distinguish between ~science" and "engineering."
" a r t " has more than one meaning. In fact, one of the Many authors wrote about the relationship between
nicest things about the word is that it is used in rnany art and science in the nineteenth century, and I believe
different senses, each of which is quite appropriate in the best discussion was given by John Stttart Mill. He
connection with computer programming. While pre- said tile following things, a m o n g .others, :in 1843 [28]:
paring this talk, ii went ~o the library to find out what
people have written about tire word "art" through the Several sciences are often necessary to fnrm the groundwork
of a single art. Such is the complication of human affairs, that to
years; and aRer spending several fascinating days in the enable one thing to be dc~t~e,it is often requisite to k~2ow the nature
stacks, I came to the conclusion that "art" must be one and properties of many things ... Art in general consists of the
of the most :interesting words in the English language. truths of Science, arranged in the most convenient order for practice,
instead .of the order which is the most convenient for thought.
Science groups and arranges its truths so as to enable us to take
in at one view as much as possible of the general order of the
The Arts of O]d universe. Art... brings together flom parts of the field of science
I f we go back to Latin roots, we find ars, artis most remote fi:om one another, the truths relating to the production
meaning "skill." It is perhaps significant that the of the different and heterogeneous conditions necessary to each
effSct which the exigencies of" practical life require.
corresponding Greek word was r~x~:q, the root of both
" t e c h n o l o g y " and "technique."
As I was ILooking up these things about the mean-
N o w a d a y s when someone speaks of " a r t " you
ings of "art," I found that authors have been calling
probably think first of "fine arts" such as painting and
fbr a transition from art to science {'or at least two
sculpture, but before the twentieth century the word
centuries. For example, the preface to a textbook on
was generally used in quite a different sense. Since this
mineralogy, written in 1784, said the f'ollowing [171:
older meaning of " a r t " still survives in many idioms,
"Previous to the year t780, mineralogy, though toler-
especially when we are contrasting art with science, I
ably understood by many as an Art, could scarce be
would like to spend the next few minutes talking about
deemed a Science."
art in its classical sense.
According to most dictionaries "science" means
In medieval times, the first universities were es-
knowledge that has been logically arranged and system-
tablished to teach the seven so-called "liberal arts,"
atized in the form o f general "laws." The advantage of
namely grammar, rhetoric, logic, arithmetic, geometry,
science is that it saves us from the need to think things
music, and astronomy. Note that this is quite different
through in each individual case; we can turn our
from the curriculum of today's liberal arts colleges, and
thoughts to higher-level concepts. As John Ruskin
that at least three of the original seven liberal arts are
wrote in 1853 [32]: "The work of science is to substitute
important components of computer science. At that
facts for appearances, and demonstrations tbr impres-
time, an ";art" meant something devised by man's
sions."
intellect, as opposed to activities derived from nature
it seems to me that if the authors I studied were
or instinct; "liberal" arts were liberated or free, in
writing today, they would agree with the following
contrast to manual arts such as plowing (cf. [6]). During
characterization: Science is knowledge which we under-
the middle ages the word "art" by itself usually meant
stand so welt that we can teach it to a computer; and
logic [4], which usu.ally meant the study of syllogisms.
if we d o n ' t fully understand something, it is an art to
deal with it. Since the notion of an algorithm or a
Science vs. Art computer program provides us with an extremely useful
The word "science" seems to have been used tbr test for the depth o f our knowledge about any given
m a n y years in about the same sense as "art"; for ex- subject, the process of going from an art to a science
ample, people spoke also of the seven liberal sciences, means that we learn how to automate something.
which were the same as the seven liberal arts [1]. Artificial intelligence has been making significant
Duns. Scotus in the thirteenth century called logic "the progress, yet there is a huge gap between what com-
Science of Sciences, and the Art of Arts" (cf. [12, p. puters can do in the foreseeable future and what
34f]). As civilization and learning developed, the words ordinary people can do. The mysterious insights that

668 Communications December 1974


of Volume 17
" the ACM Number 12
people have when speaking, listening, creating, and picked up a dictionary in order to study the words " a r t "
even when they are programming, are still beyond the and "science," I happened to glance at the editor's
reach of science; nearly everything we do is still an art. preface, which began by saying, "The making of a
From this standpoint it is cer[ainly desirable to make dictionary is both a science and an art." The editor of
computer programming a science, and we have indeed Funk & Wagnall's dictionary [27] observed that the
come a long way in the 15 years since the publication painstaking accumulation and classification of data
of the remarks I quoted at the beginning of this talk. about words has a scientific character, while a well-
Fifteen years ago computer programming was so badly chosen phrasing of definitions demands the ability to
understood that hardly anyone even thought about write with economy and precision: "The science without
proving programs correct; we just fiddled with a pro- tile art is likely to be ineffective; the art without tile
gram until we "knew" it worked. At that time we didn't scier~ce is certain to be inaccurate."
even know how to express the cor~cept that a program When preparing this talk I looked through the card
was correct, in any rigorous way. It is only in recent catalog at Stanford library to see how other people
years that we have been learning about the processes of have been using tile words "art" and "science" in the
abstraction by which programs are written and under- titles of their books. This turned out to be quite inter-
stood; and this new knowledge about programming is esting.
currently producing great payoffs in practice, even For example, I found two books entitled The Art
though I}w programs are actually proved correct with of Playing the Piat~o [5, 15], and others called The
complete rigor, since we are beginning to understand Sciel~ce of Pianoforte 7"echtlique [10], The Science of
the principles of program structure. The point is that Piaezofi)rte Practice [30]. There is also a book called
when we write programs today, we know that we could The Art oJ" Piano Playing: A SciemiJTc Approach [22].
in principle construct formal proof~ of their correctness Then I found a nice little book entitled 7"he Gentle
if we really wanted to, now that we understand how Art cf Mathematics [31], which made me somewhat
such proof~ are formulated. This scientific basis is re- sad that I can't honestly describe computer program-
sulting in programs that are significantly more reliable ming as a "gentle art."
than those we wrote in former days when intuition was I had known for several years about a book called
the only basis of correctness. The Art of Computation, published in San Francisco,
The field of "automatic programming" is one of 1879, by a man named C. Frusher Howard [14]. This
the major areas of artificial intelligence research today. was a book on practical business arithmetic that had
Its proponents would love to be able to give a lecture sold over 400,000 copies in various editions by 1890.
entitled "Computer Programming as an Artifact" 1 was amused to read the preface, since it shows that
(meaning that programming has become merely a relic Howard's philosophy and the intent of his title were
of bygone days), because their aim is to create machines quite different from mine; he wrote: "A knowledge of
that write programs better than we can, given only the the Science of Number is of minor importance; skill in
problem specification. Personally t don't think such a the Art of Reckoning is absolutely indispensible."
goal will ever be completely attained, but I do think Several books mention both science and art in their
that their research is extremely important, because titles, notably 7"he Science of Being and Art of Living
everything we learn about programming helps us to by Maharishi Mahesh Yogi [24]. There is also a book
improve our own artistry, in this sense we should called The Art of Scientifi'c Discovery [11], which
continually be striving to transform every art into a analyzes how some of the great discoveries of science
science: in the process, we advance the art. were made.
So much for the word " a r t " in its classical meaning.
Science and Art Actually when I chose the title of my books, I wasn't
Our discussion indicates that computer programming thinking primarily of art in this sense, I was thinking
is by now both a science and an art, and that the two more of its current connotations. Probably the most
aspects nicely complement each ,other. Apparently most interesting book which turned up in nay search was a
authors who examine such a question come to this same fairly recent work by Robert E. Mueller called The
conclusion, that their subject is both a science and an Science of Art [29]. Of all the books I've mentioned,
art, whatever their subject is (cf. [25]). I found a book Mueller's comes closest to expressing what I want to
about elementary photography, written in 1893, which make the central theme of my talk today, in terms of
stated that "the development of the photographic image real artistry as we now understand the term. He ob-
is both an art and a science" [13]. tn fact, when I first serves: "It was once thought that the imaginative

669 Communications December 1974


of Volume 17
the ACM Number 12
outlook of the artist was death for' the scientist. And program in 1958; you probably thi>,k t % cruzy, and
the logic of science seemed to spell 'doom to all possible styles have certainly changed grcaltiy since then, but at
artistic flights of fancy." He goes on to explore the the time it meant a great deal to me to see how elegant
advantages which actually do result from a synthesis of a system program could be, especially by c o m p a r i s o n
science and art. with the heavy-handed coding found in other listings I
A scientific a p p r o a c h is generally characterized by had been studying at the same time. 'l'hc possibility of
the words logical, systematic, impersonal, calm, ra- writing beautiful programs, even ii1 asscmbiy h.mguage,
tional, while an artistic approach is characterized by the is what got me hooked on p r o g r a m m i n g in the first
words aesthetic, creative, humanitarian, anxious, ir- place.
rational. It seems to me that both of these apparently Some programs are elegant, s o m e are exquisite,
contradictory approaches have great value with respect some are sparkling. My claim is that it is possible to
to c o m p u t e r p r o g r a m m i n g . write grand programs, treble programs, truly magnifi-
E m m a Lehmer wrote in 1956 that she had found cent ones[
coding to be " a n exacting science as well as an in-
triguing art" [23]. H.S.M. Coxetcr remarked ira 1957 Taste and Style
that he sometimes felt " m o r e like an artist than a The idea of" style in p r o g r a m m i n g is now c o m i n g to
scientist" [7J. This was at the time C.P. Snow was the forefront at last, and 1 hope that most of" you have
beginning to voice his alarm at the growing polarization seen the excei1et~t little book on t2/emeHts' of Program..
between "two cultures" of educated people [34, 35]. ruing Style by Kernighan and Ptauger [16]. in this
He pointed out that we need to combine scientific and connection it is most i m p o r t a n t for us all to r e m e m b e r
artistic values if' we are to make real progress. that there is no one " b e s t " style; e v e r y b o d y has his
own preferences, and it is a mistake to try to force
people into an unnatural mold. We often hear' the
Works of Art saying, "I don't know anything a b o u t art, but I know
When i ' m sitting in an audience listening to a long what I like." The important thing is that you really
lecture, my attention usually starts to wane at about
l/fie the styIe you are using; it should be the best way
this point in the hour. So I wonder, are you getting a
you prefer to express yourself,
little tired of m y harangue about *'science" and " a r t " ?
Edsger Dijkstra stressed this point in the pretence
really hope that you'll be able to listen carefully to
to his Short Irltrodt~ction to the Art ~d Programming [8[:
the rest of this, anyway, because now comes the part
a b o u t which I fled m o s t deeply. It is my purpose to transmit the irnportance of good taste and
W h e n I speak a b o u t c o m p u t e r p r o g r a m m i n g as an style in programming, [but] the specific elements of style presented
serve only to illustrate what benefits can be derived from "style"
art, I a m thinking primarily of it as an art form, in an in general. In this respect I feel akin to the teacher of" composition
aesthetic sense. The chief" goal of my work as educator at a conservatory: He does not teach Ms pupils how to compose a
and author is to help people learn how to write beau- particular symphony, he must help his pupils to find their own
style and must explain to them what is implied by this. (It has been
tiJM programs. It is for this reason 1 was especially this analogy that made me talk about "The Art of Programming.")
pleased to learn recently [32] that m y books actually
appear in the Fine Arts Library at CorneI1 University. N o w we must ask ourselves, What is good style,
(However, the three volumes apparently sit there neatly and what is bad style? We should not be too rigid
on the shelf, without being used, so I ' m afraid the about this in judging other people's work. T h e early
librarians m a y have m a d e a mistake by interpreting my nineteenth-century philosopher J e r e m y B e n t h a m put it
title literal!y.) this way [3, Bk. 3, Ch. t1:
My feeling is that when we prepare a program, it
Judges of elegance and taste consider themselves as benefactors
can be like c o m p o s i n g poetry or music; as Andrei to the human race, whilst they are really only the interrupters of
Ershov has said [9], p r o g r a m m i n g can give us both their pleasure... Ti~ere is no taste which deserves the epithet good,
intellectual and e m o t i o n a l satisfaction, because it is a unless it be the taste for such employments which, to the pleasure
actually produced by them, conjoin some contingent or Ajture
real achievement to m a s t e r complexity and to establish utility: there is no taste which deserves to be characterized as bad,
a system of consistent rules. unless it be a taste for some occupation which has a mischievous
tendency.
F u r t h e r m o r e when we read other people's programs,
we can recognize some of them as genuine works of When we apply our own prejudices to " r e f o r m " some-
art. I can still r e m e m b e r the great thrill it was for me one else's taste, we may be unconsciously denying him
to read the listing of Stan Poley's SOAp II assembly some entirely legitimate pleasure. T h a t ' s why I d o n ' t
670
Communications December 1974
of Volume 17
the ACM Number 12
condenm a lot of things programmers do, even though is that there is a time and place for efficiency; I have
t would never enjoy doing them myself. The important discussed its proper role in my paper on structured
thing is that they are creating something they feel is programming, which appears in the current issue of
beautiful. Computing Surveys I21].
in the passage I just quoted, Bentham does give us
some advice about certain principles of aesthetics which Less Facilities: Mere Enjoyment
are better than others, namely the "utility" of the One rather ,curious thing I've noticed about aesthetic
result. We have some freedom in setting up our personal satisfaction is that our pleasure is significantly enhanced
standards of beauty, but it is especially nice when the when we, accomplish something with limited tools.
things we regard as beautiful are also regarded by other For example, the program of which I personally am
people as useful. I must confess that I really enjoy most pleased and proud is a compiler I once wrote for
writing computer programs; and I especially enjoy a primitive minicomputer which had only 4096 words
writing programs which do the greatest good, in some of memory, t6 bits per word. It makes a person feel
sense. like a real virtuoso to achieve something under such
There are many senses in which a program can be severe restrictions.
"good," of course. In the first place, it's especially good A similar phenomenon occurs in many other con-
to have a program that works correctly. Secondly it is texts. For example, peopIe often seem to fall in love
oken good to have a program that won't be hard to with their Volkswagens but rarely with their Lincoln
change, when the time %r adaptation arises. Both of Continentals (which presumably run much better).
these goals are achieved when the program is easily When I learned programming, it was a popular pasthne
readable and understandable to a person who knows to do as much as possible with programs that fit on
the appropriate language. only a single punched card. I suppose it's this same
Another important way for a production program phenomenon that makes APL enthusiasts relish their
to be good is ~or it to interact gracefully with its users, "one-liners." When we teach programming nowadays,
especially when recovering fl'om human errors in the it is a curious fiact tlhat we rarely capture the heart of a
input data. lt's a real art to compose meaningful error student for computer science until he has taken a course
messages or to design flexible input formats which are which allows "hands on" experience with a minicom-
not error-prone. puter. The use of our large-scale machines with their
Another important aspect of program quality is fancy operating systems and languages doesn't really
the efficiency with which the computer's resources are seem to engender any love for programming, at least
actually being used. I am sorry to say that many people not at first.
nowadays are condemning program efficiency, telling It's not obvious how to apply this principle to
us that it is in bad taste. The reason for this is that we increase programmers' enjoyment of their work. Surely
are now experiencing a reaction from the time when programmers would groan if their manager suddenly
efficiency was the only reputable criterion of goodness, announced that the new machine wilt have only half as
and programmers in the past have tended to be so much memory as the old. And I don't think anybody,
preoccupied with efficiency that they have produced even the most dedicated "programming artists," can be
needlessly complicated code; the result of this unneces- expected to welcome such a prospect, since nobody
sary complexity has been that net efficiency has gone likes to lose facilities unnecessarily. Another example
down, due to difficulties of debugging and maintenance. may help to clarify the situation: Film-makers strongly
The real problem is that programmers have spent resisted the introduction of talking pictures in the 1920's
far too much time worrying about efficiency in the because they were justly proud of the way they could
wrong places and at the wrong times; premature convey words without sound. Similarly, a true program-
optimization is the root of all evil (or at least most of it) ming artist might well resent the introduction of more
in programming. powerful equipment; today's mass storage devices
We shouldn't be penny wise and pound foolish, nor tend to spoil much of the beauty of our old tape sorting
should we always think of efficiency in terms of so methods. But today's film makers don't want to go
many percent gained or lost in total running time or back to silent films, not because they're lazy but because
space. When we buy a car, many of us are almost they know it is quite possible to make beautiful movies
oblivious to a difference of $50 or $100 in its price, using the improved technology. The form of their art
while we might make a special trip to a particular has changed, but there is still plenty of room for artistry.
store in order to buy a 50 item for only 25#. My point How did they develop their skill? The best film

Communications December 1974


of Volume 17
the ACM Number 12
makers through the years usually seem to have learned Welt, it's true, not all programming tusks are going
their art in comparatively primitive circumstances, often to be fun. Consider the "trapped housewiR,," who has
in other countries with a limited movie industry. And to clean off the same table every day: there's not room
in recent years the most important things we have been f'or creativity or artistry in e~ery situation. But even in
learning about programming seem to have originated such cases, there is a way to make a :) g improvement:
with people who did not have access to very large it is still a pleasure to do routine.iobs it" we have beau-
computers. The moral of this story, it seems to me, is tiful things to work with. For exa~nple, a person will
"that we should make use of the idea of" limited resources really enjoy wiping off" the dining room table, day after
in our own education. We can all benefit by doing day, if' it is a beautifully desig~lcd ruble made from some
occasional " t o y " programs, when artificial restrictions fine quality hardwood.
are set up, so that we are forced to push our abilities Theref'ore 1 warlt to address my closing remarks to
to the limit. We shouldn't live in the lap of luxury all the system programmers and the macMne designers who
the time, since that tends to make us lethargic. The art produce the systems that the rcst of us must work with.
of tackling miniproblems with all our energy will .P/eas'e, give us tools that are a pleasure to use, especially
sharpen our talents for the real problems, and the for our roudne assignments, instead of providing some-
experience will help us to get more pleasure From our thing we have to fight with. Please. give us tools that
accomplishments on less restricted equipment. encourage us to write better programs by enhancing
in a similar vein, we shouldn't shy away From "art our pleasure when we do so.
for art's sake"; we shouldn't fed guilty about programs It's very hard for me to convince college fleshmen
that are just for fun. I once got a great kick out of" that programming is beautiful, when the first thing I
writing a one-statement ALGOL program that invoked have to tell them is how to punch "sh~slh slash JOB
an innerproduct procedure in such an unusual way that equals so-and-so." Even job control languages can be
it calculated the ruth prime number, instead of an designed so that they are a pleasure to use, instead of
innerproduct [19]. Some years ago the students at being strictly functional.
Stanford were excited about finding the shortest ~OR- Computer hardware designers can make their ma-
TRAN program which prints itself out, in the sense that chines much more pleasant to use, {'or exampte by
the program's output is identical to its own source text. providing floating-point arithmetic which satisfies sim-
The same problem was considered for many other ple mathematical laws. The facilities presently available
languages. I don't think it was a waste of time for them on most machines make the job of rigorous error
to work on this; nor would Jeremy Bentham, whom t analysis hopelessly difficult, but properly designed
quoted earlier, deny the "utility" of such pastimes [3, operations would encourage numerical analysts to
Bk. 3, Ch. 1]. "On the contrary," he wrote, "there is provide better subroutines which have certified accuracy
nothing, the utility of which is more incontestable. (cf. [20, p. 204]).
To what shall the character of utility be ascribed, if Let's consider also what software designers can do.
not to that which is a source of pleasure?" One of the best ways to keep up the spirits of a system
user is to provide routines that he can interact with.
Providing Beautiful Tools We shouldn't make systems too automatic, so that the
Another characteristic of modern art is its emphasis action always goes on behind the scenes; we ought to
on creativity. It seems that many artists these days give the programmer-user a chance to direct his crea-
couldn't care less about creating beautiful things; only tivity into useful channels. One thing all programrners
the novelty of an idea is important. I ' m not recom- have in common is that they enjoy working with ma-
mending that computer programming should be like chines; so let's keep them ira the loop. Some tasks are
modern art in this sense, but it does lead me to an best done by machine, while others are best done by
observation that I think is important. Sometimes we human insight; and a properly designed system will find
are assigned to a programming task which is almost the right balance. (I have been trying to avoid mis-
hopelessly dull, giving us no outlet whatsoever for any directed automation for many years, cf. [18],)
creativity; and at such times a person might well come Program measurement tools make a good case in
to me and say, "So programming is beautiful? It's all point. For years, programmers have heel] unaware of
very well fbr you to declaim that I should take pleasure how the real costs of computing are distributeci in their
in creating eIegant and charming programs, but how prograrns. Experience indicates that nearly everybody
am i supposed to make this mess into a work of art?"
has the wrong idea about the real bottlenecks in his
672
Comrnuaicatiorns December 1974
of' Volume 17
the ACM Num[x:r /2
p r o g r a m s ; it is no w o n d e r that attempts at efficiency 4. The Cetm~ry Dictiotlary atd Cyclopedia 1. The Century Co.,
New York, I889.
go a w r y so often, when a p r o g r a m m e r is never given a 5. Clementi, Muz[o. The Art of Playing the Piano. Trans. from
b r e a k d o w n of costs according to the lines of code he L'art de ]ouer le pianq/brte by Max Vogrich. Schirmer, New York,
has written. His j o b is something Eke that of a newly 1898.
6. Colvin, Sidney. "Art?' Eircyclopaedia Britatmica, eds 9, 11,
m a r r i e d couple w h o try to plan a balanced budget 12, 13, 1875-1926.
w i t h o u t knowing how much the individual items like 7. Coxeter, H. S. M. Convocation address, Proc. 4th Canadian
food, shelter, and clothing will cost. All that we have Math. Congress, 1957, pp. 8-40.
8, Dijkstra, Edsger W. EWD316: A Short l~rtrodaction to the Art
been giving p r o g r a m m e r s is an optimizing compiler, 02/ Programmit~g. T. H. Eindhoven, The Netherlands, Aug. 1971.
which n~ysteriously does something to the p r o g r a m s it 9. Ershov, A. P. Aesthetics and the human factor in programming.
translates b u t which never explains what it does. For- Comm. ACM 15 (July 1972), 501--505.
10. Fielden, Thomas. The Science o/" Piano/brte Technique.
t u n a t e l y we are n o w finalIy seeing the appearance of Macmillan, London, 1927.
systems which give the user credit for some intellb 11. Gore, George. 771e Art of Scientific Dis'covery. Longmans,
gence; they a u t o m a t i c a l l y provide instrumentation of Green, London, 1878.
12. Hamilton, William. Lectures on Logic 1. Wrn. Blackwood,
p r o g r a m s a n d a p p r o p r i a t e feedback about the real Edinburgh, 1874.
costs. These experimental systems have been a huge 13. Hodges, John A. Elementary Photography: The "Amateur
success, because they produce measurable improve- Photographer" Library 7. London, 1893. Sixth ed, revised and
enlarged, 1907, p. 58.
m e a t s , and especially because they are fun to use, so l 14. Howard, C. Frusher. Howard's Art of Computation and
am confident that it is only a matter of time before the golden rule for equation of payments for schools, business colleges
use of such systems is s t a n d a r d operating procedure. and seligculture . . . . C.F. Howard, San Francisco, 1879.
15. Hummel, J.N. 17re Art o/" Playing the Piano Forte. Boosey,
M y p a p e r in ComputitTg Surveys [21] discusses this fur- London, 1827.
ther, a n d presents some ideas for other ways in which 16. Kernighan B.W., and Plauger, P.J. The Elements oJ" Program-
an a p p r o p r i a t e interactive routine can enhance the milrg Style. McGraw-Hill, New York, 1974.
17. Kirwan, Richard. Eleme,Tts o/" Mineralogy. Elmsly, London,
satisf'action of user p r o g r a m m e r s .
1784.
L a n g u a g e designers also have an obligation to 18. Knuth, Donald E. Minimizing drum latency time. J. A C M 8
p r o v i d e languages that encourage good style, since we (Apr. 1961), 119-150.
19. Knuth, Donald E., and Merner, J.N. ALGOL 60 confidential.
all k n o w that style is strongly influenced by the language Comm. ACM 4 (Jane 1961), 268--272.
in w h i c h it is expressed. The present sttrge of interest 20. Knuth, Donald E. Seminumerical Algorithms: The Art o/"
ira s t r u c t u r e d p r o g r a m m i n g has revealed that none of Computer Programming 2. Addison-Wesley, Reading, Mass., 1969.
21. Knuth, Donald E. Structured programming with go to state-
o u r existing languages is really ideal for dealing with
ments. Computbrg Surveys 6 (Dec. 1974), pages in makeup.
p r o g r a m a n d d a t a structure, nor is it clear what an 22. Kochevitsky, George. The Art of Piano Plwing: A Scientific
ideal l a n g u a g e should be. Therefore 1 look forward to Approach. Summy-Birchard, Evanston, II1., 1967.
m a n y careful experiments in language design during 233. Lehmer, Emma. Number theory on the SWAC. Proc. Syrup.
Applied Math. 6, Amer. Math. Soc. (1956), 103-108.
the next few years. 24. Mahesh Yogi, Maharishi. The Science q/'Being and Art qf
Living. Allen & Unwin, London, 1963.
Summary 25. Malevinsky, Moses L. The Science of Playwriting. Brentano's,
New York, 1925.
T o s u m m a r i z e : W e have seen that c o m p u t e r pro- 26. Manna, Zohar, and Pnueli, Amir. Formalization of properties
g r a m m i n g is an art, because it applies accumulated of functional programs, d. A C M 17 (July t970), 555-.569.
k n o w l e d g e to the world, because it requires skill and 27. Marckwardt, Albert H. Preface to lqmk and Wagnall's Stan-
dard Colh, ge Dictionary. Harcourt, Brace & World, New York,
i n g e n u i t y , a n d especially because it produces objects of 1963, vii.
b e a t l t y . A p r o g r a m m e r who subconsciously views him- 28. Mill, John Stuart. A System off Logic, Ratiocinative and
self as an artist will enjoy what he does and will d o it brductive. London, 1843. The quotations are from the introduction,
better. Therefore we can be glad that people who lec- 2, and from Book 6, Chap. 11 (12 in later editions), 5.
29. Mueller, Robert E. The Science of Art. John Day, New York,
ture at c o m p u t e r conferences speak about the state o f 1967.
the A r t . 30. Parsons, Albert Ross. The Science of Piano/brte Practice.
Scbirmer, New York, 1886.
References 31. Pedoe, Daniel. The Gentle Art of Mathematics. English U.
1. Bailey, Nathan. The Universal Etymological English Dictionary. Press, London, 1953.
T. Cox, London, 1727. See "Art," "Liberal," and "Science." 32. Ruskin, John. The Stones of Venice 3. London, 1853.
2. Bauer, Walter F,, Juncosa, Mario L., and Perils, Alan J. 33. Salton,. G.A. Personal communication, June 21, 1974.
ACM publication policies and plans. J. A C M 6 (Apr. 1959), 34. Snow, C.P. The two cultures. The New Statesman and Nation
121-122. 52 (Oct. 6, 1956), 413-414.
3. Bentham, Jeremy. The Rationale of Reward. Trans. from 35. Snow, C.P. The Two Cultures: and a Second Look. Cambridge
Thdorie des peiltes et des rdcompenses, t811, by Richard Smith, University Press, 1964.
J. & H. L. Hunt, London, 1825.

673 Communications December 1974


of Volume 17
the ACM Number 12

Vous aimerez peut-être aussi