logoalt Hacker News

mrobtoday at 10:31 AM3 repliesview on HN

The Z3 was only general purpose by accident, and this was only discovered in 1997 (published 1998). [0] It's only of theoretical interest because the technique required is too inefficient for real-world applications.

ENIAC is notable because it was the first intentionally general purpose computer to be built.

[0] https://www.inf.fu-berlin.de/inst/ag-ki/rojas_home/documents...


Replies

adrian_btoday at 11:04 AM

I do not think that it is right at all to say "intentionally general purpose computer".

ENIAC was built for a special purpose, the computation of artillery tables.

It was a bespoke computer built for a single customer: the United States Army's Ballistic Research Laboratory.

This is why it has been designed as the digital electronic equivalent of the analog mechanical computers that were previously used by the Army and why it does not resemble at all what is now meant by "general-purpose computer".

The computers of Aiken and Zuse were really intentionally general-purpose, their designers did not have in mind any specific computation, which is why they were controlled by a program memory, not by a wiring diagram.

What you claim about Z3 being general purpose by accident does not refer to the intention of its designer, but only to the fact that its instruction set was actually powerful enough by accident, because at that early time it was not understood which kinds of instructions are necessary for completeness.

All the claims made now about ENIAC being general-purpose are retroactive. Only after the war ended and the concept of a digital computer became well understood, the ENIAC was repurposed to also do other tasks than originally planned.

The first truly general-purpose electronic digital computers that were intentionally designed to be so were those designed based on the von Neumann report.

Before the completion of the first of those, there were general-purpose hybrid electronic-electromechanical digital computers, IBM SSEC being the most important of them, which solved a lot of scientific and technical problems, before electronic computers became available.

Rochustoday at 12:27 PM

> The Z3 was only general purpose by accident ... ENIAC [..] was the first intentionally general purpose computer

That's a pretty academic take. Neither Eckert, nor Mauchly, nor Zuse knew about Alan Turing’s 1936 paper when they designed their machines. The classification of ENIAC (and the Z3) as a "universal Turing machine" is entirely a retroactive reinterpretation by later computer scientists. John von Neumann knew the paper and was aware of its significance, but he only turned up in the ENIAC project when the design was complete. At this time, Eckert and Mauchly were already well aware of ENIAC's biggest flaw (the massive effort to reprogram the machine, and in fact they came up with the stored-program concept which von Neumann later formalized). ENIAC’s funding and primary justification were for the very specific purpose of calculating artillery firing tables for the military. The machine was built for this purpose, which included the feature which retroactively led to the mentioned classification.

ahartmetztoday at 10:47 AM

Still feels like history written by the victors (of WW2 and computing, eventually) in this case. If you want to be mathematically precise, it's been proven to be Turing-complete. If you want to use common sense (IMO better), it was one of the most significant leaps in automated computation and simply didn't need to do more for its intended applications. For conditional branches to make sense, you also need a fast temporary storage array (since it would be awfully slow running directly off tape like a Turing machine), and to realize that all that effort makes sense, you first need to play with a computer for a while and discover the new possibilities.