by Kurt W Beyer
Programming was an afterthought during the process of designing the first generation of large-scale computers. Consequently, the complexities of programming caught the pioneering inventors off guard. In programming the Mark I and Mark II computers, teams of specialists8 had to reduce each problem to a series of mathematical steps. Each step was then represented in code, producing a line-by-line translation that was transferred onto paper tape and manually checked and rechecked for errors. Not until a 1953 paper by John Mauchly and Grace Hopper concerning programming’s influence on future computer development did hardware design begin to take the exigencies of programming into account.9
The first three modern “programmers” were Robert Campbell, Robert Bloch, and Grace Hopper. As early as 1944 the Harvard trio began to search for ways to write and run code more efficiently. Under wartime pressure, they developed a systematic approach to coding that was relatively efficient and accurate. In particular, Hopper and Bloch experimented with the earliest instances of subroutines, branching techniques, code compression, and debugging procedures, and they applied their techniques to a diverse range of scientific and engineering problems. Furthermore, Hopper and Bloch established an information-processing organization that achieved remarkable rates of efficiency and accuracy while operating around the clock, seven days a week.
The programming techniques developed by Hopper, Campbell, and Bloch at Harvard did not come into their own until wedded with hardware advances made at the University of Pennsylvania. Electronic computing, as first demonstrated in the Electronic Numerical Integrator and Calculator (ENIAC), decoupled calculating speed from the realm of the physical. Whereas Howard Aiken’s mechanical hardware could complete three calculations per second, the ENIAC could handle 5,000. For all of its marvelous internal speed, however, the ENIAC was not programmable in the present-day sense of the word.
It would take the dynamic mind of John von Neumann to imagine a technology that melded the benefits of Mark I’s programming with the ENIAC’s electronic circuitry. After spending the fall of 1944 in Cambridge working with Hopper and Bloch on the nuclear implosion problem for the Manhattan Project and the winter and spring in Pennsylvania brainstorming with J. Presper Eckert Jr. and John Mauchly on the next-generation ENIAC, von Neumann put pen to paper and captured an evolving revolutionary computer architecture. The “First Draft of a Report on EDVAC,” dated 30 June 1945, outlined the structural design of a general-purpose stored-program computer and became the working blueprint for the next generation of computers, including the EDSAC and ACE machines in England and the UNIVAC and IAS machines in the United States.
Internal memory allowed long and complicated sequences of operations to be executed at electronic rather than mechanical speed. This stored-program architecture married the electronic speed of the ENIAC with the automatic sequence control and programming capability of Mark I. The subsequent “von Neumann architecture” was the theoretical underpinning of the computer revolution, yet Grace Hopper and the programming crew at Harvard have not previously been identified as important participants in the concept’s creation. This does not mean that we should discount von Neumann’s intellectual capacity to generate original ideas. Creative concepts, however, do not appear out of a vacuum, and during the fall of 1944 von Neumann had a distinctly broad perspective on the nascent computing field. He could identify the strengths and weaknesses of computer projects and could fashion a new technical variation with shared elements. “Von Neumann,” Aiken recalled, “had this marvelous ability to absorb and make big jumps, and then he talked about things, talked about concepts without worrying about where they came from.”10 (Interestingly, von Neumann cites Aiken in the “First Draft” but does not cite either Eckert or Mauchly.)
After the war, Hopper permanently resigned from her position at Vassar College, joined the Naval Reserve, and remained with Aiken to establish the Harvard Computation Laboratory. Apart from being placed in charge of Mark I and writing that machine’s manual of operation, Hopper emerged as Aiken’s most trusted deputy. She engaged visiting scholars, businessmen, and military officials interested in developing their own computing capabilities, represented the Computation Laboratory during visits to other large-scale computing projects, and spoke for Aiken in his absence. She also helped to organize two landmark computer conferences at Harvard, one in 1947 and one in 1949. Remarkably, Hopper’s rise to prominence at Harvard occurred at a time when many women were forced from public life under the pressure of postwar demobilization.
Hopper’s most important contributions as an inventor, however, occurred not on Harvard’s campus but rather in Philadelphia at the Eckert-Mauchly Computer Corporation from 1949 to 1960.11 Though Hopper continued to be associated with EMCC until 1971, the years 1949–1960 are critical for a number of reasons. First and foremost, that period coincides with Hopper’s seminal papers on programming and computer design.12 Those papers describe a series of programming advances that permit humans to communicate with computers in terms other than ones and zeros.13 Hopper’s achievements established the field known during the 1950s as automatic programming, which influenced the direction of programming and software development from that point forward and which served as the foundation for future high-level computer languages. Second, the period marks the point when programming transitioned from ancillary work assigned primarily to women to the main “reverse salient”14 impeding the further development of the computer industry. It made no difference how fast hardware could compute if programming efficiency did not improve at a similar rate. Moreover, most users were prevented from exploiting the machines’ computational power by the lack of useful program applications and the cost and scarcity of a labor force skilled enough in advanced mathematics to create such applications. Hopper’s inventions broke down the communication barrier between man and machine, “democratizing” the field of computer programming, which aided mass adaptation of the technology during the 1960s.
Though it is sometimes difficult to identify the motivation behind particular inventions, it appears that a dearth of talented programmers, a personal frustration with the monotony of existing programming techniques, and the lack of resources made available by senior management at Remington Rand to support computer clients led Hopper to invent the technologies and techniques, such as the compiler, that allowed the computers to, in effect, help program themselves. Interestingly enough, as her A-0 compiler evolved into the A-1 and the A-2, Hopper’s reasoning in regard to the invention changed. Compilers became less about relieving programmers of the monotony of coding and more about reducing programming costs and processing time.
Hopper’s dynamic representation of her invention is matched by an evolving approach to innovation, which I refer to as distributed invention. This term describes Hopper’s unique style of program development, wherein prototypes were farmed out to an ever-widening circle of programmers and users. This growing network of invention crossed organizational boundaries and provided Hopper with a variety of feedback that she then incorporated into more advanced prototypes.
During the 1950s, Hopper established herself as a spokesperson for the evolving computer industry. As a tireless advocate for her inventions, Hopper provided a particular vision of the future, not only for those working in the computer industry, but also for potential users. Building a new technology is only half the battle; getting people to use it instead of an alternative is the other half. “In my view,” said Jean Sammet in her welcoming remarks at the first ACM History of Programming Languages Conference in 1978, “Grace Hopper did more than any single individual to sell the concepts of the higher-level languages from both a technical and an administrative viewpoint.”15 That assertion was met with overwhelming applause.
PRIMARY SOURCES
Historians of computing are fortunate in that many of the early pioneers were fastidious in saving work documents, memos, notes, and letters. One can speculate that Grace Hopper and her peers had a sense of destiny. Or maybe they were de
tail-oriented people, on the verge of obsessive-compulsive. In either case, historians and posterity benefited. The starting point for researchers seeking primary source material is the Grace Murray Hopper Collection in the Archives Center of the Smithsonian Institution’s National Museum of American History in Washington. Eight boxes contain technical notes and manuals, operating instructions, descriptions of projects, press clippings relating to computers, photographs, academic articles, and a “humor file.” The material is indexed chronologically, and much of it is annotated in Hopper’s own hand.
Harvard University and the Charles Babbage Institute at the University of Minnesota hold the papers of many pioneering figures of the computer industry. Harvard’s Aiken Collection contains a wealth of personal correspondence, memos, reports, notes, studies, news clippings, and photographs. Associated with Howard Aiken’s papers are the records of the Computation Laboratory for the period 1944–1961. The Charles Babbage Institute manages a vast collection of personal papers, most notably those of Walter Anderson, Isaac Auerbach, Edmund Berkeley, Margaret Fox, and Betty Holberton. The Charles Babbage Institute also holds the records of the 1978 History of Programming Languages Conference. That conference was organized by the Special Interest Group in Programming Languages of the Association for Computing Machinery; the participants included a number of people who were involved in the development of COBOL, and Grace Hopper was the keynote speaker.
Other notable primary sources are housed in the Hagley Museum and Library in Wilmington, Delaware (the Sperry Rand records), the Library of Congress (the John von Neumann papers), the Van Pelt Library at the University of Pennsylvania (the John Mauchly papers), and the IBM Corporation Archives in Somers, New York.
Also located at the Archive Center of the Smithsonian’s National Museum of American History in Washington is the Computer Oral History Collection,16 a rich assortment of interviews with computer pioneers collected in 1972 under the sponsorship of the American Federation of Information Processing Societies and the Smithsonian Institution. The collection includes five restricted interviews with Grace Hopper and a rare tape of a Hopper lecture, which I was fortunate to acquire through the assistance of the Smithsonian archivist Alison Oswald. The oral history collection holds about 70 further interviews relevant to the project, including four with John Mauchly and one with Howard Aiken (used extensively by I. Bernard Cohen in the preparation of Howard Aiken: Portrait of a Computer Pioneer, MIT Press, 1999). Other interviewees include Richard Bloch and Robert Campbell (Hopper’s fellow programmers on Mark I), Hopper’s colleagues at the Harvard Computation Laboratory (Morris Rubinoff, Robert Burns, An Wang), Hopper’s colleagues at the Eckert-Mauchly Computer Corporation (Jean Bartik, Betty Holberton, Isaac Auerbach), and a wide variety of computer pioneers who interacted with Hopper throughout her career (among them Irving Reed, Mina Rees, Herman Goldstine, and Robert Patrick).
The Computer Oral History Collection also contains transcripts of panel discussions held during a 1967 meeting of the Association for Computing Machinery titled “In the Beginning, Reminiscences of the Creators.” Notable participants included Grace Hopper, John Mauchly, Herman Goldstine, Richard Bloch, Maurice Wilkes, Betty Holberton, and Isaac Auerbach. And the collection also contains transcripts from a 1972 computer forum held at the U.S. Military Academy, the keynote speakers at which were Grace Hopper and Herman Goldstine.
Other sources of oral histories are the Charles Babbage Institute (already mentioned) and the Schlesinger Library at the Radcliffe Institute for Advanced Study in Cambridge, Massachusetts. The Charles Babbage Institute is home to an extensive interview, conducted by Christopher Riche Evans in 1976, in which Hopper discusses her involvement with Aiken at the Harvard Computation Laboratory, the programming of Mark I, and her work with J. Presper Eckert Jr. and John Mauchly. Among the other interviewees are Eckert, Mauchly, Margaret Fox, Betty Holberton, William Norris, and Walter Anderson. In the Schlesinger Library (dedicated to the study the history of women in the United States), I located a very useful interview with Adele Mildred Koss, a programmer who worked with Hopper at the Eckert-Mauchly Computer Corporation. I also uncovered the video and transcript of Grace Hopper’s interview with Morley Safer on the television program 60 Minutes in 1983.
RECONSTRUCTING THE PAST: THE USE OF ORAL HISTORIES AND OTHER ARTIFACTS
Historians, like archeologists, are detectives, uncovering clues while attempting to reconstruct a probable past. The analogy holds especially true for historians of technology, for we have access to artifacts and objects sculpted by the minds and hands of our protagonists. A wonderful depiction of this special relationship between object and inventor is captured by a video interview with J. Presper Eckert Jr. that I uncovered. The interview was conducted in front of the ENIAC, the computer that the young Eckert patiently designed and constructed during the 1940s.
The ENIAC itself was an extension of its creator. The materials chosen for the machine reflect Eckert’s understanding of cutting-edge concepts in electronics. Its organization and its flow echo Eckert’s design philosophy. In the video interview, one can see the aging inventor being transported back through the decades, remembering in an instant why certain dials were placed in such arrays, why color codes were used, and how humans interacted with the ENIAC to produce calculations at the speed of light.
So, too, can we learn about Grace Hopper by studying her programs, manuals, operating instructions, professional publications, and flow charts. At the dawn of the computer age, Hopper’s work laid the foundation for the programming profession. Principles of code preparation, logical program design, documentation, and testing flowed from her work on Mark I, Mark II, Mark III, and UNIVAC. Her training as a mathematician enabled her to communicate with and to master the new machines. The individuals who came to be known as programmers in the 1940s and the 1950s shared this crucial educational attribute with her, and the budding profession became an early “priesthood” of math wizards who held the key to the powerful new technology.
Paradoxically, Hopper’s mathematical mind constantly rejected mathematics to a great extent. Hopper could speak the language of the machine as well as anyone, but she always found herself trying to move the early profession beyond mathematics. It wasn’t enough to write programs that could be understood by only a few people. At Harvard, Hopper created documentation standards that explained each segment of code, and at EMCC she drew graphical representations that explained the mathematical logic behind her code and could be understood by the less mathematically gifted. Eventually, Hopper created a compiler that permitted humans to communicate with computers in non-mathematical terms. Much like Eckert’s hardware designs, Hopper’s programs mirrored what she held dear, which in her case was the overarching need to help others learn to communicate with these wondrous mechanical creations. In this respect, Hopper the “college professor” aligned with Hopper the inventor, for she never stopped teaching.
Among the richest sources of information about Hopper and her peers were the oral histories located at the Archive Center of the Smithsonian’s National Museum of American History and the Charles Babbage Institute. Because of the foresight of a variety of historical and computing organizations, academics, and computer pioneers, I was fortunate enough to have access to interviews with Hopper and many of her colleagues spanning 50 years. Paradoxically, what I see as good fortune other academics sometimes criticize as “soft” evidence. They protest that oral histories are highly inaccurate, limited by the fragile nature of memory. Oftentimes the interviews were conducted well after the events transpired and were further corrupted by the agendas of the interviewer, the interviewee, or both. These scholars would prefer concrete evidence, such as time cards, company memorabilia, and office memos. Such evidence carries an aura of fact, because it was generated while events transpired and because it is not dependent on the limitations of memory.
Of course original documents from the period under study are essential when reconstructing past even
ts, because they serve as a skeleton for the historical narrative. I argue that the rich volume of oral histories available in this instance helps to flesh out those structural bones. And that flesh is what makes this story so juicy, for we quickly realize that invention as a human endeavor is complex and messy. Logic and reason are the twin pillars of technology, but they do not in and of themselves explain the act of invention. Why humans create and why those creations happen at particular times and places are far more complicated then the cliché notion that invention is the mother of logical necessity.
The thousands of pages of oral history I reviewed in writing this book provide insight into the motivations behind people’s actions. Childhood insecurities, ambition, jealousy, the need to please, stubbornness, and patriotism all drive the creative spark. We also get a real sense of the conditions under which Hopper and her peers worked. The strain and stress of wartime research and development at the Harvard Computation Laboratory is described in detail by Grace Hopper, Howard Aiken, Robert Campbell, Richard Bloch, and Edmund Berkeley in a way that time sheets and organization manuals cannot capture. The memories of John Mauchly, J. Presper Eckert Jr., Betty Holberton, Jean Bartik, and many others provide a window into the world of the first computer start-up company as it was half a century before Silicon Valley’s “dot com” boom of the 1990s brought the culture of the “start-up” company to the attention of the popular press.
This does not mean that all oral histories are created equal. Part of the researcher’s job is to develop a keen eye for identifying quality. Quality starts with the interviewer, and the computing community should feel fortunate that the majority of the oral histories held by the Smithsonian, the ACM, and the Charles Babbage Institute were conducted by professionals who understood both the techniques of interviewing and the technical subject at hand. For the most part they knew what questions to ask and in what order to ask them, and they had a good sense of when to give their interviewees enough line to run with a topic and when to reel them in.