Response to "Computer Science is Dead"

by Brad Cox

To: oscar@iam.unibe.ch (Oscar Nierstrasz), Laurent Dami , Matthias Ulrich Neeracher 
From: bcox@gmu.edu (Brad Cox)
Subject: Response to Computer Science is Dead
Cc: guerraoui@di.epfl.ch, Phil Agre 
Bcc: 
X-Attachments: 

I've enclosed my response to an article by Phil Agre that might be an interesting topic for one or more stops on this visit. I'll enclose his original article in subsequent mail.

Brad

Phil: your article ties in with the brief discussion we had earlier so I thought I'd elaborate a response. This is actually quite timely. I've just been invited to argue this case in September to the high-energy physics group at CERN and to Nicklaus Wirth's group in Zurich in connection with an OO conference in Lausanne.

> Computer science is dead.

First, using your definition for 'computer science', which is the definition used throughout that field, I agree with every word. Remember, I've made the same transition you did, from techno-centric (OO programming language designer) to human-centric (organizational learning). My own transition was triggered by the conviction that what's broken here is not technology but organizations.

However I've come at this issue from a different angle that leads to actionable, albeit hard to implement, conclusions. My viewpoint is not someone with a vested interest in computer science. My training was in quantum physics and neurophysiology, not CS. I spent my carrer as a practitioner; even built a company to buy and sell small granularity software components for its living. It comes from experiencing first hand why collaborative social orders, such as this company, is so hard for intangible goods.

Instead of starting by broadening the focus to include people in the frame from the outset, I started by narrowing the focus to consider the differences in the fundamental particles that make up software vs tangible goods, i.e. bits vs atoms. Then I reason outward from this difference to how it affects people's behavior.

My comments come from applying the same definition for science that science has outside of computer science. Consider the failures of the baggage handling systems at Denver International Airport. The builders of the tangible components of this system, the baggage handling conveyor belts, airplanes and runways, the practitioners of physical science and engineering, accomplished their job in a timely cost-effective manner. The builders of the intangible components, the practitioners of computer "science" and software "engineering", did not.

Using the definition of computer science of this juxtaposition, the reason for the software crisis becomes clear. To wit, there never *has* been computer science, certainly not in the sense science holds in sucessful domains. Everything the computer scientist encounters is unique and unfamiliar, having been fabricated from first principles by some nerd as distinct from assembled from pre-existing components by some engineer. Computer science deals entirely with stuff (goods made of bits) that do not originate in nature, but come entirely from the creative urges of people.

Thus computer science isn't dead. Computer science has never existed. Not in the sense of a mature science, like post-Copernican astronomy, founded on experimental observation of pre-existing components (from nature or a market). Rather its name has been claimed by a pre-scientific pretender in exactly the sense that Ptolemaic pre-science predated Copernican science and quackery predated experimental medicine.

Thomas Kuhn covers the situation nicely. First there's "normal science" (computer "science" for the last half-century) whose failures (Denver Airport) leads to recognition of a "crisis" (software crisis) which ultimately triggers a "revolution" to an entirely new paradigm.

The core concept of this new paradigm I'm trying to bring about in my new book is that the virus that's causing the disease thats causing the symptoms we call the software crisis (and equally, and for the same reasons, the quality differences between internet and paper publishing) is that we're dealing with a substance that is made of bits instead of atoms, that originates entirely from people, not nature.

But since this substance doesn't abide by conservation of mass laws, the commercial mechanisms that incentivize people to work together for building pencils or baggage handling conveyor belts, entirely break down. Without commerce, advanced social orders can't evolve, so we're stuck in the primitive state where every nerd fabricates everything from first principles. Thus everything is unique, so there is nothing above the level of the bit that is consistent to warrant experimental study. This is why there's no such thing as computer science.

In other words, computer science is not an advanced science like post-Copernican astronomy. Its a pre-scientific pretender, like Ptolemaic astronomy or the witch-doctor's pig bladder rattle. The prerequisite to building a real science is to get to the point where there are non-unique pre-fabricated components for the scientist/engineer to study as Copernicus studied the heavens. This depends on development of a commercial incentive system to incentivize people to supply and maintain them, since people are the sole source of for such components, not nature.

My Wired article on superdistribution shows how this might be done in time. Also my new book.

>  I have a doctoral degree in computer science, but I now teach
>  in a social sciences department.  Though I would like to think
>  I'm starting a trend, the evidence is not strong.  Even so, the
I made the same transition so the trend includes at least two. Unclear who started it tho. ;-)
>  evidence *is* strong that the academic discipline of computer
>  science is in trouble.  I was first alerted to this fact a few
>  years ago when my officemate from graduate school quit a top-rank
>  computer science faculty position to work for Microsoft because
>  he wanted to be where the action is.  He's right: the agenda for
>  computer science research has shifted from academia to industry.
This isn't news. The focus has been in industry since the beginning. Xerox Parc, Bell Labs, IBM Watson Labs, Stepstone (my company), etc. Academia is notoriously slow getting the news.
>  But the problem runs deeper than that, and I think that computer
>  science needs to fundamentally reinvent itself to avoid shrinking
>  into irrelevance.  
It needs to be invented in the first place, not reinvented, and it has been irrelevant from the very beginning, in the same sense that alchemy was irrelevant to building a science of chemistry.
>  Here's the problem: we are told that computer
>  technology is being continually revolutionized, but it doesn't
>  really work that way.  Instead, computer science has historically
>  laid down one layer after another of settled art, little of which
>  must be greatly revised later on.  Lots of people got tenure for
>  designing parsers, for example, and now we know how to do that.
>  An earthquake did occur at the fault line between processor
>  design and compiler design in the 1980's, but that has settled
>  down.  Programming language design was a difficult matter once,
>  but now it isn't, and the market has decided that it's satisfied
>  with C and C++ anyway.  There's no accounting for taste, but
>  there it is.  (For a more general analysis see Andrew Friedman's
>  brilliant historical book "Computer Systems Development", which
>  I recommended in TNO 1(9).  See also Peter Denning's recent
>  articles about the future of the engineering field generally.)
You'll like the latest ACM issue. To my knowledge, this is quite literally the first time that mention of *people* has been allowed in a computer science publication.
>  So what happens next?  The technical methods of computing are
>  like a lake that is silting: once somebody finally figures out
>  how to make distributed operating systems, it'll be all over.
>  The most likely exception is in the theory of computation -- the
>  mathematical foundations of the field, where really interesting
>  research on "interactive proof" methods will probably bring
>  us a lot more useful stuff from the same place that public-key
>  cryptography came from.  Plenty of other computer research
>  will remain to be done, of course, but the emphasis may shift
>  elsewhere.  No longer will the world need hordes of computer
>  scientists who know a little about medicine or engineering or
>  business; instead, it will need hordes of doctors and engineers
>  and business people who know a little about computers and a great
>  deal about a particular world where computers are used.
The electronic frontier metaphor is fruitful here. The indigeneous nerd tribe, and its pre-scientific witch-doctor sciences, is coming into conflict with hordes of property-conscious hard-working common-sense settlers, with entirely different scientific and engineering standards.
>  The field of computer science can save itself, though, if it
>  gets a new attitude.  It has to stop looking at the whole world
Emphatically disagree. You can't save something that never existed. And "saving itself" is entirely the wrong theme. It needs to destroy its old self-centric paradigm and erect an entirely new one, ala Kuhn.
>as a bunch of technology-driven "application domains" and instead
>  develop a spirit of partnership with people who know substantive
>  things -- things about organizations, about managing information,
>  about sickness and health, about democracy.  Although numerous
See ACM!
>  computer people are sympathetic to such an approach, many of the
>  basic concepts and methods of computer science make it difficult
>  to put into practice.  One obstacle is the field's understanding
>  of formalization: to implement something on a computer, you have
>  to translate it into mathematical terms that can be coded.  But
>  the resulting formalisms rarely correspond to the way that users
>  think about things.  Furthermore, computer scientists know almost
>  nothing about how computer use fits into the lives and activity
>  systems of the people who use them.  Instead, generations of
>  systems analysts have used models that derive from industrial
>  automation -- rather than from the intention of providing support
>  for skilled people with complex lives.  The approach, whether
>  explicitly or implicitly, is not "we will work with you and help
>  you build tools" but "we will represent you and replace you".
>
>  But an attitude of symmetrical partnership, necessary as it is,
>  will not suffice in itself.  We also need what I call "bridging
>  concepts" -- that is, medium-sized concepts that make it easy to
>  move back and forth between serious ideas about technology and
>  serious ideas about the social worlds where technology is used.
>  Listening to the speakers at the conference on Society and the
>  Future of Computing that we recently organized in Colorado, and
>  reflecting on other valuable things I've read lately, I managed
>  to articulate ten candidates for these bridging concepts, which
>  I'll present here in the form of imperatives for the field of
>  computer science:

Please reflect on what I said earlier about the virus thats causing the disease in connection with the following list. You did mention electronic commerce once. However that term is generally understood as using electronic nets to buy/sell tangible things. If this was your meaning, your list failed to even mention the core of the problem as I've laid it out, our present inability to buy/sell/own goods made of bits.

>    (7) As distributed information technology is used to reduce
>    transactions and coordination costs, it must not undermine
>    workers and their families.
>
>  Electronic commerce promises to interconnect buyers' and sellers'
>  computers, thereby removing a lot of useless paperwork from the
>  world's business operations.  As Rolf Wigand points out, one 

The "world business" is buying/selling tangible stuff. The core of our disease is the absence of advanced social orders for electronic stuff, which is in turn triggered by inability to define buy/sell/own for goods made of bits.

THIS INABILITY IS FIXABLE, NOT INEVITABLE. See my web for details of how.


HTML markup by Brad Cox (bcox@gmu.edu) http://virtualschool.edu/mon