Grace Hopper and the Invention of the Information Age
Page 17
Taking the Harvard I/O system one step further, Eckert began experimenting with a new technology initially developed by the audio recording industry: magnetic tape. The experimental magnetic-tape I/O device consisted of plate-size reels of magnetic tape, drive motors, and magnetic recording and reading heads. The magnetic heads were designed to record and read from the tape at a rate of about 400 words per second. Moreover, each 10-inch reel could hold 2,000 feet of 8-millimeter-wide tape and could store up to 2 million alphanumeric digits. High-speed drive motors and a sophisticated electronic clutch would maximize the efficiency of the tape and only 20 percent of the recording space would be wasted. The speed of the magnetic-tape system complemented the electronic circuits, permitting the user to take advantage of the hardware’s calculating potential.17
HOW TO SELL A COMPUTER?
Although the proposed UNIVAC sounded remarkable to Grace Hopper, Eckert and Mauchly faced a considerable challenge in raising investment capital. Seed money was hard to come by, given the absence of a structured venture capital system in 1946. The only available avenue was to generate cash flow by receiving partial payment on UNIVAC purchase contracts—a difficult task with an unproven technology and an uninformed customer base. It would take all of John Mauchly’s proselytizing talents to sell the vision of a computing future.18
Mauchly first turned to an organization with a history of supporting radical calculating technology: the United States Census Bureau. The Census Bureau was established in 1790 to track population demographics to determine the allocation of congressional seats. By the 1880 census, the population growth of the United States had outstripped the Census Bureau’s manual data-processing capability, taking 1,500 full-time clerks over 7 years to produce the 21,000-page report. The Census Bureau turned to Herman Hollerith, a young engineer.
Hollerith’s insight was that a person’s identifying information (age, geography, etc) could be represented by holes punched in cards, which could then be processed mechanically. Hollerith’s machines processed more than 60 million cards during the 1890 census, thus allowing the Census Bureau to complete the 27,000-page report 2 years early and $5 million under budget. In 1896 Hollerith formed his own company, which in 1911 merged with two other small office equipment firms to form the Computing-Tabulating-Recording (CTR) Company. In 1924 CTR’s president, Thomas Watson Sr., renamed the company the International Business Machine Corporation (IBM) so that the firm’s name would match his ambition.19
Fifty-six years after the Census Bureau purchased Hollerith’s experimental punch-card machine, it signed a $300,000 contract for delivery of a UNIVAC. The Census Bureau contract marked an early victory for the fledgling Eckert-Mauchly Computer Corporation, but EMCC could not receive advance payments—government regulations only permitted the Census Bureau to award contracts for finished products. Fortunately, the National Bureau of Standards was also interested in a machine. It provided $75,000 up front to cover research costs for the mercury memory and the magnetic-tape system. The total National Bureau of Standards contract amounted to $300,000, which was to be paid in installments as the machine approached completion. Mauchly lined up a third contract with the Army Map Service, but once again money would not be released until a significant portion of the project was completed.
Eckert-Mauchly’s financial situation became more precarious as the costs of developing UNIVAC crept ever higher. In October 1947, Eckert and Mauchly were forced to sign a contract with the Northrop Aircraft Company for a small Binary Automatic Computer (BINAC). The $100,000 price tag injected needed capital, but the 15 May 1948 delivery date for the BINAC would hamper progress on UNIVAC.20
Eckert-Mauchly’s financial standing was vastly improved by an unlikely source: American Totalisator, a Baltimore-based company that supplied racetracks with machines that calculated betting odds and recorded race results. American Totalisator’s senior management had heard about a new type of commercial calculating machine through George Eltgroth, EMCC’s patent attorney. Eltgroth arranged for Eckert and Mauchly to meet with Henry Straus, the vice president of Totalisator. Straus, who had invented and patented the original totalisator machine, grasped the potential of the UNIVAC immediately.21
On 6 August 1948, Straus decided to formalize his interest in Eckert and Mauchly’s start-up computing venture. Totalisator paid $500,000 for 40 percent control of EMCC, advancing the cash-strapped company $50,000 upon the closing of the contract. Straus was named chairman of EMCC’s board of directors (which also included three Totalisator executives, Presper Eckert, and John Mauchly). Though outnumbered, the founding partners retained 54 percent of the common stock, with the final 6 percent dispersed among EMCC employees.22
Though Totalisator was formally represented on the EMCC board, strategic decisions and operational business and engineering decisions were left to Eckert and Mauchly. By 1 June 1949, when Grace Hopper arrived, the once struggling company was a flourishing organization with more than 100 employees. It had signed contracts with the National Bureau of Standards, the Census Bureau, the Army Map Service, and Northrop Aviation, and it was in negotiations with two insurance companies (Prudential and Metropolitan), with the marketing information company A. C. Nielsen Inc., and with the General Electric Company. The BINAC was close to completion, and the proposed UNIVAC (scheduled for delivery in 1951) had a technological “edge” unmatched by any potential competitor, including the established office-equipment firms IBM and Remington Rand.23
BETTY SNYDER (HOLBERTON)
Other than John Mauchly, Hopper spent most of her time working with Betty Snyder24 during her transition from Harvard to EMCC. Hopper had met Snyder previously at Harvard and through the Association of Computing Machinery, but the first occasion that the two programmers had to sit down and talk was at Edmund Berkeley’s home a few months before Hopper joined EMCC. Hopper was impressed with Snyder’s intellect, knowledge of programming, and overall personality, all of which factored into her decision to go to EMCC.25
Betty Snyder (right) reconfiguring the ENIAC wiring in order to run a problem. Courtesy of U.S. Army.
Betty Snyder and Grace Hopper were similar in many respects, though Snyder was 12 years Hopper’s junior. Both came from established middle-class families that emphasized learning. “I was one of eight children,” Snyder noted, “and had a very delightful home life—four boys and four girls—and my father always felt that education was terribly important.26 Also like Hopper, Snyder was influenced by her grandfather, who was a prominent astronomer. With the support of her family, Snyder attended a prestigious Philadelphia prep school, the George School, and earned a scholarship to the University of Pennsylvania, where she planned to study mathematics.
Snyder’s experience at the University of Pennsylvania, however, diverged from the supportive environment Hopper found at Vassar. During her freshman year, Snyder took analytical geometry with a well-known Russian mathematician who told the women in class that their education was a waste of time and resources. “Every day when he came into class,” Snyder recalled, “he’d say ‘You women should be home raising children.’ Well, after you have 4 months of that every day, and you find out the next semester in mathematics is taught by the same fellow, with no alternatives, I just gave up.”27 Snyder transferred to the English Department and graduated with a degree in journalism.
Upon graduation, Snyder took a job with the Farm Journal. After the Japanese attacked Pearl Harbor, she wanted to join the war effort. “All of my family had joined the Service,” she said. “I had two sisters in the Waves, and I wanted to join the Waves, but I wasn’t accepted because of my eyes.”28 Determined to help her country, Snyder answered an advertisement in a Philadelphia newspaper for a position as a human computer for the Army’s Ballistic Research Laboratory. The human computers at the laboratory spent much of their time calculating firing tables to be used by artillery units on the front lines. The advertisement specifically asked for woman with a penchant for mathematics, but added that trai
ning would be provided for those lacking a mathematical background. Snyder was interviewed by her future husband, John Holberton, who selected the young journalist and arranged for her to get extra training in mathematics.
Though Betty Snyder found calculating firing tables eight hours a day monotonous, she was motivated by the fact that she was contributing to the war effort. “I always felt it was a terrific thing we were doing,” she recalled. “I really was just gung-ho on the whole thing.” Gung-ho, that is, until her brother returned from the European theater and informed her that he and his men never used her tables. Instead, the gunners would shoot two or three cursory shots, make the proper adjustments on the basis of tacit knowledge and experience, and go from there. “It really burst my balloon,” she recalled.29
Not seeing a future in human computing, Snyder volunteered for a special assignment to work on an experimental machine that supposedly would make the work of the Ballistic Research Laboratory’s computer group obsolete. Snyder remembered that few people were interested in applying for the assignment, suspecting that being an operator on a machine was a demotion of sorts. “The first thing that Goldstine [said was] ‘Your grades won’t be decreased because you are going to be working on a machine,’ ” Snyder recalled. “The idea of a machine, you know, was a low grade something or other.”30
When Snyder reported for work at the Moore School, her experience was identical in many respects to Hopper’s first days at Harvard. She remembered that no one in Philadelphia really knew what to do with her. There were no training materials or classes to teach a person to be an ENIAC operator, and from all appearances Eckert and Mauchly themselves had put little thought in how to actually operate such a machine once built. To make matters worse, Snyder’s lack of numerical theory made it more difficult to understand mathematical problems broken down into component parts.31
The other women who arrived with Snyder recalled a similar feeling of bewilderment. Betty Jean Jennings (later Jean Bartik) remembered those first days alongside Snyder: “We knew we were supposed to run the machine and set up problems for the machine, but no one had any techniques or anything.”32 Eventually, by studying block diagrams of circuits and by taking part in long discussions with John Mauchly and with an engineer named Bob Shaw, Bartik and Snyder became proficient at running the machine. They also became quite familiar with the machine’s hardware, for two reasons. First, unlike Mark I, the ENIAC was “programmed” via hardware manipulation. Much like the Moore School’s analog differential analyzer, the ENIAC was physically reconfigured to correspond to the problem to be solved. Second, because of the unreliability of the vacuumtube technology, much of their time was spent debugging the hardware.
By the winter of 1946, Betty Snyder was a valuable member of the ENIAC staff. She thoroughly enjoyed her new career, though there was no name for it. In February, after Eckert and Mauchly decided to set up a private company, she asked Mauchly if she could be a part of it. According to Snyder, for ethical reasons Mauchly was not soliciting staff members of the Moore School, even though he desperately needed trained people. “He wasn’t willing to offer me a job until I made the overture,” Betty Snyder Holberton later recalled.33
Through the spring of 1946, before the company received funding, Betty Snyder met with the other founding members at John Mauchly’s house. “We used to go up there on weekends, I guess about five or six of us,” she recalled. “We would hold the meeting starting Friday evening . . . maybe seven o’clock after dinner, and we worked until four in the morning.” The original members of the team defined their roles and responsibilities during the design phase of the UNIVAC. Snyder and Mauchly assumed joint responsibility for constructing the operating code. Snyder would also work closely with Eckert to develop the magnetic-tape I/O system.34
LEARNING THE ROPES AT EMCC
After arriving in the early summer of 1949, Grace Hopper worked closely with Betty Snyder, who exposed her to new techniques and procedures. First and foremost was the practice of meticulously planning out the logic of a program with flow charts. “We didn’t use flow charts [at Harvard], because everything was a perfectly simple sequence of operation because it just rode right along that tape,” said Hopper.35 BINAC and UNIVAC I were stored-program computers with the ability to modify instructions during a program run, and so the programmer could write much more complicated, non-sequential algorithms. Without a flow chart, the programmer was apt to lose her way when coding.
A flow chart, also called a flow diagram, is a graphical representation of the steps involved in a program. It systematically breaks down the algorithm and represents the flow of operations by means of geometric symbols. Snyder standardized the symbols used in flow charts, such as a rectangle for a process of action (e.g., Add a and b) and a diamond to represent a decision (e.g., Is a greater than b?). Because there were no index registers to allocate memory, memory locations had to be defined and tracked within the chart. Arrowed lines indicated the path of computational flow. The overall flow of the chart was from top to bottom and from left to right.36
A flow chart represents the logical analysis of a problem separate from a specific computer code or language. Hopper could draw up a single flow chart for coding an inventory control program, and that same flow chart then could be used as a guide to code two distinct computers with different object programs. Moreover, flow charts were a useful form of documentation. They permitted other programmers to quickly grasp or check a colleague’s work by tracking the states of variables at crucial points during the flow of a program, thus helping to uncover errors in logic. Ultimately, flow charts were a powerful tool that helped standardize the process of program design.37
Although Grace Hopper emphasized that Betty Snyder developed the system of flow-chart analysis for EMCC, the historical record is not as clear. Herman Goldstine has credited himself and John von Neumann with the invention and development of the programming tool:
In the spring of that year [1946] von Neumann and I evolved an exceedingly crude sort of geometrical drawing to indicate in rough fashion the iterative nature of an induction. . . . I became convinced that this type of flow diagram, as we named it, could be used as a logically complete and precise notation for expressing a mathematical problem and that indeed this was essential to the task of programming.38
In 1947, Goldstine and von Neumann published a paper on the subject titled “Planning and Coding of Problems for an Electronic Computing Instrument.” Years later, when questioned why she did not publish her original ideas at the time in order to receive the proper credit for them, Betty Snyder Holberton replied: “I did not write for publication because I wasn’t out to push my name ever.” Regardless, the practice of flow-charting programs began in Philadelphia and was passed to Hopper by Snyder during the summer of 1949. “She taught me that . . . and got me thinking in another dimension because you see the Mark programs had all been linear,” said Hopper.39
Snyder also taught Hopper C-10, the instruction code for the UNIVAC, which she had developed with Mauchly over a two-year period. An instruction code, or operational code, constitutes the most basic set of commands that can be executed by the computer. In December 1947, Mauchly wrote to Snyder suggesting that “the instruction code should use symbols which are easily learned and identified with the operations by already existing mental associations: ‘a’ for add, etc.” By replacing a sequence of binary numbers with a single letter to represent an operation, Mauchly and Snyder were simplifying the coding process and making it much more intuitive for users. The philosophy would have a tremendous effect on Hopper’s own breakthrough work during the 1950s. “I felt that people couldn’t understand what we were doing because we were using such bizarre terminology,” said Snyder. “I felt that we would never get anywhere unless we could really make people understand . . . you would see the word s and it meant subtract, and t meant test, and this kind of thing.” Snyder chose to have the code coincide with the 26 letters of the alphabet so that the compu
ter code paralleled concepts that all English-speaking users were familiar with, regardless of their mathematical background.40
Snyder thoughtfully created the code, constructing sample problems to see what instructions appeared most often. She hoped to create a type of language that a programmer could write fluently without constantly referring to a code manual. Three digits that designated memory location accompanied each code. The memory location, like the numbers entered as data, were written in decimal rather than binary or octal, another attempt to make the code adjust to the human instead of the other way around.41 Hopper was impressed by Snyder’s C-10 code, combined with the versatility of a stored-program computer, and she found the system far easier to use than what she had experienced at Harvard. “After coming from Mark I, I slipped into UNIVAC I like duck soup,” she said. “I felt as if I’d acquired all of the freedom and all of the pleasures of the world; the instruction code was beautiful.”42 (See table 7.1.)
Hopper was impressed by C-10’s advantages over the other machine codes. On both Mark I and Mark II she had to translate alphanumeric codes into octal digits that the computer could understand. Likewise, storage locations were written in octal.
TABLE 7.1
Examples of UNIVAC I’s C-10 code instructions.
rA Register used to store result of addition, subtraction, etc.
Am Add (m) to (rA), result in rA
Mn Multiply (rL) by (m), rounding off the product to 11 digits;
result in rA
Nm Multiply (rL) by negative (m); result in rA
Tm Test to determine if (rA) > (rL); if so, transfer control to m
The difficulty of coding in a computer-centric numeric code made programming time-consuming, tedious, and prone to error. Furthermore, it had detrimental effects on Hopper’s personal accounting. Each month her checkbook would be unbalanced because she would slip into octal addition and subtraction when balancing her accounts. The C-10 code, on the other hand, was much more intuitive. “We had decimal storage locations and it was heaven,” she recalled. “It was all the difference in the world.”43