When I was going to graduate school at MIT, most of the professors around me were embarrassed to be called computer scientists. Their complaint was this: why should there be a separate field of computer science, any more than there is a separate field of refrigerator science? In their view, computers were just complex physical artifacts like any others. Following Simon (1969), they argued that design principles such as modularity are not specific to software, but are properties of the universe in general. The structures that evolve are modular because modular structures are more stable than others. Computers were simply a special case of these universal laws.
This perspective on computer science differs from the view in most textbooks. In the textbooks, a computer is a device that can compute any function that any particular Turing machine can compute. The professors at MIT would have none of this. Of course the mathematics of computability was interesting, but it reflected only one corner of a much larger space of inquiry. What they found most interesting was not the mapping from single inputs to single outputs but the relationship between the structure of a computational device and the organization of the computational process that arose when the device was set running.
The physical realization of computational processes was, however, only half the story. The other half lay in the analysis of problem domains. This is a profound aspect of computer work – and all engineering work – that is almost invisible to outsiders. Computers are general-purpose machines in that they can be applied to problems in any sphere. A system designer might work on an accounting application in the morning and an astronomical simulation in the afternoon. As the problems in these domains are translated into computational terms, certain patterns recur, and engineers abstract these patterns into layers of settled technique.
For the professors at MIT, then, engineering consists of a dialectical engagement between two activities: analyzing the ontology of a domain and realizing that domain's decision-making processes in the physical world. ("Realize" here means "make physically real" rather than "mentally understand".) Ideas about computational structure exist for the purpose of translating back and forth between these two aspects of the engineer's work. This is a profound conception of engineering. And nothing about it is specific to computers.
This story is appealing because it dissolves the concept of the computer, which normally connotes a sharp break with the past, into the great historical tradition of engineering design. It is certainly an improvement on the standard story based on computability theory. Still, I believe that both stories overlook one area in which design is different for computers than for anything else. That area pertains to language.
Computers, whatever their other virtues, at least give people something to talk about. Your friends in China may not be having the same weather, but they are having the same virus outbreaks. Computers not only transcend geographical boundaries; they also bridge disciplines. Physicists and literary critics may not be able to discuss their research, but they can discuss their computers. Soldiers and media artists struggle with the same software. This kind of universality arises precisely from the analytical phase of the design process. Computers, in this sense, provide a "trading zone" (Galison 1997) for discussions across different disciplinary languages. Computers are a shared layer in a wide variety of activities, and many activities have been reconstructed on top of the platform that computer standards provide. In these ways and more, computers are densely bound up with language (Hirschheim, Klein, and Lyytinen 1996; Swanson and Ramiller 1997; Theoharakis and Wong 2002; Weill and Broadbent 1998).
Saying this, however, does not identify what is distinctive about computers. The answer is: computers are distinctive in their relation to discourse. Discourses about the world – that is, about people and their lives, the natural environment, business processes, social relationships, and so on – are inscribed into the workings of computers. It does not follow, of course, that computers then turn around and reinscribe those discourses into the activities of the people who use them. Every social setting takes hold of its computers in its own distinctive way (Orlikowski 2000). But neither is a computer a blank slate. Every system affords a certain range of interpretations, and that range is determined by the discourses that have been inscribed into it. To understand what is distinctive about the inscription of discourses into computers, as opposed to their inscription into other sorts of artifacts, it helps to distinguish among three progressively more specific meanings of the idea of inscription.
Agre continues to kick against the idea of seeing CyberSpace as a separate independent realm, but the denial seems almost as blinkered as naive TechnologicalDeterminism.
Surely while TechnologicalDeterminism is over-simplistic, it must be admitted that something is going on, and you might want to distinguish both qualitatively and quantitatively the effect due to technology compared with other social causes or historical moments. (I think one of BradDeLongsFiveQuestions tackles the quantitative effect of the computer revolution compared to the British industrial revolution.)
The point is that overgeneralization is a bad thing, but computers are offering a new set of commonalities (as Agre sees). So it's not just a question of analysing by traditional institutions, these new commonalities due to the technology, can also be usefully be abstracted and considered independently of the earlier institutions they grow out of.
Knee-jerk anti-tech determinism can be as blinkered in it's failure to notice these, as CalifornianDreaming is naive about society.
Well, my thoughts on this were quite simple: the ubiquitousness of the use of maths within other disciplines does not stop it from being useful to have a separate discipline of maths. Indeed we have pure maths and applied maths - both providing useful general understanding into maths which can later be applied in any particular discipline.
Similarly we could / should have 'pure computational theory' and 'applied computation' to study computation in general - and then of course, in a modern world all disciplines will likely use computation as well as maths to help master their domain.
So, my only quibble with the discipline of computer science is the use of the term 'science' ;)
Agree on the maths thing, though I think there is also a science. In HackersAndPainters, PaulGraham thinks there are 3 disciplines : maths, hacking and what he calls "natural history" of computer systems. Which can be a science : one of TheSciencesOfTheArtifical (like ArtificialIntelligence and ArtificialLife) (Although obviously NaturalHistory is sometimes history (see DemarcatingScience).
Who was it who said something along the lines of "Anything that has to call itself a science isn't one"? Google has failed me - think it might have been a Turing award winner.