I would first like to thank Hackadai.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 a computer is in the first place and its history.

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.
       4. It optionally performs conditional branching, meaning it can make decisions based on its own outputs, which makes it a 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.
In short, computing is about encoding meaning in abstract 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. A computer is essentially a machine that encodes abstract rules into removable form, then mechanically executing those rules on symbols. The separation of software from hardware is the essence of computing in which everything else is built upon.

The computer did not happen at once, there exists an unbroken, documented list of programmable, automated computing machines. happening in different forms across centuries. In the electronic era the ENIAC used vacuum tubes instead of gears, electrical signals instead of mechanical motion and could add numbers at microseconds. But the ENIAC in 1945 is not the start of general-purpose computation, or even programmability, or automation, it just made all of these more faster and more practical.

The fundamental property of computers is programmability, everything else follows from this core principle. 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 is the one that moves backwards and forwards over the static sequence of code.

When Alan Turing published his abstract definition of universal-computing in 1936, said that for a computer to go from general-purpose to universal-purpose, it had to do conditional branching, 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. 

Computational capability is an intrinsic property of a mechanism, the actual architecture, and not about what its intended use is, for example the ENIAC was designed to calculate trajectories for weapons, but its architecture could calculate anything. The Z3 in 1938 realized this as well in practice, but instead of bulbs, were electromechanical relays, but it could also accept different programs, store different data, and execute different algorithms. But in 1837, Babbage’s steam powered analytical engine could do the same principles in theory, in a completely mechanical way it could manipulates symbols according to rules, store memory, and have conditional...

Read more »