eolas/zk/The_History_of_Computing_Swade.md

230 lines
9.5 KiB
Markdown
Raw Normal View History

2024-08-23 09:00:03 +01:00
---
2024-08-26 09:00:03 +01:00
title: The_History_of_Computing_Swade
tags: [literature, computer-history]
2024-08-23 09:00:03 +01:00
created: Friday, August 23, 2024
---
| Title | Author | Publication date | Resource type |
| --------------------------------------------------- | ----------- | ---------------- | ------------- |
| The History of Computing: A Very Short Introduction | Doron Swade | 2022 | Book |
## Timeline
A typical timeline approach rooted in major innovations.
- Ancient aids to counting: knotted cords and notched sticks
- Ancient aids to calculation: counting boards and abacii
- Early mechanical calculator devices in the 17th century (number wheels,
Pascal, Leibniz)
- Modern aids to calculation: slide rules following the discovery of
[logarithms](Logarithms.md)
2024-08-23 13:00:03 +01:00
- Mechanised, automated calculating engines of Babbage in the 19th century
2024-08-23 09:00:03 +01:00
- Punched-card machines leading to IBM in the early 20th century
- Analogue and electro-mechanical computers of the early 20th century inclusive
of wartime computers
- Early valve-based (vacuum-tubed) digital computers (again wartime and early
Cold War)
- The invention of the transistor and first fully-digital computers
- The invention of [integrated_circuits](Integrated_circuits.md)
- Supercomputers
- Minicomputers
- Consumer personal computers
- Internet and later, Web
- Smart phones
2024-08-23 13:00:03 +01:00
2024-08-26 09:00:03 +01:00
First three phases of digital electronic computers:
- Wartime up to 1950s vacuum-tube era
- Transistor era up to 1963
- First microchip era ending in early 1970s
2024-08-23 13:00:03 +01:00
## Mechanical calculating devices in the 17th century
Focus was chiefly on creating a desktop calculator capable of four-function
arithmetic.
![Photograph of Pascaline](../img/pascaline.jpg)
![Photograph of replica of Leibniz stepped drum machine](../img/leibniz-stepped-drum.jpg)
2024-08-26 09:00:03 +01:00
The main contenders were the Pascaline of #Pascal (which only did cumulative
addition) and the wheel or "stepped drum" calculator of #Leibniz that could do
all operations (in theory).
2024-08-23 13:00:03 +01:00
Subsequent designs were based on these artefacts. In practice, neither worked
consistently well with the carriage of tens remaining a sticking point.
![Photograph of Arithmometer](../img/arithmometer.jpg)
![Photograph of Comptometer](../img/comptometer.png)
The arithmometer (crank driven) and comptometer (key-driven) were descendents of
the Leibniz design that became commercially viable by the 19th century along
with other mechanical calculators. In the US, Burroughs dominated the market.
## Babbage: mechanized, automated calculation
2024-08-26 09:00:03 +01:00
> I wish to God these calculations had been executed by Steam (#Babbage)
2024-08-23 13:00:03 +01:00
With Babbage's machines we see an approach to computation that can only be
understood against the backdrop of the Industrial Revolution in which they were
conceived.
The idea is that the machine is a factory and number is the product. In the same
way as the mechanised looms created textiles. It is the extension of a model of
industrial production from goods/commodities to information.
Babbage conceived two machines: the Difference Engine (DE) and the Analytical
Engine (AE). Neither were successfully built in his lifetime. The DE preceded
the AE and was basically an advanced mechanical calculator whereas the AE
approximated a general purpose computer.
2024-08-26 09:00:03 +01:00
Despite this, with the Difference Engine, in contrast to preceding _aids to
calculation_, the steps of the computational algorithm were no longer directed
by human intelligence but by internal rules embodied in the mechanism and
automatically generated.
### Difference Engine
2024-08-23 13:00:03 +01:00
The DE's single purpose was to calculate and output mathematical tables such as
the results of polynomial equations. The idea was that you would input the
variables of the equation and activate the machine and it would output the
results. Associated with this concept was the idea that once it arrived at the
2024-08-26 09:00:03 +01:00
answer a bell would ring and the machine would _halt_. This influenced #Turing
2024-08-23 13:00:03 +01:00
later. It was non-programmable and designed for a specific set of calculations.
2024-08-26 09:00:03 +01:00
### Analytical Engine
2024-08-23 13:00:03 +01:00
Conceived as a general-purpose computing machine capable of perfoming a wide
range of calculations, programmable using punched cards similar to those used
with Jacquard looms.
It more resembled modern computers in that Babbage used concepts that would
2024-09-09 17:00:03 +01:00
later translate into the #vonNeumann architecture. There was a "mill" (CPU),
2024-08-23 13:00:03 +01:00
"store" (memory) and input/output mechanisms. It also had a concept of looping
and conditional branching.
2024-08-26 09:00:03 +01:00
### Lovelace's insight
A central idea of Ada #Lovelace, expressed in her notes on the Analytical Engine
is that **number can represent entities other than quantity**.
2024-09-09 17:00:03 +01:00
If we assign meaning to number, results arrived at by operating on number
2024-08-26 09:00:03 +01:00
according to rules can say things about the world when mapped back onto the
world using the meanings assigned to them.
2024-09-09 17:00:03 +01:00
Lovelace's insight was that the potential of computing lay in the power of
2024-08-26 09:00:03 +01:00
machines to manipulate representations of the world contained in symbols.
## Analogue computers
Both digital and analogue computers are automatic. They differ in _how they
represent quantities_ and how their outputs are derived.
With digital machines, quantity is represented as a string of discrete digits.
With analogue machines, quantity is a physical property _in itself_ rather than
2024-09-09 17:00:03 +01:00
a representation. This could be, for example: the lowering of a weight, the flow
of a liquid, or an electrical charge. This physical behaviour is **analagous**
to the system that is being modelled. Quantities are continuously variable
values rather than discrete (discontinuous values).
2024-08-26 09:00:03 +01:00
Digital machines produce results by _calculation_ whereas analogue machines
produce results by _measurement_, e.g. the height of liquid in a tank or the
2024-09-09 17:00:03 +01:00
time it taks for a tank to be emptied.
2024-08-26 09:00:03 +01:00
2024-09-09 17:00:03 +01:00
### Examples of analogue computers
2024-08-26 10:00:04 +01:00
#### The Phillips Hydraulic Computer
This used fluid to model the workings of the British economy. It consisted of a
series of transparent plastic tanks and pipes which were fastened to a wooden
board.
![Philips Hydraulic Computer](../img/hydraulic_computer.jpg)
Each tank represented some aspect of the UK national economy and the flow of
money around the economy was illustrated by coloured water. At the top of the
board was a large tank called the treasury. Water (representing money) flowed
from the treasury to other tanks representing the various ways in which a
country could spend its money. For example, there were tanks for health and
education. To increase spending on health care a tap could be opened to drain
water from the treasury to the tank which represented health spending.
#### Bush's Differential Analyser
This was designed to solve differential equations by integration. In contrast to
the Philips Computer it was general enough to be used to solve problems from
different contexts. Examples of these contexts: heat flow, ballistics,
mechanics, population growth, chemical interactions, astronomy.
2024-09-13 07:00:03 +01:00
<img src="../img/differential_analyser_bush.jpg" />
2024-08-26 10:00:04 +01:00
![Differential Analyser](../img/differential_analyser_bush.jpg)
2024-09-09 17:00:03 +01:00
It was about the size of a room and used shafts, motors, discs and wheels to
2024-08-26 10:00:04 +01:00
work.
2024-08-26 09:00:03 +01:00
### Historiography
There is a tendency in the history of computing to downplay or diminish the
contribution of analogue computing devices and to present them as just an
inferior precursor to the inevitable dominance of digital electronic computers.
This is ahistorical and inaccurate.
Analogue (and electromechanical devices) overlapped with and coexisted with
digital devices for 40 years, spanning the first three generations of digital
electronic devices. The term "analogue" itself only came about when the need
2024-09-09 17:00:03 +01:00
arose to distinguish digital devices from other types of computer. They were not
2024-08-26 09:00:03 +01:00
"rivals" before this.
2024-09-09 18:00:03 +01:00
### Electro-mechanical computers
2024-08-26 09:00:03 +01:00
Electro-mechanical devices (also known as "electronic analogue computers") are a
2024-09-09 17:00:03 +01:00
sort of midway between full digital devices and analogue computers, forming a
bridge between the two eras.
2024-08-26 09:00:03 +01:00
Their heyday was roughly 1935 - 1945.
2024-09-09 17:00:03 +01:00
Their key components were:
- [relays](Relays.md) for logic operations
- rotating shafts and gears for performing calculations
- punched cards or paper tape for input instructions and outputs
They were slower than fully digital computers as they were limited by the speed
2024-09-09 18:00:03 +01:00
- [ ] of moving components rather than the flow of electric charge. In addition
the various mechanical parts were prone to wear and needed frequent
replacement.
### Examples of electro-mechanical computers
#### Harvard Mark 1 (1937-1944) - Aikin, IBM
Designed by Howard Aiken and built by IBM (1937-1944). Also known as the
_Automatic Sequence Controlled Calculator_ (ASCC). A general-purpose
electro-mechanical computer it was most famously used at Los Alamos by
#vonNeumann to calculate the blast yield of the atomic bomb.
![Harvard Mark One](../img/Harvard_Mark_1.jpg)
It was more than 15m in length and weighed 5 tonnes comprising over 750,000
parts. It used paper tape and punched cards for input/output.
#### Complex Number Calculator (1940) - Bell Labs, Stibitz
Not general purpose nor was it programmable. It was hardwired to perform a
specific set of operations on numbers and nothing else. It used relays like the
others. Its distinguishing feature was that it used a teletype for input rather
than cards or paper tape.
![Calculating panel of the CMC](../img/complex-number-calculator-bell-labs.jpg)
![Teletype input of CMC](../img/stibitz-teletype.jpg)
It comprised a panel (the calculating unit) and teletype (the input). One could
remotely access the computer from the teletype in another location, providing it
was connected to Bell Lab's telephone network.