Изменить стиль страницы

Von Neumann was especially good at devising the fundamentals of computer programming, which was still an ill-defined craft that had advanced little in the century since Ada Lovelace wrote down the steps for getting the Analytical Engine to generate Bernoulli numbers. Creating an elegant instruction set, he realized, involved both rigorous logic and precise expression. “He was very thorough in explaining why we needed a particular instruction or why we could do without an instruction,” Jennings recounted. “It was the first time that I had ever realized the importance of instruction codes, the logic behind them and the ingredients that a whole instruction set must have.” It was a manifestation of his broader talent, which was to get to the essence of a new idea. “The thing that Von Neumann had, which I’ve noticed that other geniuses have, is the ability to pick out, in a particular problem, the one crucial thing that’s important.”55

Von Neumann realized that they were doing more than merely improving the ENIAC so that it could be reprogrammed more quickly. More significantly, they were fulfilling Ada’s vision by creating a machine that could perform any logical task on any set of symbols. “The stored-program computer, as conceived by Alan Turing and delivered by John von Neumann, broke the distinction between numbers that mean things and numbers that do things,” George Dyson wrote. “Our universe would never be the same.”56

In addition, von Neumann grasped, more readily than his colleagues, an important attribute of commingling data and programming instructions in the same stored memory. The memory could be erasable, what we now call read-write memory. This meant that the stored program instructions could be changed not just at the end of a run but anytime the program was running. The computer could modify its own program based on the results it was getting. To facilitate this, von Neumann came up with a variable-address program language that enabled an easy switch to substitute instructions while the program was running.57

The team at Penn proposed to the Army that a new and improved ENIAC be built along these lines. It would be binary rather than decimal, use mercury delay lines for memory, and include much, though not all, of what became known as “von Neumann architecture.” In the original proposal to the Army, this new machine was called the Electronic Discrete Variable Automatic Calculator. Increasingly, however, the team started referring to it as a computer, because it would do so much more than merely calculate. Not that it mattered. Everyone simply called it EDVAC.

Over the ensuing years, at patent trials and conferences, in books and dueling historical papers, there would be debates over who deserved the most credit for the ideas developed in 1944 and early 1945 that became part of the stored-program computer. The account above, for example, gives primary credit to Eckert and Mauchly for the stored-program concept and to von Neumann for realizing the importance of the computer’s ability to modify its stored program as it ran and for creating a variable-address programming functionality to facilitate this. But more important than parsing provenance of ideas is to appreciate how the innovation at Penn was another example of collaborative creativity. Von Neumann, Eckert, Mauchly, Goldstine, Jennings, and many others batted around ideas collectively and elicited input from engineers, electronics experts, material scientists, and programmers.

The Innovators: How a Group of Inventors, Hackers, Geniuses, and Geeks Created the Digital Revolution _86.jpg

John von Neumann (1903–57) in 1954.

The Innovators: How a Group of Inventors, Hackers, Geniuses, and Geeks Created the Digital Revolution _87.jpg

Herman Goldstine (1913–2004) circa 1944.

The Innovators: How a Group of Inventors, Hackers, Geniuses, and Geeks Created the Digital Revolution _88.jpg

Presper Eckert (center) and CBS’s Walter Cronkite (right) look at an election prediction from UNIVAC in 1952.

Most of us have been involved in group brainstorming sessions that produced creative ideas. Even a few days later, there may be different recollections of who suggested what first, and we realize that the formation of ideas was shaped more by the iterative interplay within the group than by an individual tossing in a wholly original concept. The sparks come from ideas rubbing against each other rather than as bolts out of the blue. This was true at Bell Labs, Los Alamos, Bletchley Park, and Penn. One of von Neumann’s great strengths was his talent—questioning, listening, gently floating tentative proposals, articulating, and collating—for being an impresario of such a collaborative creative process.

Von Neumann’s propensity to collect and collate ideas, and his lack of concern for pinning down precisely where they came from, was useful in sowing and fertilizing the concepts that became part of EDVAC. But it did sometimes rankle those more concerned about getting credit—or even intellectual property rights—where due. He once proclaimed that it was not possible to attribute the origination of ideas discussed in a group. Upon hearing that, Eckert is said to have responded, “Really?”58

The benefits and drawbacks of von Neumann’s approach became apparent in June 1945. After ten months of buzzing around the work being done at Penn, he offered to summarize their discussions on paper. And that is what he proceeded to do on a long train ride to Los Alamos.

In his handwritten report, which he mailed back to Goldstine at Penn, von Neumann described in mathematically dense detail the structure and logical control of the proposed stored-program computer and why it was “tempting to treat the entire memory as one organ.” When Eckert questioned why von Neumann seemed to be preparing a paper based on the ideas that others had helped to develop, Goldstine reassured him: “He’s just trying to get these things clear in his own mind and he’s done it by writing me letters so that we can write back if he hasn’t understood it properly.”59

Von Neumann had left blank spaces for inserting references to other people’s work, and his text never actually used the acronym EDVAC. But when Goldstine had the paper typed up (it ran to 101 pages), he ascribed sole authorship to his hero. The title page Goldstine composed called it “First Draft of a Report on the EDVAC, by John von Neumann.” Goldstine used a mimeograph machine to produce twenty-four copies, which he distributed at the end of June 1945.60

The “Draft Report” was an immensely useful document, and it guided the development of subsequent computers for at least a decade. Von Neumann’s decision to write it and allow Goldstine to distribute it reflected the openness of academic-oriented scientists, especially mathematicians, who tend to want to publish and disseminate rather than attempt to own intellectual property. “I certainly intend to do my part to keep as much of this field in the public domain (from the patent point of view) as I can,” von Neumann explained to a colleague. He had two purposes in writing the report, he later said: “to contribute to clarifying and coordinating the thinking of the group working on the EDVAC” and “to further the development of the art of building high speed computers.” He said that he was not trying to assert any ownership of the concepts, and he never applied for a patent on them.61

Eckert and Mauchly saw this differently. “You know, we finally regarded von Neumann as a huckster of other people’s ideas with Goldstine as his principal mission salesman,” Eckert later said. “Von Neumann was stealing ideas and trying to pretend work done at [Penn’s] Moore School was work he had done.”62 Jean Jennings agreed, later lamenting that Goldstine “enthusiastically supported von Neumann’s wrongful claims and essentially helped the man hijack the work of Eckert, Mauchly, and the others in the Moore School group.”63