91自拍

Programming the ENIAC: an example of why computer history is hard

By Leonard J. Shustek | May 18, 2016

We take history seriously at the 91自拍. It鈥檚 our middle name, after all. But it鈥檚 not easy history to do, for several reasons.

  • It鈥檚 contemporary. If you鈥檙e a Civil War historian, no one who was alive at the time can object to what you write. But we get feedback all the time like 鈥淭hat鈥檚 not right 鈥 and I know because I was there鈥, or 鈥淵ou didn鈥檛 mention XYZ, which I invented.鈥 On the whole it鈥檚 wonderful to be able to interact with pioneers, but we always need to be mindful that personal memories, especially after many decades, can be unreliable, and that participants are not always the best judges of historical significance. We depend heavily on contemporary written documents; as the ancient Chinese proverb says, 鈥淭he palest ink is better than the best memory.鈥
  • There are no simple answers. The most fundamental unanswerable question is 鈥淲ho invented the computer?鈥 A 20-year-old might say 鈥淪teve Jobs鈥. My favorite answer is 鈥淐harles Babbage, except he never built it.鈥 But all the possible answers have problems. It鈥檚 like the automobile: there was no single inventor.
  • Any 鈥渇irst鈥 is problematical. What 鈥渇irst鈥 means depends on precise definitions of fuzzy concepts. Historian of computing and former 91自拍 chief curator Michael Williams famously said that anything can be a first if you put enough adjectives before the noun. Does the 鈥渇irst computer鈥 need to be electronic? Have a program stored in memory? Have been built? Be general-purpose? You get the idea. Our senior curator Dag Spicer wisely advises us to avoid the 鈥淔-word鈥 entirely because it鈥檚 simplistic and ignores the deeper questions of influence and impact.
  • It isn鈥檛 static. Even though the past doesn鈥檛 change, the history of it often does because of new discoveries. For example, historians believed for centuries that the first mechanical calculators, like Blaise Pascal鈥檚 Pascaline, were built in the 1600s. But in 1900 Greek sponge divers discovered a shipwreck with the remains of a that, after much study, we now know was an extremely complicated astronomical calculator built at least 1,500 years earlier. That鈥檚 history that had to be rewritten.

ENIAC and the Origins of Software

The history of software, into which 91自拍 is placing increasing effort, is particularly hard. I鈥檇 like to give one example in some detail: the relationship of ENIAC to the origins of software.

There has been a conventional wisdom about when what we now called 鈥渟oftware鈥 began to run. Many textbooks and websites, including Wikipedia and that of the University of Manchester, record June 21, 1948 as 鈥渢he birth of the stored-program digital computer鈥 because the 鈥溾 ran a 17-line program on that day.

The cover in ENIAC in Action by Thomas Haigh, Mark Priestley, and Crispin Rope.

But it鈥檚 not that simple. A recent by computer historian Tom Haigh and colleagues Mark Priestley and Crispin Rope explores the conversion of ENIAC into what they prefer to call a 鈥渕odern code paradigm鈥 computer. Based on machine logs and handwritten notes, they have discovered that a complex program began running on ENIAC on April 12, 1948.

ENIAC 鈥 the 鈥 was a room-sized machine with over 17,000 vacuum tubes. It started running at the end of 1945, and for five years it was the only fully electronic computer running in the US. Estimates are that by the time it was retired in 1955, it had done more calculations than all human beings in all of history.

The initial design of the ENIAC did not use anything like the software we know today. It was basically an assembly of 鈥渇unctional units鈥 that were wired together in a particular way for each new problem. If you wanted to do a multiplication after an addition, you would run a wire from the multiplier to the adder. Control was very distributed, and the machine could do many things in parallel. But designing and setting up new calculations was difficult and time-consuming.

Even before ENIAC was finished, engineers realized that there was a much better centralized way to control such a complex machine, using coded instructions stored in memory and 鈥渆xecuted鈥 in sequence. Control operations, such as looping and branching, could be accomplished simply by 鈥渏umping鈥 out of order to fetch the next instruction from a different memory address. We now call this a 鈥渃omputer program.鈥

The origin of this 鈥渓ightbulb over the head鈥 idea is hotly contested. Physicist and mathematician John von Neumann was the first to describe it in an incomplete that was widely distributed in June of 1945. But he had been discussing related ideas with many people, including ENIAC engineers John Mauchly and Presper Eckert. No one knows whose idea it was, how many people thought of it 鈥渇irst,鈥 or what prior work might have influenced them. For a discussion of how it was different from earlier ideas, see Tom Haigh鈥檚 recent article .

Regardless of who deserves the credit, it was quickly adopted as the right way to build computers. Even the ENIAC, starting in July of 1947, was converted to use this scheme. Because ENIAC had very little writeable electronic memory, the coded instructions were stored in 鈥渇unction tables,鈥 banks of 10-position switches that had previously been used to store pre-computed numerical constants. It was the modified ENIAC that ran a computer program stored in switches in April of 1948.

ENIAC vs The Baby

So, what鈥檚 the importance of this new historical discovery? That it ran 9 weeks before the Manchester Baby? That it happened in the US, not the UK? No. Those are interesting but relatively insignificant facts. Look instead at the substantial differences between the two events.

1. What the programs were:

  • Manchester鈥檚 program was a 17-line demonstration to prove that the computer worked.

The original demo program of the Manchester Baby.

  • ENIAC鈥檚 was an 840 instruction program that used a subroutine, nested loops, and indirect addressing for both data locations and jump destinations.

A diagram of the original demo program of the ENIAC.

A table of the ENIAC's addresses.

2. What the programs did:

  • Manchester鈥檚 program computed the highest factor of 218. It took 52 minutes to give an answer we already knew, on a machine that never did any useful computations of new results and was soon taken apart.

John and Klara Dan von Neumann.

  • ENIAC鈥檚 program was a Monte-Carlo simulation of neutron decay during nuclear fission, designed by John and Klara von Neumann. It gave useful and previously unknown answers. It also broke new ground by using a digital computer as a real-world simulator for problems that cannot be solved using traditional mathematics. ENIAC continued running programs like that, including weather simulations, for seven more years.

ENIAC鈥檚 April feat was an accomplishment, but there鈥檚 at least one good reason why calling it a 鈥渇irst鈥 is problematical: the program was stored in what we now call 鈥渞ead-only memory鈥, or ROM. Manchester鈥檚, on the other hand, was stored in the same memory used for data. That was the design that von Neumann had described, and is a characteristic of what is often called the 鈥渧on Neumann architecture鈥.

Does that matter? Was the modified ENIAC less of a computer than the Manchester Baby because its program was in ROM and could not be changed by the computer? Historian Doron Swade has asked many computer experts about the importance of programs being in memory. He observes that 鈥渘o one challenged the status of the stored program as the defining feature of the modern digital electronic computer鈥, but 鈥渨e struggle when required to articulate its significance in simple terms, and the apparent mix of principle and practice frustrates clarity.鈥

Look at it this way: many modern microprocessors, especially small ones for embedded control, have their programs in ROM. If they are modern-style computers, then so was the modified ENIAC. That鈥檚 my opinion, anyway; you are free to add or subtract your own adjectives and reach a different conclusion.

Changing history

Haigh鈥檚 new book is a refreshing change in the academic treatment of computing history. In the 1970s and 1980s, historical accounts were frequently written by practitioners 鈥渨ho were there鈥, and tended to focus on technical details. In the 1990s and 2000s, professional historians shifted the discourse primarily to business, political, and social aspects. The pendulum may now be swinging back to a welcome midpoint; the authors describe their book as 鈥渁n experiment in the re-integration of technical detail into history.鈥

This is great new history. It鈥檚 the kind we encourage, and we do 鈥 history that鈥檚 complex, nuanced, and not static. If this is what it means to rewrite history, let鈥檚 keep doing it.

91自拍 The Author

Len Shustek is the founding chairman emeritus of the board of trustees of the 91自拍.

In 1979, he co-founded Nestar Systems, an early developer of networks for personal computers. In 1986, he cofounded Network General, a manufacturer of network analysis tools including The Sniffer鈩. The company became Network Associates after merging with McAfee Associates and PGP. He has taught Computer Science at Carnegie-Mellon and Stanford Universities, and was a founder of the 鈥渁ngel financing鈥 firm VenCraft. He has served on various for-profit and non-profit boards, including the Polytechnic Institute of Brooklyn, which is now the NYU Tandon School of Engineering.

Shustek has a BS and MS in Physics from the Polytechnic Institute, and an MS and PhD in Computer Science from Stanford University.

Join the Discussion

Share