<<

What Makes the History of Hard

Michael . Mahoney Princeton University

History of commitments constrains choice. Narrow incentives and opportunities motivate choice. —Rob Kling and Walt Scacchi1

We never have a clean slate. Whatever new we do must make it possible for people to make a transition from old tools and ideas to new. —Bjarne Stroustrup2

Creating software for work in the world has meant translating into computational models the knowledge and practices of the people who have been doing that work without . What people know and do reflects their particular historical experience, which also shapes decisions about what can be automated and how. Software thus involves many histories and a variety of sources to be read in new ways.

This article originally appeared in L. Bo¨szo¨rmenyi, most current, is in that sense ‘‘legacy’’ soft- ed., MEDICHI 2007—Methodic and Didactic ware. That is what makes the history of Challenges of the History of Informatics, software hard, and it is why the history of Austrian Society (OCG), Klagenfurt, software matters to the current practitioner. Austria, 178 pp. The Austrian Computer Society (OCG) has kindly granted permission for an edited Decentering the machine version to be published by the Annals.3 Until recently, the has focused largely on the machines them- The is the history of how selves, tracing the path by which the electronic various communities of practitioners have put digital computer emerged from a long history their portion of the world into the computer. of efforts to mechanize calculation and then That has meant translating their experience evolved into a variety of increasingly complex and understanding of the world into compu- forms in response to the possibilities opened tational models, which in turn has meant by the transistor, the , and creating new ways of thinking about the world magnetic and optical media of ever greater computationally and devising new tools for capacity. This focus has led to a familiar expressing that thinking in the form of narrative (see Figure 1), which begins with working programs. It has also meant deciding, the abacus and then follows a by now familiar in each realm of practice, which aspects of sequence of devices—mechanical and electro- experience can be computed and which mechanical, analog and digital—all converg- cannot, and establishing a balance between ing on ENIAC, or more broadly on the several them. Thus, the models and tools that consti- electronic devices of a similar nature con- tute software reflect the histories of the ceived and built at the time. From ENIAC the communities that created them and cannot story moves to the EDVAC design and to its be understood without knowledge of those early realizations.4 The mainframe era then histories, which extend beyond computers begins, followed by the short reign of the and computing to encompass the full range and then by the current age of of human activities. All software, even the the in ever more powerful

8 IEEE Annals of the History of Computing Published by the IEEE Computer Society 1058-6180/08/$25.00 G 2008 IEEE form. The sequence is commonly treated as a natural evolution of forms. As each new generation appears, the old disappears from the story, as if mainframes went the way of the dinosaur when appeared, and they in turn followed the mainframe into obsolescence as the microcomputer opened a new era of personal computing. It would be hard to know from most histories of this sort that IBM still derives a major share of its income from mainframe computers, especially as accounts of the Internet focus on the PC clients to the exclusion of the mainframe servers. Similarly, emphasis on the PC has hidden the ways in which with their growing power they have incorporated minicomputer architectures and Figure 1. The convergent account. systems and, with them, their mainframe legacy. Also lost from view with a focus on misleading in at least two ways. First, it makes the visible PC is embedded computing, which the application of the computer in a wide accounts for the vast majority of the micro- range of areas unproblematic. If people have processors at work today. been waiting for the computer to appear as the To the extent that the standard narrative desired solution to their problems, it is not covers software, the story follows the genera- surprising that they then make use of it when tions of machines, with an emphasis on systems software, beginning with program- it appears, or indeed that they know how to ming languages and touching—in most cases, make use of it. By the same token, it then just touching—on operating systems, at least becomes difficult to explain, for example, why up to the appearance of time-sharing. With a IBM would have hesitated to enter the com- nod toward in the 1970s, the story moves puter market in the late 1940s, or why the quickly to personal computing software and National Institutes of Health had to launch a program to persuade biologists that computers the story of , seldom probing deep 5 enough to reveal the roots of that software in could be of use to them. Second, the the earlier period. One may learn a bit about convergent account sets up a narrative of the beginnings of the data processing industry, revolutionary impact, in which the computer since it is synonymous with IBM, but there is is brought to bear on one area after another, in little if anything about the building of the first each case with radically transformative effect. large systems in business, industry, and gov- There is a lot of ‘‘revolution talk’’ in ernment. For this story, one must delve into computing. It dates back at least to 1962 with the specialist literature, much of it still the publication of Edmund . Berkeley’s The dominated by ‘‘pioneer’’ accounts. The soft- Computer Revolution, in which the author made ware of the embedded systems underlying the the computer part of the ‘‘second industrial world’s technical, industrial, and financial revolution’’ and fretted over what was to infrastructure remains, of course, as invisible become of humans in an age of Giant Brains, to the historical record as do the devices on or Machines That Think (the title of his 1949 which it runs. book). One can hardly pick up a journal in Indeed, with respect to applications soft- computing today without encountering some ware, the standard narrative converges in sort of revolution in the making, usually another way. Just as it places all earlier proclaimed by someone with something to calculating devices on one or more lines sell. Critical readers recognize most of it as leading toward the electronic digital comput- hype based on future promise rather than er, as if they were somehow all headed in its present performance, and those with long direction, so too it pulls together the various memories recall the many revolutions that contexts in which the devices were built, as if have been canceled or postponed owing to they constituted a growing demand for the technical difficulties. invention of the computer and as if its Historians have grown wary of the notion appearance was a response to that demand. of revolutions, especially those that purport to That way of telling the story is historically erase the past or render it obsolete, as if

July–September 2008 9 What Makes the History of Software Hard

societies could start from scratch. There have been episodes in which societies changed The history of comput- radically over a relatively short period, and ‘‘revolution’’ seems an appropriate designa- ing, especially of soft- tion for the process, for example, the Industrial Revolution in England in the late 18th and ware, should strive to early 19th centuries. But even there one must be careful, because revolution talk tends to preserve human agency hide the continuities that tie the present to the past, or rather the continuities through which by structuring its the past informs the present. Nothing is in fact unprecedented, if only because we use prece- narratives around people dents to recognize, accommodate, and shape the new. In our personal encounters with new facing choices and situations, we turn to our memory for similar situations as a guide to how to respond. making decisions. History is our community memory, and it is as much embedded in our lives as our personal memories. Through language, customs, edu- In the impact model, ‘‘the computer’’ cation, and institutions, it informs the way we happens to people, who are put in the position think and the way we do things. It shapes our of responding to it. But computers do nothing expectations and our actions; it is built into without programs, and programs do not just our practices.6 As a senior colleague of mine happen by themselves. People design them for once remarked to a group of scientists, the their own purposes. Hence, the history of question is not whether one does history but computing, especially of software, should whether one does it well. For example, the strive to preserve human agency by structuring quest for a discipline of software its narratives around people facing choices and began with a search for historical forebears, making decisions instead of around imperson- and the subsequent literature is filled with al forces pushing people in a predetermined appeals to the history of technology, some of direction. Both the choices and the decisions them well founded, others not.7 are constrained by the limits and possibilities of the state of the art at the time, and the state Histories of computing of the art embodies its history to that point. The main problem with the revolutionary Much more than the art of computing is or impact model is that it attributes agency to involved. the computer as if it had a nature of its own When, then, the first electronic digital that it could impose on subjects or activities to computers appeared, they had no inherent which it is applied, that is, as if the computer form but rather the potential to assume an in and of itself had the power to transform almost infinite variety of forms. Moreover, those activities. We speak of ‘‘the impact of the there was nothing in the conceptual structure computer on X,’’ but to speak of ‘‘the of the device that dictated how it might be computer’’ as if it were one thing is mislead- programmed to take on those forms. What it ing. There is no one computer, but only would become depended on what people computers. Even in the most general form of wanted to make it. The first machines contin- a finite , the computer is a ued to serve the purposes for which ENIAC had schema rather than a single device. What it been created, namely numerical calculation. can do depends on the finite state table and on As the first general-purpose machines became the contents of the tape. In its most general, or commercially available in the early 1950s, they universal, form it can do anything for which attracted the interest of a variety of commu- we can provide suitable instructions, that is, nities of practitioners beyond science and the table for a specific Turing machine. That is engineering. These different groups saw differ- the source of its power: it is a protean machine. ent possibilities in the computer, and they had However, precisely because it can do anything, different experiences as they sought to realize it can do nothing in and of itself. It does things those possibilities, often translating those only when we provide the programs that cause experiences into demands on the computing the universal machine to emulate particular community, which itself was only taking machines of our design. shape at the time.

10 IEEE Annals of the History of Computing It is important to emphasize, as the diagram in Figure 2 does, that what I would like to call the ‘‘communities of computing’’ had their own histories, that is, their own ways of doing things based on past experience. Only one community’s history coincided with that of the computer itself, namely that of the ‘‘number crunchers.’’8 The others, including the nonmathematical sciences, had been getting along without computers (and not missing them), creating devices specifically for their needs as in the case of the tabulator. The chart shows some of the main groups. Let me say a word about them. What we now call ‘‘data processing’’ has a continuous history as old as writing itself. Some of the oldest documents are inventories and financial records kept by professional Figure 2. Communities of computing. scribes. As James Cortada and others have recently reminded us, IBM was in the business century and reached an advanced state in the of data processing long before the appearance electrical distribution systems built in the US of the computer, as was Remington-Rand, and and Europe at the turn of the 20th.12 electronic data processing reflects that long Systems of military command and control, prior experience.9 including the logistics of supply, are as old as In one sense, management is as old as warfare and reached new levels of sophistica- record-keeping. But, if one focuses on organi- tion in the 19th and early 20th centuries. zation for the purposes of gathering and Indeed, in light of recent literature on the disseminating information, then the history subject, we need a fuller and more subtle of management in the modern age is rooted in understanding than we have of the history of the growth of bureaucracies and the transfer of their methods to commerce and industry. In the community of practitioners in the mili- The Government Machine, Jon Agar has recently tary, to compensate for the visions of the traced the development of Britain’s bureaucra- future designed for it by researchers outside it. cy, conceived from the late 18th century as a An important spin-off of this line of research machine, and has argued that the very notion was the field of human–computer interaction, of a general-purpose computer derives from aimed at the augmentation of human skills by that model rather than the other way the computer. As David Mindell has shown around.10 recently in Between Human and Machines,that field too had a history of its own before the The organization of production also has a 13 long history but took a decisive turn during computer. the Industrial Revolution. One can watch the New fields emerged alongside those that subject taking new form in the papers of James predated the computer. Although there was at Watt and Matthew Boulton, who designed first some disagreement about whether com- factoriesaswellasbuildingsteamenginesfor puters were sufficiently different from early them, and in ’s Economy of calculating machines to constitute a subject of Machinery and Manufactures (1833). It reached a study in themselves, the work of John von mature form with the work of Frederick W. Neumann and pointed to the Taylor and his colleagues, in particular the theoretical potential of the device. Subse- time-and-motion studies of Frank Gilbreth, quently, the need to develop systems both to and took its distinctively 20th-century shape make the computer easier to use and to keep it in the factories of Henry Ford, who was running efficiently opened a range of theoret- pursuing automation long before the term ical and technical issues that prompted the was coined in the early years of computing.11 emergence of the new subject of computer The organization of large systems and net- science or informatics, as it is known in the works, with its ties both to management and non-Anglophonic world.14 the organization of production, has roots Until recently, the history of computing in going back at least to the appearance of the these fields has been written in terms of the railroad, telegraph, and telephone in the 19th machine and its impact (revolutionary, of

July–September 2008 11 What Makes the History of Software Hard

scarcely scratched the surface of applications Few substantive analyses software, the software that actually gets things done outside the world of the computer itself. of software failures can In the second case, we have studies of the software industry, both commercial and per- be found, even in the sonal; of programming as a labor process and nascent profession; or of software engineering and its origins in the (continuing) ‘‘software crisis.’’ These were the perspectives from classroom. Other which a conference at the Heinz Nixdorf Forum in 2000 attempted to map the history branches of engineering of software. In retrospect, what the conference missed was software as model, software as study their mistakes in experience, software as medium of thought and action, software as environment within order to learn from which people work and live. It did not consider the question of how we have put them. the world into computers, and thus how we have come to view the world through a computational lens.16

course) on them. The emphasis has lain on Worlds of software what the computer could do rather than on That process has not been easy or straight- how the computer was made to do it. Yet, as forward, as any programmer will testify. If it just noted, all these fields and others consisted appears so, it is because so far we have of established bodies of proven practice, concentrated on the success stories and told developed without reference to computing. It them in a way that masks the compromises was from the perspective of that practice that between what was intended and what could be people in those fields viewed the possibilities 15 realized. Programming is where enthusiasm offered by computers to enhance it. What meets reality. The enduring experience of the people did with computers reflected the communities of computing has been the huge histories of their own fields; computers had gap between what we can imagine computers no useful history of their own to contribute. doing and what we can actually make them Hence, once one moves beyond the hardware do. There have been (and continue to be) and systems software in its narrowest sense, massive failures in software development, computing becomes part of those histories, which have cost money, time, property, and and its history in turn reflects its encounter even lives. That is what gave rise in the late with them. Indeed, even systems software 1960s to the notion of a ‘‘software crisis’’ and derived in many respects from earlier, non- in the mid-1980s to the ACM Forum on computer models of corporate organization System Reliability and Risks to the Public, and management, as in the case of layered maintained since its inception by Peter G. operating systems arranged in a hierarchy of Neumann both online and in SIGSOFT’s authority and access or, for that matter, of the Software Engineering Notes.17 Except for Freder- design of Cobol as a language for business data ick P. Brooks’s famous Mythical Man-Month,we processing. In that sense, computing has not have few substantive analyses of such failures, one but many histories. That is one thing that even and especially in the software engineer- makes the history (or should I say histories?) of ing classroom, where we might expect to find software hard. It is not primarily about them. As software engineer/historian James computers. Tomayko has pointed out with a nod to Henry Perhaps for that reason, the history of Petroski, other branches of engineering study software has so far either remained close to their mistakes to learn from them.18 Software the machine or has stepped back altogether to will look more human when we take seriously view software in the large and as an object of the difficulties of designing and building it and commerce. In the former instance, we know a take critical account of some of its failures. great deal about the history of programming As already noted, responses to the ‘‘software languages and a bit about the history of crisis’’ included calls for a discipline of ‘‘soft- operating systems, databases, and other varie- ware engineering’’ that would, in the words of ties of systems software. But historians have a deliberately provocative definition, base

12 IEEE Annals of the History of Computing ‘‘software manufacture … on the types of theoretical foundations and practical disci- Studies showed that the plines that are traditional in the established branches of engineering.’’19 (That is, of course, bulk of software errors a historical program.) At first, practitioners sought a solution in the computer and looked occurred at the to the improvement of their tools and to more effective project management. A great deal of beginning of projects, effort went into developing high-level pro- gramming languages and diagnostic before programming for them. The languages were specifically designed to foster good programming practic- ever began. es (read: proper ways to think about program- ming). Subsequent research aimed at trans- forming and extending the languages into specification and design tools with similar The transformations themselves are strictly diagnostic capabilities. At the same time, syntactical, or structural. They may have a practitioners sought to bring the experience semantics in the sense that certain symbols or of industrial engineering to bear on software sequences of symbols are transformed in production, with an eye toward automating it certainways,buteventhatsemanticsis in the form of a ‘‘software factory,’’ a pro- syntactically defined. Any meaning the sym- gramming environment that would leave the bols may have is acquired and expressed at the programmer little choice but to do it right. interface between a computation and the Evident in the literature is the long history of world in which it is embedded. The symbols the factory predating the computer. and their combinations express representa- Better tools did improve the programming. tions of the world, which have meaning to But, as Brooks has since pointed out, that is not us, not to the computer. It is a matter of where the real problems have lain, or rather representations in and representations out. problems at that level were only ‘‘acciden- What characterizes the representations is that tal.’’20 Almost from the start, studies showed they are operative.21 Through the computer, that the bulk of the errors occurred at the we can manipulate them, and they in turn can beginning of projects, before programming trigger actions in the world. What we can make ever began (or should have begun). The errors computers do depends on how we can repre- were rooted in failures to understand what was sent in the symbols of computation portions of required, to specify completely and consis- the world of interest to us and how we can tently how the system was supposed to translate the resulting transformed representa- behave, to anticipate what could go wrong tion into desired actions. A Boeing 777 has a and how to respond, and so on. As many as variety of representations: its form, structure, two-thirds of the errors uncovered during flight dynamics, controls. They not only direct testing could be traced back to inadequate the design of the aircraft and the machining design; the longer they remained undetected, and assembly of its components, but they then the more costly and difficult they were to interactively direct the control surfaces of the correct. aircraft in flight. That is what I mean by Design is not primarily about computing as ‘‘operative representation.’’ commonly understood, that is, about comput- So putting a portion of the world into the ers and programming. It is about modeling the computer means designing an operative rep- world in the computer: translating a portion of resentation of that portion of the world that the world into terms a computer can ‘‘under- captures what we take to be its essential stand.’’ Here it may help to go back to the features. That has proved, as I say, no easy protean scheme to recall what computers do. task; on the contrary it has proved difficult, They take sequences, or strings, of symbols frustrating, and in some cases disastrous. It has and transform them into other strings. The most recently moved to a high-priority prob- symbols and the strings may have several lem at the US National Science Foundation, levels of structure, from bits to bytes to groups which has undertaken a program aimed at ofbytestogroupsofgroupsofbytes,andone exploring the ‘‘science of design.’’22 Where may think of the transformations as acting on that will go is anyone’s guess at the moment, particular levels. But in the end, computation and I’m a poor prognosticator. What is clear is is about rewriting strings of symbols. that historians of computing have inherited

July–September 2008 13 What Makes the History of Software Hard

the problems to which it is addressed. If we that VAX embodied flaws in DEC’s corporate want critical understanding of how various organization. The machine expressed that communities of computing have put their phenomenally successful company’s cautious, portion of the world into software, we must bureaucratic style. Was this true? West said it didn’t matter, it was a useful theory.24 uncover the operative representations they have designed and constructed, and that may Here we have an example for hardware of prove almost as difficult a task because of the Conway’s law, itself a suggestion to historians nature of the historical sources in which they of what might be found by close attention to are embedded and expressed. the artifacts of computing in genera1.25 Oper- ating systems surely offer another example, as Reading software as artifact do early database management systems (about What are the sources of the history of which we know so little). software, and how do we read them? For Programs are artifacts, and we must learn to perspective on the question, consider the read them as such. What makes it difficult is larger subject of history of technology. Many precisely that the representations are opera- years ago, when I started teaching the subject, tive. Ultimately, it is their behavior rather than I tried to follow my practice in history of their structure (or the fit between structure and science of assigning original sources, that is, behavior) that interests us. We do not use the writings of the scientists themselves. So I computers by reading programs; we interact looked for original sources of technology and with programs running on computers. The had trouble finding them, until it occurred to primary source for the historian of software is me that I was looking in the wrong place, in a the dynamic process, and, where it is still library and not in a museum—because the available, it requires special techniques of sources of technology are the artifacts them- analysis. It is a dynamic artifact, a running selves. As Derek J. de Solla Price so nicely put it, process, expressed in a static artifact, a pro- engineers and inventors ‘‘think with their gram, and the relation between the two is fingertips.’’ Henry Ford put it another way: indeterminate. Christopher Langton describes There is an immense amount to be learned the problem of their relationship: simply by tinkering with things. It is not possible to learn from books how everything is We need to separate the notion of a formal made—and a real mechanic ought to know specification of a machine—that is, a specifi- how nearly everything is made. Machines are cation of the logical structure of the ma- to a mechanic what books are to a writer. He chine—from the notion of a formal specifica- gets ideas from them, and if he has any brains tion of a machine’s behavior—that is, a he will apply those ideas.23 specification of the sequence of transitions that the machine will undergo. In general, we cannot derive behaviours from struc- What holds for mechanics holds too for ture, nor can we derive structure from behav- historians of technology. We must tinker with 26 iours. the things to discover the ideas that underlay and informed them. As historical artifact, software is most What would it mean to ‘‘read’’ an artifact of valuable in its dynamic form. The historian computing? It would look much like examples gains most from seeing how the software from other areas of the history of technology. worked and from working with it. But, We have a classic example in Tracy Kidder’s especially for early software, the dynamic Soul of a New Machine, the fascinating story of artifacts have in large part already been lost the designing of ’s first 32-bit to us. Even if we had the programs—and in minicomputer, the Nova. The head of the many cases we do not—we lack the platforms project, Tom West, had managed to get access on which they ran; we have neither the to one of DEC’s new VAX machines and to systems software nor the hardware for which pull the boards for close examination: it was written. We cannot experience the software as users experienced it and hence Looking into the VAX, West had imagined he analyze that experience critically. Even where saw a diagram of DEC’s corporate organiza- tion. He felt that the VAX was too complicat- we have emulators, they fall short in essential ed. He did not like, for instance, the system by ways. Although they convey some sense of which various parts of the machine commu- programming by executing the code, what nicated with each other; for his taste, there appears on the screen is merely a simulation of was too much protocol involved. He decided the physical device, omitting entirely the

14 IEEE Annals of the History of Computing spatial, temporal, and social experience of But at least we have the program texts. Or writing programs and having them punched do we? It is not clear, in part perhaps because up and run, or of interacting with the system for many of the communities of computing as a user.27 outside we have only begun Hence, we are left with the static artifact, to look. When government and industry went the program text, which may or may not looking in the late 1990s in anticipation of correspond to the running version, as people Y2K, the results were dismaying. Almost as discovered in many instances during the Y2K dismaying was learning from contributors to effort.Wehavesomepromisinghintsofhow the most recent History of Programming we might go about reading programs; Chapter Languages Conference (HOPL III) that docu- 1 of Gerald Weinberg’s The Psychology of mentation for languages created in the 1980s Computer Programming and Brian Kernighan’s and 1990s is incomplete. and P.J. Plauger’s Elements of Programming Style come first to mind.28 Alan Kay offered a Legacy software as history striking example in describing his first en- What makes the history of software hard, counter with object-oriented programming. It then, is to a large extent what makes software was his first day as a graduate student at the engineering hard. In Brooks’s terms, it is only University of Utah: accidentally about computers. Just as the design of software begins with an analysis of Head whirling, I found my desk. On it was a the activity to be automated, so too its history pile of tapes and listings, and a note: ‘‘This is begins with the history of the activity to the ALGOL for the 1108. It doesn’t work. understand how its practice was translated Please make it work.’’ The latest graduate into a computational model. The history does student gets the latest dirty task. not end with the translation, but rather is The documentation was incomprehensible. embodied in the model and hence in the Supposedly, this was the Case-Western Re- serve 1107 Algol—but it had been doctored to program that implements it. That is what gives make a language called Simula; the documen- ‘‘legacy software’’ a dual meaning. Legacy tation read like Norwegian transliterated into software is not just old code, but rather a English, which in fact was what it was. There continuing enactment, an operative represen- were uses of words like activity and process tation, of the domain knowledge and practice that didn’t seem to coincide with normal embodied in it. That may explain the difficul- English usage. ties software engineers have experienced in Finally, another graduate student and I upgrading and replacing older systems. unrolled the listing 80 feet down the hall Early in 2007, a senior member of the and crawled over it yelling discoveries to each community sent me other. The weirdest part was the storage allocator, which did not obey a stack disci- email expressing his concerns about the pline as was usual for Algol. A few days later, languages covered by the Third History of that provided the clue. What Simula was Programming Languages Conference (HOPL 30 allocating were structures very much like III) to take place in June. ‘‘When I compare instances of Sketchpad.29 the three conferences,’’ he wrote, ‘‘I see a movement from languages that received wide- Kay’sexperiencesuggestswhatfacesthe spread use to languages used mostly within the historian, and there is again some irony in it. It research community.’’ In addition to explain- has been the common lament of management ing why several languages one might have that programs are built by tinkering and that expected to see were not represented (the little of their design gets captured in written committee could not enlist a suitable author), form, at least in a written form that would I pointed out that the languages present could make it possible to determine how they work be taken as a sign of maturity of the field. The or why they work as they do rather than in first two HOPLs covered what might be called other readily imaginable ways. Moreover, the ‘‘heroic age’’ of programming languages, what programs do and what the documenta- when individuals or teams could start tion says they do are not always the same more or less from scratch and design a thing. Here, in a very real sense, the historian language to express their vision of computa- inherits the problems of software mainte- tion and computing. nance: the farther the program lies from its The languages of HOPL III follow a different creators, the more difficult it is to discern its pattern. They were developed in the context of architecture and the design decisions that a mature field and under a variety of technical inform it. and corporate constraints. With the exception

July–September 2008 15 What Makes the History of Software Hard

perhaps of Statecharts, they establish no new answer revealed much about the current state paradigms but pursue the implications of of software engineering: existing ones. Haskell and Self take to its limits, Emerald grapples Ugh. How much time do you have? The short with the challenges of distributing objects over version is this: a network, Beta builds on Simula, C++ settles Most airlines were built on ‘‘legacy’’ main- into a standard version, still incorporating C as frame systems from the 60’s and 70’s. These systems are deeply embedded in everything a sublanguage. It’s not clear that the missing from reservations, to flight operations, to languages, such as Java or Python, would airport operations, to accounting. They are change the situation, despite their widespread very reliable, but very inflexible. As our use. All of them have had to fit into existing business changes, it’s as though we’re fighting systems, meet corporate demands, preserve with one hand tied behind our back. compatibility with earlier versions, and so on. You might respond: ‘‘So dummy, convert it Indeed, in retrospect, that was already the to a 21st century system.’’ We would like to do case with several of the languages at HOPL II. that and eventually will. Several technology As Bjarne Stroustrup observed in explaining companies are building more modern plat- why C++ was based on C, ‘‘We never have a forms, and we are in contact with them. In an industry where we lose money more often clean slate. Whatever new we do must make it than we turn a profit, it’s not easy to justify possible for people to make a transition from 31 replacing a system that works with one that’s old tools and ideas to new.’’ Any such very expensive, untried and carries additional transition involves an understanding of the risk. But stay tuned; we’ll get there.32 old tools, of how they work, and of how people use them. It means taking the notion of legacy In sum, the airlines are working with legacy seriously, as something we continue to live systems built several decades ago that do the with. jobwellatthescaleforwhichtheywere Let me close with another recent example. designed but are not adaptable to growth, Toward the end of March 2007, H. Travis change, and restructuring. That is as true of air Christ, VP for Sales and Marketing for US traffic control as of reservations.33 New systems Airways, wrote to the airline’s customers to are expensive and so far rest on promise rather inform them about the progress of the merger than proven performance. Rather than facili- of that company with America West, which tating flexible response to varying conditions required the merging of two reservations in a crucial, yet fragile, sector of the American systems, undertaken by migrating the data of economy, current software technology adds to one of them to the other. It was an 18-month the burden and distracts from the task at hand. effort that constituted, in his words, ‘‘one of Now that situation should be of common 32 the biggest IT projects in aviation history.’’ interest to computer people and to historians. On the one hand, the transfer had gone Historians will want to know how it developed reasonably well. On the other hand, it had over several decades and why software systems not, and the failures of the system’s automated have not kept pace with advances in hardware. check-in kiosks at several major hubs coincid- That is, historians are interested in the legacy. ed with a crippling ice storm on the East Coast Even as computer scientists wrestle with a to cause severe unhappiness among custom- solution to the problem the legacy poses, they ers. ‘‘For those of you who like the details,’’ he must live with it. It is part of their history, and explained, the better they understand it, the better they will be able to move on from it. When we transferred the seven million reser- vations from one system to the other, approx- References and notes imately 1.5 million of them didn’t ‘‘sync up’’ 1. . Kling and W. Scacchi, ‘‘The Web of correctly and our agents had to hand-process each reservation. Many systems that were Computing,’’ Advances in Computers, vol. 21, otherwise ready to go became bogged down 1982, pp. 1-90; at p. 39 and pp. 56-60. with these reservations. We’ve since whittled 2. B. Stroustrup, ‘‘A History of C++,’’ in T.M. Bergin, the number of ‘‘out of sync’’ reservations to a and R.G. Gibson, eds., History of Programming very small number.32 Languages, ACM Press, 1996, p. 750. 3. Another version of this article addressed to the Christ anticipated the next question—or implications of the subject for the humanities perhaps he had heard it in some version: ‘‘This appeared as ‘‘The Histories of Computing(s),’’ all sounds very clunky. Why didn’t you Interdisciplinary Science Reviews, vol. 30, no. 2, convert to a more modern system?’’ His 2005, pp. 119-135.

16 IEEE Annals of the History of Computing 4. In England, of course, the story has a slightly 13. . Mindell, Between Human and Machines: different trajectory that includes Turing’s ACE. Feedback, Control, and Computing before Although pursuing his own ideas, Turing knew Cybernetics, Johns Hopkins Univ. Press, 2002. about the EDVAC report and took it into account. 14. For an overview, see M.S. Mahoney, ‘‘The See Alan Turing’s Automatic Computer Engine: The Structures of Computation,’’ The First Computers: Master Codebreaker’s Struggle to Build the Modern History and Architectures, Raul Rojas and Ulf Computer, B. Jack Copeland, ed., Oxford Univ. Hashagen, eds., MIT Press, 2000, and ‘‘Software: Press, 2005. Germany offers yet another variant The Self-Programming Machine,’’ From 0 to 1: An trajectory, originating with Konrad Zuse’s Authoritative History of Modern Computing, A. Akera machines. and F. Nebeker, eds., Oxford Univ. Press, 2002. 5. On the first point, see Chaps. 3 and 4 of C.J. 15. For a detailed study of that process in the Bashe, et al., IBM’s Early Computers, MIT Press, insurance industry, see J. Yates, Structuring the 1986; on the second, see the recent dissertation : Life Insurance and Technology in by J.A. November, ‘‘Digitizing Life: The the Twentieth Century, Johns Hopkins Univ. Press, Introduction of Computers to Biology and 2005. Medicine,’’ PhD dissertation, Princeton Univ., 16. U. Hashagen, R. Keil-Slawik, and A. Norberg, eds., 2006. History of Computing: Software Issues, Springer 6. For a subtle discussion of memory and history— Verlag, 2002. In my own presentation (‘‘Software personal, social, and scientific—see G.C. Bowker, as Science—Science as Software’’, pp. 25-48) and Memory Practices in the Sciences, MIT Press, 2005. the ensuing discussion, I missed an important 7. For a discussion of the historical models of question underlying critiques that I was ignoring engineering to which software engineers have the sciences that had contributed to computer turned, see my ‘‘Finding a History for Software science. I saw them—for example, psychology—as Engineering,’’ IEEE Annals of the History of ancillary, as resources on which computer science Computing, vol. 26, no. 1, 2004, pp. 8-19; online has drawn, but not as constituents of computer version at http://www.princeton.edu/,mike/ science itself. In looking at them in that way, I articles/finding/finding.. missed seeing how their application to problems of 8. In Calculating a Natural World: Scientists, computation brought out what was Engineers, and Computers during the Rise of U.S. computational about them. If computer science is Cold War Research (MIT Press, 2007), Atsushi concerned with what can be computed, then it Akera articulates the complex and evolving includes the computational aspects of the ‘‘ecology of knowledge’’ among institutions, sciences, and its history includes the process by occupations, organizations, knowledge, and which those computational aspects were artifacts and actors that constituted that identified, elicited, and articulated. community. 17. The Forum was announced by Adele Goldberg in 9. See, for example, J.W. Cortada, Information a President’s Letter in the Comm. ACM, vol. 28, Technology as Business History: Issues in the History no. 2, 1985, pp. 131-133. The enabling and Management of Computers, Greenwood Press, resolution of the ACM Council in October 1984 1996, and The Digital Hand: How Computers opened with the statement that ‘‘Contrary to the Changed the Work of American Manufacturing, myth that computer systems are infallible, in fact Transportation, and Retail Industries, Oxford Univ. computer systems can and do fail. Consequently Press, 2004; Thomas Haigh, ‘‘The - the reliability of computer-based systems cannot Plated Tabulator: Institutionalizing an Electronic be taken for granted.’’ (Ibid., p. 131). For a Revolution, 1954–1958,’’ IEEE Annals of the History compilation and commentary on the mishaps of Computing, vol. 23, no. 4, 2001, pp. 75-104, reported over the first ten years, see P.G. and ‘‘Inventing Information Systems: The Systems Neumann’s Computer-Related Risks, ACM Press, Men and the Computer, 1950–1968,’’ The Business 1995. History Rev., vol. 75, no. 1, 2001, pp. 15-61. 18. J.. Tomayko, ‘‘Software as Engineering,’’ in 10. J. Agar, The Government Machine: A Revolutionary History of Computing, Hashagen et al., eds., History of the Computer, MIT Press, 2003. pp. 65-76. H. Petroski, To Engineer is Human: The 11. I am telling an American story here. For the wider Role of Failure in Successful Design, St. Martin’s context, see inter alia J.A. Merkle, Management Press, 1985. and Ideology: The Legacy of the International 19. P. Naur and B. Randell, eds., Software Scientific Management Movement, Univ. of Engineering, Report on a Conference Sponsored by California Press, Berkeley, 1980. the NATO Science Committee, Scientific Affairs 12. The seminal account is T.P. Hughes, Networks of Division, NATO, 1968, p. 13. The report was Power: Electrification in Western Society, 1880– republished, together with the report on the 1930, Johns Hopkins Univ. Press, 1983. second conference the following year, in Software

July–September 2008 17 What Makes the History of Software Hard

Engineering: Concepts and Techniques: Proc. NATO 27. I thank an anonymous reviewer for directing my Conferences, P. Naur, B. Randell, and J.N. Buxton, attention to this point. eds., Petrocelli, 1976. Randell has made both 28. G.M. Weinberg, The Psychology of Computer reports available for download; see http:// Programming, Van Nostrand Reinhold, 1971; B. homepages.cs.ncl.ac.uk/brian.randell/NATO/. Kernighan and P.J. Plauger, Elements of 20. F.P. Brooks, ‘‘No Silver Bullet—Essence and Programming Style, McGraw-Hill, 1978. Accidents of Software Engineering,’’ Information 29. A.C. Kay, ‘‘The Early History of ,’’ History Processing 1986, H.J. Kugler, ed., Elsevier Science, of Programming Languages—II, T.J. Bergin and 1986, pp. 1069-1076; reprinted in Computer, R.G. Gibson, eds., ACM Press, 1996, p. 516. vol. 20, no. 4, 1987, pp. 10-19; and in the 30. The languages covered were AppleScript, BETA, Anniversary Edition of The Mythical Man-Month: C++, Emerald, Erlang, Haskell, High Performance Essays on Software Engineering, Addison-Wesley, (HPF), Lua, -2/Oberon, Self, 1995, Chap. 16. Chap. 17, ‘‘‘No Silver Bullet’ Statecharts, and ZPL. See http://research.ihost. Refired’’ is a response to critics of the original com/hopl/HOPL-III.html. Among those article and a review of the silver bullets that have conspicuously missing were Java, ML, , and missed the mark over the intervening decade. Python. 21. Symbolic algebra constitutes another example of 31. Indeed, it is striking how many of the languages of operative representation; see M.S. Mahoney, HOPL III were initially implemented in C or C++. ‘‘The Beginnings of Algebraic Thought in the 32. Email to author as customer from US Airways— Seventeenth Century,’’ Descartes: Philosophy, Dividend Miles (dividendmiles@myusairways. Mathematics and Physics, S. Gaukroger et al., com), 24 March 2007, Subject: Merger Update. A eds., The Harvester Press, 1980, Chap.5. copy of the letter with slight different wording 22. See the project site at http://www.nsf.gov/ may be found at http://blog.fastcompany.com/ funding/pgm_summ.jsp?pims_id512766 archives/2007/03/14/usair_asks_fliers_can_we_ &org5CCF. get_a_hallelujah.html. 33. See, inter alia, R.N. Britcher, The Limits of Software: 23. H. Ford, My Life and Work, Doubleday, 1922, People, Projects, and Perspectives, Addison-Wesley, pp. 23-24. For a reading of Ford’s Model T, see 1999. my web document, ‘‘Reading a Machine’’; http:// www.princeton.edu/,hos/h398/readmach/ modelt.html. Michael S. Mahoney is a 24. T. Kidder, The Soul of a New Machine, Little, professor of history in the Brown, 1981, p. 26. Program in History of Science 25. As originally stated, ‘‘[O]rganizations which at Princeton University, design systems … are constrained to produce where he earned a PhD in designs which are copies of the communication 1967. As historian of science, he has written on the devel- structures of these organizations.’’ M.E. Conway, opment of the mathematical ‘‘How Do Committees Invent?’’ Datamation, sciences from antiquity to 1700 and, as historian vol. 14, no. 4, 1968, pp. 28-31; online version at of computing, he has explored the emergence of www.melconway.com/research/committees. the new technical disciplines of theoretical com- html. For Conway’s subsequent thoughts on the puter science and software engineering. subject, see his webpage, www.melconway.com/ law. 26. C.G. Langton, ‘‘Artificial Life’’ [1989], The Philosophy of Artificial Life, M.A. Boden, ed., Readers may contact Mahoney at mike@princeton. Oxford Univ. Press, 1996, p. 47. On the edu. philosophical implications of the distinction between program and process (and, third, For further information on this or any other semantics), see B. Cantwell Smith, On the Origin computing topic, please visit our Digital Library of Objects, MIT Press, 1998, pp. 32-42. at http://computer.org/csdl.

18 IEEE Annals of the History of Computing