By Ernest Davis
ENIAC in Action: Making and Remaking the Modern Computer. By Thomas Haigh, Mark Priestley, and Crispin Rope. MIT Press, Cambridge, MA, 2016. 360 pages, $38.00.
ENIAC in Action: Making and Remaking the Modern Computer. By Thomas Haigh, Mark Priestley, and Crispin Rope. Image courtesy of MIT Press.
In a blurb on the back cover of ENIAC in Action: Making and Remaking the Modern Computer, Paul Ceruzzi (curator of Aerospace Electronics and Computing at the Smithsonian’s National Air and Space Museum) claims to have a shelf full of books about the ENIAC, short for Electronic Numerical Integrator and Computer. This seems to be no exaggeration, as there are at least twenty books primarily devoted to the ENIAC, and several dozen more that feature the ENIAC as a major subject. Thus, ENIAC in Action is by no means the first word on the subject, and will likely not be the last. However, it is a particularly important, thorough, and balanced account, a major contribution to the history of early computing, and certainly required reading for any student of the subject.
ENIAC in Action looks at its subject primarily from a sociological and technological viewpoint. It is focused on issues such as the ENIAC’s intended purpose, the way in which it developed, the tasks for which it ended up being used, and the practical issues involved in its construction. After recounting the history of the ENIAC during its working lifetime, the book proceeds to the ENIAC’s afterlife: the protracted, associated patent suit and the contentious debate over its claims to being the first computer. The last chapter is a historiographical discussion of the ENIAC’s place in the literature of computing history over the past five decades.
Haigh, Priestley, and Rope have carefully studied and analyzed every scrap of original documentation that they could find. While there are no startling revelations or revolutionary conceptual frameworks in their account, there are lots of fascinating details and some myths put to rest. The struggles of the ENIAC builders to find reliable vacuum tubes are well known; less well known are their problems with more mundane components like resistors and power sources. The cleaning staff was a constant hazard, and eventually the ENIAC operators became practiced in spotting telltale signs that a connection had been knocked out and put back randomly. The idea that the ENIAC, or early computers in general, were used for complex computations on neatly-posed problems with small inputs and outputs turns out to be contrary to the truth. In fact, both the input and the output consisted of enormous decks of punch cards in many problems solved by the ENIAC. Punch cards were also used as external storage to save intermediate states of computation; at times this was a major bottleneck.
ENIAC in Action is striking for the extreme care and thoroughness with which the authors have collected and interpreted historical evidence, and their effort both to avoid letting hindsight drive interpretation and to comprehend how the people involved understood the ENIAC and their relation to it at the time.
Presenting the reader with a clear account of how the ENIAC architecture worked as a computer is not among this book’s priorities; the authors undoubtedly—and rightly—feel that this has been sufficiently done elsewhere. The authors are also not concerned with painting character portraits of the people involved. The reader gets a general sense of a collection of very smart people working extremely hard under the immense pressures of wartime and post-war periods. Readers may also perceive the group as contentious, but this could well be the result of many of the protagonists’ eventual involvement in a protracted lawsuit.
Looming over the entire account is the issue of “firstness.” Was the ENIAC “the first electronic computer” or the first electronic computer with certain properties? The question is an unnecessary one, and clearly the authors would have preferred to avoid it, but it drives so much of the subject’s literature.
The history of technology has few clear-cut firsts. Many major inventions—the airplane, the telephone, the telegraph—are the subject of competing claims for firstness. The debate regarding the “first computer” is particularly difficult to resolve satisfactorily, for three interrelated reasons.
Firstly, at least in its early years, the ENIAC was not a fixed machine at all in the way we think of machines. One did not run a program on the ENIAC; one brought a problem to the ENIAC team, which used the hardware to procure the answer. W. Barkley Fritz, a member of the team, wrote that the process of designing an ENIAC setup in its original programming method “can be best described as analogous to the design development of a special-purpose computer out of ENIAC component parts for each new application.”
Secondly, with most inventions, the inventors were clearly aiming for what we still consider the device’s central functionality. The Wright brothers and their competitors were aiming for a heavier-than-air flying machine, Alexander Graham Bell was aiming for a device to transmit sound, and so on. By contrast, the original builders of the ENIAC were not aiming for a “programmable general-purpose computer.” They were building a tool for solving particular problems – initially ballistic computations, and later, simulations associated (unbeknownst to them) with the nuclear bomb.
Thirdly, our view of the “general-purpose” computer is very much tied to the now-familiar abstraction from computation theory, with infinite memory. This model is a more or less reasonable idealization of computing technology from the early 1950s onward. But applying it to the machines of the early to mid-1940s is a much more questionable undertaking. Haigh, Priestley, and Rope write the following:
Discussion of the computational legacies of early computers can easily veer into the counterfactual. . . . This is particularly true when discussion relates to the universality or the Turing-completeness of a machine architecture, since any discussion that begins with the assumption of unlimited time and storage space has already departed irrevocably from the realities of an era in which the overwhelming challenge was to develop reliable and capacious storage. . . . Abstraction is the soul of computer science, but we historians lose something vital if we abstract away from the historical grubbiness of early computer projects, their focus on engineering challenges, and their specific goals and roots in the thinking of the 1940s. For example, Raul Rojas’ argument that Konrad Zuse’s 1943 Z3 computer was universal was an impressive party trick, but diverged entirely from the way the machine was designed, how it was actually used, or indeed anything that would have made sense in the 1940s.
The clash between the mathematical abstraction and the engineering reality comes to a head in the debate over the significance of John von Neumann’s contribution, and in particular of the document he wrote, called “First Draft of a Report on the EDVAC,” which laid out the direction for future development. Von Neumann’s advocates view this document as the key step in moving from ad hoc calculational hardware to the modern computer, while admitting that von Neumann was not very generous in crediting the ENIAC team. His detractors view “First Draft” as merely a well-written statement of ideas and plans that were already in the minds of ENIAC team members, arguing that the ENIAC would have developed in that direction without von Neumann’s intervention.
The question about firstness can be more usefully reframed as, “What was the role of the ENIAC in the development of the electronic computer in the 1940s?” A meaningful answer would involve an examination of all the strands that led to the emergence of the modern computer the following decade. However, a complete answer is not possible; much of the development involved conceptual advances, and tracing the emergence of these concepts would involve reading minds and tracking ephemeral interactions from seventy years ago. Nonetheless, ENIAC in Action is a major contribution to understanding the ENIAC’s role: the things it accomplished and how it accomplished them, as well as its historical context and resonance.