I would first like to thank Hackaday.io for being the platform to make this contest possible, and secondly, I would like to broaden the spectrum of the definition of what computing is, because if we are going to think about retro-computing, then we need to define what computing is in the first place. A general-purpose computer can be defined as a mechanism, that is either mechanical or electrical, that:
1. It is programmable, meaning it separates instructions from execution, separates software from hardware.
2. It can manipulate symbols according to logical rules, in other words, a digital input can be transformed by applying logical rules and produce an output.
3. It optionally performs conditional branching, meaning it can make decisions based on its own outputs, which then makes it universal-purpose.
In other words a general-purpose computer is a machine that manipulates digital inputs according to logical rules and produces outputs, while being programmable, automated, and computationally capable. Must a computer be electronic to be a computer? No. from example an electric and a petrol car are both cars, the animating force does not change the its essence. A computer is essentially a machine that encodes abstract rules into removable form, then mechanically executing those rules on symbols, then executing those symbols automatically to portray the result in an analog format to the Human senses, whether it be music, woven cloth patterns, or colors on a screen.
Computing wasn't born in the twentieth century, it was really born whenever Humans first realized they could separate thought from action, encoding logic into removable medium and let a mechanism execute that perfectly. The separation of software from hardware is the essence of computing in which everything else is built upon.
There exists an unbroken, documented list of programmable, automated computing machines. happening in different forms across centuries. In the electronic era the ENIAC used electrical signals through vacuum tubes instead of mechanical gears, but the ENIAC in 1945 is not the start of general-purpose computation, or programmability, or even automation, it just made all of these more faster and more practical. The ENIAC is claimed to be the first general-purpose computer, but this claim is questionable, in many ways ENIAC was almost the end of computing.
Modern computers are typically defined as a machine that automatically interprets a changeable program not just as a sequence of actions, but as a set of rules for manipulating that sequence of actions. For example even if the program code is static even while it runs, the program counter can move backwards and forwards over the static sequence of code. But the fundamental property of computers is programmability, everything else follows from this core principle.
Computational capability is an intrinsic property of a mechanism, of the actual architecture, and not about its intended use, for example the ENIAC was designed to calculate ballistic trajectories, but its architecture could calculate anything. Before it, the Z3 in 1938 realized this as well in practice, but instead of bulbs, were electromechanical relays, yet it could also accept different programs, store different data, and execute different algorithms. Before that in 1837, Babbage’s steam powered analytical engine could do the same principles in theory, in a completely mechanical way, and could manipulate symbols according to rules, store memory, and have conditional branching, the essential components of a universal computer, meaning a mechanism that could interpret its own results and then alter its path through the program from that, in other words, using that output to control which other instructions reads next.
Computation didn’t emerge from the necessity of ballistic calculations, the incentive to separate logic from hands first emerged from artists and craftspeople...
Read more »
SpectrumView
brandonssmith
Blair Vidakovich