The switches used in most early computers were electromechanical relays, developed for the telephone system, but they soon gave way to vacuum tubes, which could turn an electric current on or off much more quickly. The first large-scale, all-electronic computer, ENIAC, took shape late in the war at the University of Pennsylvania's Moore School of Electrical Engineering under the guidance of John Mauchly and John Presper Eckert. Like the Mark I, it was huge—30 tons, 150 feet wide, with 20 banks of flashing lights—and it too was intended for ballistics calculations, but ENIAC could process numbers a thousand times faster. Even before it was finished, Mauchly and Eckert were making plans for a successor machine called EDVAC, conceived with versatility in mind.
Although previous computers could shift from one sort of job to another if given new instructions, this was a tedious process that might involve adjusting hundreds of controls or unplugging and replugging a forest of wires. EDVAC, by contrast, was designed to receive its instructions electronically; moreover, the program, coded in zeros and ones, would be kept in the same place that held the numbers the computer would be processing. This approach—letting a program treat its own instructions as data—offered huge advantages. It would accelerate the work of the computer, simplify its circuitry, and make possible much more ambitious programming. The stored-program idea spread rapidly, gaining impetus from a lucid description by one of the most famous mathematicians in the world, John von Neumann, who had taken an interest in EDVAC.
Building such a machine posed considerable engineering challenges, and EDVAC would not be the first to clear the hurdles. That honor was claimed in the spring of 1949 by a 3,000-tube stored-program computer dubbed EDSAC, the creation of British mathematical engineer Maurice Wilkes, of Cambridge University.