To: Phil Agre <pagre@weber.ucsd.edu>From: bcox@gmu.edu (Brad Cox)Subject: Dead? Or never existed?Cc: Bcc: X-Attachments: 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 to the high-energy physics group at CERN in Geneva and to Nicklaus Wirth's group in Zurich this September. >  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 same 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 any vested interested 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. My viewpoint comes from experiencing the reality of why collaborative social orders, of which this company is an example, is so hard for intangible goods.Instead of starting by focusing broadly to notice the people in the frame, 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 in the sense science has 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. After all, 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 in electronic goods). 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 for a real science is non-unique pre-fabricated components for the scientist/engineer to study experimentally. 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. 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 all along. 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 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.Date: Wed, 28 Jun 1995 10:45:05 -0700From: Phil Agre <pagre@weber.ucsd.edu>To: bcox@gmu.eduSubject: Re:  Dead? Or never existed?Cc: pagre@weber.ucsd.eduStatus:   Thanks for the long commentary.  I'm sympathetic to a lot of it andpuzzled by other parts.I had actually intended to comment that CACM has, for some years actually,been far out in front of the field of computer science.  Partly that'sbecause ACM is run by liberals with social concerns and business connections.I'm also sympathetic to the idea that computer science has never been a "science".  I was going to include a crack about this in that article,but it seemed gratuitous.  After that, though, I think we head in different sorts of directions.For me, the idea that bit-based things are purely products of people'sheads is a *mistaken* idea; I want to push toward seeing computer stuffas heavily bound up and intermixed with the material and social stuffaround it.  You, I gather, want to accept the atoms/bits dichotomy andextend a certain intellectual framework for atoms (commoditization) tothe world of bits.  In each case, as you mention, what most needsexplaining is thne uniqueuess of every next software project -- softwareprojects are much much more unique than civil engineering  projects, forexample.  Though one analogy does occur to me: a giant problem withenvironmental regulation (whether market-based or centrally administered,doesn't matter) is that it requires so much unique science: asking whether*this* gloop in *this* pit can tricking through *those* rocks to *that*aquifer. [that's trickle not tricking]  But of course it's expensive anddifficult to do all that site-specific science, and institutionalpathologies (conflicts of interest, etc) quickly get going.Anyway, I'll look forward to your book.PhilTo: Phil Agre <pagre@weber.ucsd.edu>From: bcox@gmu.edu (Brad Cox)Subject: Re:  Dead? Or never existed?Cc: Bcc: X-Attachments: >Thanks for the long commentary.  I'm sympathetic to a lot of it and>puzzled by other parts.>I had actually intended to comment that CACM has, for some years actually,>been far out in front of the field of computer science.  Partly that's>because ACM is run by liberals with social concerns and business connections.This may be a matter of taste. But just FYI I try really hard to avoid framing this issue in terms of liberal vs conservative rhetoric. That immediately draws the discussion into a religious frame of reference that tends to generate more heat than light. The point of my response was that there's light to be shed at the origin of the differences; namely how differences in ownership between bits vs atoms influences large scale human, i.e. social, behavior.>In each case, as you mention, what most needs>explaining is thne uniqueuess of every next software project -- software>projects are much much more unique than civil engineering  projects, for>example.  Though one analogy does occur to me: a giant problem with>environmental regulation (whether market-based or centrally administered,>doesn't matter) is that it requires so much unique science: asking whether>*this* gloop in *this* pit can tricking through *those* rocks to *that*>aquifer. [that's trickle not tricking] My point was that even environmental regulation can very much rely on uniqueness. They can count on similarities between goop, similarities between rock, similarities between acquifers. They don't need to explain *this* goop by reinventing every lower level down to bozons and photons.But in computer "science", the only commonality occurs at the level of the bit. All higher levels are unique.The reason I keep pointing to commerce is not from some kind of conservative zeal. Its because we'll *never* have a common understanding for those substrate levels (bozons -> matter in general -> rocks in general -> this *particular* rock) until we create a social order that can agree on what those lower levels should be, incentivize people and institutions to build them, and devote entire lives and fortunes to extending and maintaining them.Bits are *not* found in nature. They originate *entirely* from individuals, who're of course bound up in a social context as you rightly point out.Date: Wed, 28 Jun 1995 12:09:03 -0700From: Phil Agre <pagre@weber.ucsd.edu>To: bcox@gmu.eduSubject: Re:  Dead? Or never existed?Status:   But the various layers of computer systems really are pretty stable.They're having big, big problems with software modularity and objectreuse, but I'm not convinced that that's an institutional failure.I think it's because computers, if they're really designed in a responsive way, are so mixed up with their specific surroundingsthat the surroundings influence every last part of the machine.Of course you can't build everything as a totally unique one-shotdeal from the ground up, but there's a pressure in that directionthat comes from reality and not from arbitrariness or lack ofinstitutions or markets etc.PhilTo: Phil Agre <pagre@weber.ucsd.edu>From: bcox@gmu.edu (Brad Cox)Subject: Re:  Dead? Or never existed?Cc: Bcc: X-Attachments: >But the various layers of computer systems really are pretty stable.>They're having big, big problems with software modularity and object>reuse, but I'm not convinced that that's an institutional failure.>I think it's because computers, if they're really designed in a >responsive way, are so mixed up with their specific surroundings>that the surroundings influence every last part of the machine.>Of course you can't build everything as a totally unique one-shot>deal from the ground up, but there's a pressure in that direction>that comes from reality and not from arbitrariness or lack of>institutions or markets etc.You're right that the *demand* for interchangeability is high. But my points were with respect to the *supply*. The big problems we experienced at Stepstone were *not* with modularity or reuse. Customers reused our products with enthusiasm, right across diverse domains, from insurance to banking to software engineering. Our problem was maintaining the *supply*; i.e. extracting enough revenue to support the costs of designing, and testing and marketing and advertising and ...Don't interpret this as disagreeing, nor please, as sign of conservative zeal. We're exploring the same cyclic relationship between CS -> society -> markets -> bits -> CS -> society -> etc, only moving in opposite directions. I responded because I think we'll heading towards a meeting on the other side of this cycle. I do feel a sense of urgency about getting this ownership issue onto the table, because actionable consequences only emerge when the owenership probleem is articulated and widely recognized. Fred Brooks list of software's essential differences didn't even mention ownership as an issue with bits. Nor did your list, nor is it recognized anywhere else inside of the established CS culture. This is precisely why I keep belaboring what, to me, is an utterly obvious point not worthy of dispute. Forget the primitive belief-systems of the indigeneous nerd culture. We're all explorers, not settlers, and we don't think much of commerce by our very nature. But we're heading into a confrontation with those who do, and history is eloquent regarding the outcome of conflicts between cultures bound only by short-range face to face forces (tribe, company, family) and those bound by the long-range forces of commerce.Ask how ordinary hard-working settlers will make an honest living on the electronic frontier. Answer this question robustly and you'll switch on the long range social binding forces we spoke of earlier, which are the only way I can think of to tame the electronic frontier just as they tamed others in the past.Date: Wed, 28 Jun 1995 14:26:16 -0700From: Phil Agre <pagre@weber.ucsd.edu>To: bcox@gmu.eduSubject: Re:  Dead? Or never existed?Status:   Okay, let me try to explain your point back to you.I'll use an analogy.In the old days, in Shakespeare's time, when you bought a book what youbought was the physical object.  And then you could do whatever you wantedwith it.  No concept of intellectual property, so making copies was noproblem.  Today when you buy a book you buy a much more complicated bundleof rights.  Your complaint is that when someone buys a software moduletoday, it's like buying a book in Shakespeare's time, with the result thatsuppliers cannot construct a product that has the properties they need toget reimbursed for their work.  So it follows, you argue, that we need alegal concept for software modules that's like intellectual property forbooks.  Actually, the precedent you're after is more like sound recordings,or songs, where some money gets owed through ASCAP every time you play it.Then the software company starts selling -- more like, giving away -- aan object that has a complicated contractual arrangement and a simplecomputer program around it -- the automated ASCAP that charges two centsevery time you use it.  That way, if someone reuses your module for twentydifferent purposes, you get paid twenty times, or every time the twentyprograms run.Is that right?PhilTo: Phil Agre <pagre@weber.ucsd.edu>From: bcox@gmu.edu (Brad Cox)Subject: Re:  Dead? Or never existed?Cc: Bcc: X-Attachments: >Okay, let me try to explain your point back to you.>I'll use an analogy.>In the old days, in Shakespeare's time, when you bought a book what you>bought was the physical object.  And then you could do whatever you wanted>with it.  No concept of intellectual property, so making copies was no>problem.  Today when you buy a book you buy a much more complicated bundle>of rights.  Your complaint is that when someone buys a software module>today, it's like buying a book in Shakespeare's time, with the result that>suppliers cannot construct a product that has the properties they need to>get reimbursed for their work.  I don't know Shakespeare's history very well, but I'm inferring IP breakdowns proliferated that eventually culminated in today's IP laws.>So it follows, you argue, that we need a>legal concept for software modules that's like intellectual property for>books.  Yes. With one crucial difference. Not just based on a legal concept, but on a technical enforcement mechanism (a meter; detailed in my web pages). With a legal system and market-based social order based around that, just as a legal system and social order is based around conservation of mass.Actually, the precedent you're after is more like sound recordings,>or songs, where some money gets owed through ASCAP every time you play it.Absolutely. In fact I started from ASCAP. They've been in our fix for nearly a centurn and worked their way out of it by deploying a legal concept as distinct from a technical one. They had not other choice than using a legal solution based on lots of lawyers. We've much better choices (re avoidance of lawyers) since our grammaphones are computers and telecom links.>Then the software company starts selling -- more like, giving away -- a>an object that has a complicated contractual arrangement and a simple>computer program around it -- the automated ASCAP that charges two cents>every time you use it.  Yes, except pricing isn't embodied/hardwired at the lowest level of the system. That's handled at a higher level so that pricing can respond to market forces.>That way, if someone reuses your module for twenty>different purposes, you get paid twenty times, or every time the twenty>programs run.>>Is that right?Bingo. Just as the farmer and the miller get paid every time the baker sells bread.Date: Wed, 28 Jun 1995 15:48:14 -0700From: Phil Agre <pagre@weber.ucsd.edu>To: bcox@gmu.eduSubject: Re:  Dead? Or never existed?Status:   There's something I don't get.  Let's say you sell fifteen modules withmeters in them.  And let's say that the specs for those modules arepublished (that would seem pretty necessary if you want a large market).You go to all the trouble to pioneer that market categorty, and you sellyour modules to a zillion people.  The next day, someone else writesmodules that follow the same spec and prices them lower.  They can dothat because they didn't have all the start-up costs that you did.Even worse, let's say that IBM doesn't like you, so they pay someoneto write freeware versions of the same modules.  Wham - you're out ofbusiness in five minutes.PhilTo: Phil Agre <pagre@weber.ucsd.edu>From: bcox@gmu.edu (Brad Cox)Subject: Re:  Dead? Or never existed?Cc: Bcc: X-Attachments: >There's something I don't get.  Let's say you sell fifteen modules with>meters in them.  And let's say that the specs for those modules are>published (that would seem pretty necessary if you want a large market).>You go to all the trouble to pioneer that market categorty, and you sell>your modules to a zillion people.  The next day, someone else writes>modules that follow the same spec and prices them lower.  They can do>that because they didn't have all the start-up costs that you did.>Even worse, let's say that IBM doesn't like you, so they pay someone>to write freeware versions of the same modules.  Wham - you're out of>business in five minutes.If competitors can not just implement, but test, document, market and advertise, a competing implementation of exactly the same spec in five minutes (while staying legal with respect to copyright laws already on the books), I fully deserve to go out of business for that product.Contrast Free Software Foundation with Microsoft and you've an excellent model of exactly this situation. Stallman has shown himself capable of building anything he sets his mind to. But Microsoft rolls right along, certainly not from technical ability, but from doing a damned good job on those boring bits that programmers never get around to. Like testing, documentation, marketing and so forth.I'm not trying to displace existing IP law, nor even pay-to-own distribution channels. I'm trying to deploy a snergistic alternative that addresses breakdowns endemic to existing models.
