Main article:
History of computer hardwareThe
Jacquard loom was one of the first programmable devices.
It is difficult to identify any one device as the earliest computer, partly because the term "computer" has been subject to varying interpretations over time. Originally, the term "computer" referred to a person who performed numerical calculations (a
human computer), often with the aid of a
mechanical calculating device.
The history of the modern computer begins with two separate technologies - that of automated calculation and that of programmability.
Examples of early mechanical calculating devices included the
abacus, the
slide rule and arguably the
astrolabe and the
Antikythera mechanism (which dates from about 150-100 BC).
Hero of Alexandria (c. 10–70 AD) built a mechanical theater which performed a play lasting 10 minutes and was operated by a complex system of ropes and drums that might be considered to be a means of deciding which parts of the mechanism performed which actions and when.
[3] This is the essence of programmability.
The "castle clock", an
astronomical clock invented by
Al-Jazari in 1206, is considered to be the earliest
programmable analog computer.
[4] It displayed the
zodiac, the
solar and
lunar orbits, a
crescent moon-shaped
pointer travelling across a gateway causing
automatic doors to open every
hour,
[5][6] and five
robotic musicians who play music when struck by
levers operated by a
camshaft attached to a
water wheel. The length of
day and
night could be re-programmed every day in order to account for the changing lengths of day and night throughout the year.
[4]The end of the
Middle Ages saw a re-invigoration of European mathematics and engineering, and
Wilhelm Schickard's 1623 device was the first of a number of mechanical calculators constructed by European engineers. However, none of those devices fit the modern definition of a computer because they could not be programmed.
In 1801,
Joseph Marie Jacquard made an improvement to the
textile loom that used a series of
punched paper cards as a template to allow his loom to weave intricate patterns automatically. The resulting Jacquard loom was an important step in the development of computers because the use of punched cards to define woven patterns can be viewed as an early, albeit limited, form of programmability.
It was the fusion of automatic calculation with programmability that produced the first recognizable computers. In 1837,
Charles Babbage was the first to conceptualize and design a fully programmable mechanical computer that he called "The
Analytical Engine".
[7] Due to limited finances, and an inability to resist tinkering with the design, Babbage never actually built his Analytical Engine.
Large-scale automated data processing of punched cards was performed for the
U.S. Census in 1890 by
tabulating machines designed by
Herman Hollerith and manufactured by the
Computing Tabulating Recording Corporation, which later became
IBM. By the end of the 19th century a number of technologies that would later prove useful in the realization of practical computers had begun to appear: the
punched card,
Boolean algebra, the
vacuum tube (thermionic valve) and the
teleprinter.
During the first half of the 20th century, many scientific computing needs were met by increasingly sophisticated
analog computers, which used a direct mechanical or
electrical model of the problem as a basis for
computation. However, these were not programmable and generally lacked the versatility and accuracy of modern digital computers.
Defining characteristics of some early digital computers of the 1940s (In the
history of computing hardware)
Name
First operational
Numeral system
Computing mechanism
ProgrammingTuring completeZuse Z3 (Germany)
May 1941
BinaryElectro-mechanicalProgram-controlled by punched
film stockYes (
1998)
Atanasoff–Berry Computer (US)
mid-1941
BinaryElectronicNot programmable—single purpose
No
Colossus (UK)
January 1944
BinaryElectronicProgram-controlled by patch cables and switches
No
Harvard Mark I – IBM ASCC (US)
1944
DecimalElectro-mechanicalProgram-controlled by 24-channel
punched paper tape (but no conditional branch)
No
ENIAC (US)
November 1945
DecimalElectronicProgram-controlled by patch cables and switches
Yes
Manchester Small-Scale Experimental Machine (UK)
June 1948
BinaryElectronicStored-program in
Williams cathode ray tube memoryYes
Modified ENIAC (US)
September 1948
DecimalElectronicProgram-controlled by patch cables and switches plus a primitive read-only stored programming mechanism using the Function Tables as program
ROMYes
EDSAC (UK)
May 1949
BinaryElectronicStored-program in mercury
delay line memoryYes
Manchester Mark I (UK)
October 1949
BinaryElectronicStored-program in
Williams cathode ray tube memory and
magnetic drum memory
Yes
CSIRAC (Australia)
November 1949
BinaryElectronicStored-program in mercury
delay line memoryYes
A succession of steadily more powerful and flexible computing devices were constructed in the 1930s and 1940s, gradually adding the key features that are seen in modern computers. The use of digital electronics (largely invented by
Claude Shannon in 1937) and more flexible programmability were vitally important steps, but defining one point along this road as "the first digital electronic computer" is difficult
(Shannon 1940). Notable achievements include:
EDSAC was one of the first computers to implement the stored program (
von Neumann) architecture.
Konrad Zuse's
electromechanical "Z machines". The
Z3 (1941) was the first working machine featuring
binary arithmetic, including floating point arithmetic and a measure of programmability. In 1998 the Z3 was proved to be
Turing complete, therefore being the world's first operational computer.
The non-programmable
Atanasoff–Berry Computer (1941) which used vacuum tube based
computation, binary numbers, and
regenerative capacitor memory.
The secret British
Colossus computers (1943)
[8], which had limited programmability but demonstrated that a device using thousands of tubes could be reasonably reliable and electronically reprogrammable. It was used for
breaking German wartime codes.
The
Harvard Mark I (1944), a large-scale electromechanical computer with limited programmability.
The U.S. Army's
Ballistics Research Laboratory ENIAC (1946), which used
decimal arithmetic and is sometimes called the first general purpose
electronic computer (since
Konrad Zuse's
Z3 of 1941 used
electromagnets instead of
electronics). Initially, however, ENIAC had an inflexible architecture which essentially required rewiring to change its programming.
Several developers of ENIAC, recognizing its flaws, came up with a far more flexible and elegant design, which came to be known as the "stored program architecture" or
von Neumann architecture. This design was first formally described by
John von Neumann in the paper
First Draft of a Report on the EDVAC, distributed in 1945. A number of projects to develop computers based on the stored-program architecture commenced around this time, the first of these being completed in
Great Britain. The first to be demonstrated working was the
Manchester Small-Scale Experimental Machine (SSEM or "Baby"), while the
EDSAC, completed a year after SSEM, was the first practical implementation of the stored program design. Shortly thereafter, the machine originally described by von Neumann's paper—
EDVAC—was completed but did not see full-time use for an additional two years.
Nearly all modern computers implement some form of the stored-program architecture, making it the single trait by which the word "computer" is now defined. While the technologies used in computers have changed dramatically since the first electronic, general-purpose computers of the 1940s, most still use the von Neumann architecture.
Microprocessors are miniaturized devices that often implement stored program
CPUs.
Computers that used
vacuum tubes as their electronic elements were in use throughout the 1950s. Vacuum tube electronics were largely replaced in the 1960s by
transistor-based electronics, which are smaller, faster, cheaper to produce, require less power, and are more reliable. In the 1970s,
integrated circuit technology and the subsequent creation of
microprocessors, such as the
Intel 4004, further decreased size and cost and further increased speed and reliability of computers. By the 1980s, computers became sufficiently small and cheap to replace simple mechanical controls in domestic appliances such as
washing machines. The 1980s also witnessed
home computers and the now ubiquitous
personal computer. With the evolution of the
Internet, personal computers are becoming as common as the
television and the
telephone in the household.