Why Were Computers Invented?
The societal changes that motivated the invention of the first computers
Early computers may not have looked very different from calculators: They had no screens, mouse, or keyboard. Instead, they had multiple switches to input numbers or a punched tape reader and writer. Long lists of numbers could be read in sequence from a paper tape perforated with small holes to encode numbers. The same approach could be used to write out calculation results.
The key thing that separated early computers from mere calculators was that they could repeat operations conditionally. An early motivator to create computers was the need to perform numerous repeated calculations. My imaginary Calcutron-33 computer was developed to mimic behavior of early computer systems, while still following modern ideas around microprocessor design, such as having a RISC (reduced instruction set computer) inspired architecture.
The following Calcutron-33 assembly code program is an example of a program which repeatedly adds numbers read from input using the INP
instruction and writes results to output using the OUT
instruction. Text after the //
characters represent comments and are ignored by the computer.
start:
INP x1 // read input into register x1
INP x2 // read input into register x2
ADD x3, x2, x1 // add x1 to x2 and store in x3
OUT x3 // write register x3 to output
JMP start // jump back to start of program
An important part of this program is the JMP
instruction, which allows us to jump back to the beginning of the program, and repeat the same instructions over and over again. The label start:
marks the beginning of the program. Such an assembly program can have many different labels to allow the computer running the program to jump to several locations in the program.
What sort of input and output does INP
and OUT
actually deal with? It doesn't really matter what kind of I/O they represent. Personally, I like to imagine the input and output as punched paper tape. Yet, they could also come from some kind of network communications, magnetic tape or manual user input from a numerical keyboard. The specifics don't matter.
While the preceding program is elementary, it accomplishes something, you cannot achieve with a calculator: processing large amounts of data automatically. But wouldn't humans need to punch in these numbers anyway? Indeed, but data could be recorded in numerous ways. One example is having cash registers automatically recording sales by punching a paper tape:
NCR of Dayton, Ohio, made cash registers around 1970 that would punch paper tape. Sweda made similar cash registers around the same time. The tape could then be read into a computer and not only could sales information be summarized, billings could be done on charge transactions. The tape was also used for inventory tracking, recording department and class numbers of items sold.
Another example is from long-distance communications. For instance, telegraphy gradually evolved into a system to transmit and receive data using teletype machines in the 1850s. A teletype is akin to a typewriter capable of reading and writing punched tapes and later transmit those tapes over a telegraph line. Thus, data recorded far away could be transmitted to a central computer capable of processing data large amounts of data stored on a punched tape.
Surveys, inventory and other statistics got punched onto paper cards which could get converted into punched tape. Thus, while reading a stream of numbers and output a stream of numbers may look primitive by today's standards, it opened up the possibility of performing complex statistics much faster than a human could achieve by manually operating a calculator.
The seed to develop computers were sown during the Age of Enlightenment in the 17th century: science and mathematics assumed an ever larger role in society. Areas that had been mostly based on experience such as firing a cannon turned into the science of ballistics. Fort construction became a highly scientific endeavor with the advent of the star shaped bastion forts. All these new fields required large number of calculations to be performed.
The need for computers to calculate mathematical tables
In the age of sail (16th to 19th century) the use of mathematical tables became more widespread, and a need to develop ways to automate the calculation of these tables developed. Navigation is based on the calculation of angles and the sides of triangles. This meant calculating trigonometric functions such as sine, cosine, and tangent.
Keep reading with a 7-day free trial
Subscribe to Erik Explores to keep reading this post and get 7 days of free access to the full post archives.