Back in the day…

In the navy, we would have called this a dit.

I did an electronic engineering apprenticeship in the Royal Navy and, in one of our classes, we had to build little circuits with actual transistors and resistors, wires and crocodile clips. We built AND gates and OR gates and XOR gates and NAND gates and all the rest.

File:TTL NAND OC.svg
NAND gate – Michael Frey

In the next class, they gave us little silicon chips that had AND, OR, XOR, etc gates built-in and we had to connect them all together to make adders and accumulators and hooked them up to 7-segment LED displays and switches to make a simple calculator. You can guess what comes next.

half adder circuit using NAND gates only
Half adder using NAND gates only – Nitianabhigyan

First, there was the Limrose Machine that you programmed by the toggling switches on the input port to make binary numbers.

Limrose Machine

Next up was the Zilog Z80 that we programmed in assembly language until finally, they taught us BASIC on a proper (circa 1984) computer.

When I finally made it on to HMS Southampton to do my sea training, I took turns to do watch-keeping in the computer room where there was an enormous (bigger than my living room) Ferranti FM1600-B computer that the ship used for target tracking and fire control.

It was like going back to the Limrose Machine after programming in BASIC.

This computer had 1k of RAM in about a cubic foot of magnetic core and was connected to all the ships systems via synchros. They were mechanical synchros mind you so, every time the gun turned or the radar tracked a target, you’d hear the Zzzzz of the synchros lining up.

The computer had no ROM. Its operating system was stored on 9-hole punched tape on these massive paper spools which the tape reader would dump into a big basket for the computer operator to re-spool by hand ready for next time.

Unfortunately the computer did not know how to read 9-hole tape but there was another spool of 5-hole tape with the instructions. If only the computer knew how to read 5-hole tape…

Fortunately, the computer operator (me!) had memorized the long series of 24 bit instructions to be entered on the bit switches on the panel of the Ferranti that would start the spool spooling.

This is not the computer. This is just the input panel.

When the computer crashed in the middle of the night (which it did, frequently) and the angry captain was calling (SHOUTING!) down from the Ops Room, the poor operator (me!) had to frantically remember the series of instructions to start that 5-hole tape spooling.

1101 0001 1000 1000 1000 1100
1001 0101 1100 0000 1011 1100
0101 1001 1010 1100 1100 1111
1111 0101 1100 1100 1000 1100
0101 0101 1000 1000 1000 1110

Then I had to enter a different series of instructions for the 9-hole tape. Then quickly, re-spool the paper tape in case it crashed again.

Good times.

Ferranti FM1600 B - Computer - Computing History
The computer is that big thing (in several cabinets) in the background. The thing in the foreground is the input panel.
Note the paper tape reader next to the input panel.
Note also the big blue bin where the paper got dumped as it was spooling.

After programming in Ruby and Rails for several years, Javascript and React feels like going back to the Limrose Machine.

React is so much better than Javascript sprinkles in so many ways but I still feel like I am connecting NAND gates with crocodile clips. It feels like there should be another layer of abstraction on top of React/Redux to hide some of the messiness.

Maybe all that stuff is out there and I just have not found it yet?