Are We Scientists or Engineers?
Wm. A. Wulf
Like those sophomoric debates about trees falling in the forest, the answer
depends on the definition.
In my dictionary, the preferred definition of science involves discovering
properties of the natural world. Engineering involves the application of
those properties to solve practical problems. By these definitions we are
neither scientists nor engineers. The principal objects of our study are
man-made, not natural.
The third definition in my dictionary is more expansive, focuses more on
the method of discovery, and includes the rigorous study of any phenomena.
By that definition we are perhaps both scientists and engineers, since we
both study and apply computation. But I am not sure that is a useful response
to the original question, since it reflects only that the level of abstraction
has been raised - at a some even higher level of abstraction we are probably
also humanists. If we abstract too much, we lose the intent of making the
distinction in the first place.
Does the answer matter? In some ways, I suppose so. It's handy to have an
analogy to help explain what we do. Certainly we share a lot with both science
and engineering - the scientific method on the one hand and the construction
of useful, reliable, and cost-effective artifacts on the other. No one can
contest that the foundations of computation are as deep and intellectually
rich as those of any natural science, and the systems we engineer are clearly
among the most sophisticated ever devised. Since most people have positive
feelings about both science and engineering, the analogies are generally
useful, even if they aren't perfect and even if the listener doesn't really
understand what it means to be a scientist or engineer anyway.
The problem with analogies, however, is that they cut both ways. If we ever
decided the question, we would have to live with inferences that we might
not like. As a case in point, there is a movement in engineering education
to structure the core curriculum on the common applications of the conservation
laws and the second law of thermodynamics. Proponents of this view recommend
that, to be accredited, the first two years of all engineering curricula
be organized exclusively around these. If we're engineers, then presumably
that applies to us.
I, for one, believe that computing professionals need the earliest possible
introduction of discrete mathematics and formal methods. My own department
happens to be in an engineering college, and I am delighted that our students
get a solid grounding in the physical sciences, continuous mathematics,
and engineering design - but it would be profoundly wrong to preclude discrete
mathematics from the beginning of their curriculum. Computing professionals
need the mathematical tool to allow them to reason about computational structures,
and they need to have those tools exercised throughout their education;
that can't happen if discrete mathematics is delayed into the third year.
Because of limited space, I'll leave as an exercise to the reader listing
some of the really unpleasant consequences of being pegged as a scientist.
Beyond the danger of others drawing improper inferences, letting ourselves
be captured by the analogy is even more dangerous. If we are one then we
are not the other; and so those others do not belong in our academic departments
or professional societies. Defining ourselves by what we are not is common
in CS and it has, in my opinion, damaged us. It has made us inhospitable
to pragmatically and intellectually fertile areas that should be part of
our discipline. Indeed, beyond being inhospitable, we have expelled whole
areas - numerical methods, libraries, and MIS, for example. If we continue
this expulsion of the practical we will leave the field a barren husk.
The tendency to define ourselves by what we are not is, I think, a legacy
of the early days of the field when many were concerned about being seen
as merely programmers for the real scientists. We were not just programmers.
Sadly, echoes of this outdated fear are present in the title question itself.
Some people seem to think one answer is more respectable. In truth, we will
not be more respected because of what we call ourselves.
Let's remember that there is only one nature - the division into science
and engineering, and subdivision into physics, chemistry, civil and electrical,
is a human imposition, not a natural one. Indeed, the division is a human
failure; it reflects our limited capacity to comprehend the whole. That
failure impedes our progress; it builds walls just where the most interesting
nuggets of knowledge may lie. The fact that other disciplines have chosen
to build those walls is a failure that we are not required to emulate.
Young as we are, I think we don't really have a choice to be science or
engineering; we are a science and engineering, and something more too. Evidence
abounds for the value of the interplay in our field between the science
and engineering, the theory and practice, the basic and applied. The most
theoretical aspects of complexity theory are motivated by the most pragmatic
of concerns, performance. New results in number theory and logic are both
driven by and drive practical issues of security and privacy in networked
systems. The practical application of formal methods would have sounded
like an oxymoron to mathematicians less than a century ago, but now is a
goal within sight.
The fact is, whatever you call us, CS is the place to be. Our young and
slightly paranoid discipline is in the vanguard of changes in science, technology,
and society that are as profound as any precipitated by the traditional
sciences and engineering - probably more so.
It might be more comfortable to define ourselves by analogy to the establishment,
but what we do is too important to be limited by that. Let's kick the inferiority
complex and find our own way, define our own paradigms. Let's adopt the
applicable best from science, engineering, the social sciences, and the
humanities. Let's be inclusive rather than exclusive. Let's build even more
bridges to other disciplines and to industry; let's amplify the special
strengths of each. Like the immigrants to the U.S., industrial affiliations
and applications in diverse disciplines enrich and vitalize our core.
I reject the title question. I call my discipline Computer Science because
that's the common name in the U.S. - but my discipline spans a multidimensional
spectrum from deep and elegant mathematics to crafty programming, from abstraction
to solder joints, from deep truth to elusive human factors, from scholars
motivated purely by the desire for knowledge to practitioners making my
everyday life better. It embraces the ethos of the scholar as well as that
of the professional. To answer the question would be to exclude some portion
of this spectrum, and I would be poorer for that.