Among the principles enunciated in the paper were that data and instructions should be kept in a single store and that instructions should be encoded so as to be modifiable by other instructions. This was an extremely critical decision, because it meant that one program could be treated as data by another program. The German engineer Konrad Zuse had considered and rejected this possibility as too dangerous for his Zuse computers. But its inclusion by von Neumann’s group made possible high-level computer programming languages and most of the advances in software of the following 50 years. Subsequently, computers with stored programs were known as von Neumann machines.

One problem that the stored-program idea solved was the need for rapid access to instructions. ENIAC had used plugboards, which had the advantage of enabling the instructions to be read electronically, rather than by much slower mechanical card readers, but it also had the disadvantage of making ENIAC very hard to program. But if the instructions could be stored in the same electronic memory that held the data, they could be accessed as quickly as needed. One immediately obvious consequence was that future computers would need a lot more memory than ENIAC.