History of computing
The history of computing is longer than the history of computing hardware and modern computing technology and includes the history of methods intended for pen and paper or for chalk and slate, with or without the aid of tables. The timeline of computing presents a summary list of major developments in computing by date.
Computing is intimately tied to the representation of numbers. But long before abstractions like the number arose, there were mathematical concepts to serve the purposes of civilization. These concepts are implicit in concrete practices such as :
- one-to-one correspondence, a rule to count how many items, say on a tally stick, eventually abstracted into numbers;
- comparison to a standard, a method for assuming reproducibility in a measurement, for example, the number of coins;
- the 3-4-5 right triangle was a device for assuring a right angle, using ropes with 12 evenly spaced knots, for example.
Eventually, the concept of numbers became concrete and familiar enough for counting to arise, at times with sing-song mnemonics to teach sequences to others. All known languages have words for at least "one" and "two" (although this is disputed: see Piraha language), and even some animals like the blackbird can distinguish a surprising number of items.
Advances in the numeral system and mathematical notation eventually led to the discovery of mathematical operations such as addition, subtraction, multiplication, division, squaring, square root, and so forth. Eventually the operations were formalized, and concepts about the operations became understood well enough to be stated formally, and even proven. See, for example, Euclid's algorithm for finding the greatest common divisor of two numbers.
By the High Middle Ages, the positional Hindu-Arabic numeral system had reached Europe, which allowed for systematic computation of numbers. During this period, the representation of a calculation on paper actually allowed calculation of mathematical expressions, and the tabulation of mathematical functions such as the square root and the common logarithm (for use in multiplication and division) and the trigonometric functions. By the time of Isaac Newton's research, paper or vellum was an important computing resource, and even in our present time, researchers like Enrico Fermi would cover random scraps of paper with calculation, to satisfy their curiosity about an equation. Even into the period of programmable calculators, Richard Feynman would unhesitatingly compute any steps which overflowed the memory of the calculators, by hand, just to learn the answer.
The earliest known tool for use in computation was the abacus, and it was thought to have been invented in Babylon circa 2400 BC. Its original style of usage was by lines drawn in sand with pebbles. Abaci, of a more modern design, are still used as calculation tools today. This was the first known computer and most advanced system of calculation known to date - preceding Greek methods by 2,000 years.
In 1110 BC, the south-pointing chariot was invented in ancient China. It was the first known geared mechanism to use a differential gear, which was later used in analog computers. The Chinese also invented a more sophisticated abacus from around the 2nd century BC known as the Chinese abacus).
In the 5th century BC in ancient India, the grammarian Pāṇini formulated the grammar of Sanskrit in 3959 rules known as the Ashtadhyayi which was highly systematized and technical. Panini used metarules, transformations and recursions.
In the 3rd century BC, Archimedes used the mechanical principle of balance (see Archimedes Palimpsest#Mathematical content) to calculate mathematical problems, such as the number of grains of sand in the universe (The sand reckoner), which also required a recursive notation for numbers, the myriad myriad ... .
The Antikythera mechanism is believed to be the earliest known mechanical analog computer. It was designed to calculate astronomical positions. It was discovered in 1901 in the Antikythera wreck off the Greek island of Antikythera, between Kythera and Crete, and has been dated to circa 100 BC.
Mechanical analog computer devices appeared again a thousand years later in the medieval Islamic world and were developed by Muslim astronomers, such as the mechanical geared astrolabe by Abū Rayhān al-Bīrūnī, and the torquetum by Jabir ibn Aflah. According to Simon Singh, Muslim mathematicians also made important advances in cryptography, such as the development of cryptanalysis and frequency analysis by Alkindus. Programmable machines were also invented by Muslim engineers, such as the automatic flute player by the Banū Mūsā brothers, and Al-Jazari's humanoid robots and castle clock, which is considered to be the first programmable analog computer.
During the Middle Ages, several European philosophers made attempts to produce analog computer devices. Influenced by the Arabs and Scholasticism, Majorcan philosopher Ramon Llull (1232–1315) devoted a great part of his life to defining and designing several logical machines that, by combining simple and undeniable philosophical truths, could produce all possible knowledge. These machines were never actually built, as they were more of a thought experiment to produce new knowledge in systematic ways; although they could make simple logical operations, they still needed a human being for the interpretation of results. Moreover, they lacked a versatile architecture, each machine serving only very concrete purposes. In spite of this, Llull's work had a strong influence on Gottfried Leibniz (early 18th century), who developed his ideas further, and built several calculating tools using them.
Indeed, when John Napier discovered logarithms for computational purposes in the early 17th century, there followed a period of considerable progress by inventors and scientists in making calculating tools. The apex of this early era of formal computing can be seen in the difference engine and its successor the analytical engine (which was never completely constructed but was designed in detail), both by Charles Babbage. The analytical engine combined concepts from his work and that of others to create a device that if constructed as designed would have possessed many properties of a modern electronic computer. These properties include such features as an internal "scratch memory" equivalent to RAM, multiple forms of output including a bell, a graph-plotter, and simple printer, and a programmable input-output "hard" memory of punch cards which it could modify as well as read. The key advancement which Babbage's devices possessed beyond those created before his was that each component of the device was independent of the rest of the machine, much like the components of a modern electronic computer. This was a fundamental shift in thought; previous computational devices served only a single purpose, but had to be at best disassembled and reconfigured to solve a new problem. Babbage's devices could be reprogramed to solve new problems by the entry of new data, and act upon previous calculations within the same series of instructions. Ada Lovelace took this concept one step further, by creating a program for the analytical engine to calculate Bernoulli numbers, a complex calculation requiring a recursive algorithm. This is considered to be the first example of a true computer program, a series of instructions that act upon data not known in full until the program is run.
Several examples of analog computation survived into recent times. A planimeter is a device which does integrals, using distance as the analog quantity. Until the 1980s, HVAC systems used air both as the analog quantity and the controlling element. Unlike modern digital computers, analog computers are not very flexible, and need to be reconfigured (i.e., reprogrammed) manually to switch them from working on one problem to another. Analog computers had an advantage over early digital computers in that they could be used to solve complex problems using behavioral analogues while the earliest attempts at digital computers were quite limited.
Since computers were rare in this era, the solutions were often hard-coded into paper forms such as nomograms, which could then produce analog solutions to these problems, such as the distribution of pressures and temperatures in a heating system.
None of the early computational devices were really computers in the modern sense, and it took considerable advancement in mathematics and theory before the first modern computers could be designed.
The ENIAC (Electronic Numerical Integrator And Computer) was the first electronic general-purpose computer, announced to the public in 1946. It was Turing-complete, digital, and capable of being reprogrammed to solve a full range of computing problems.
Starting with known special cases, the calculation of logarithms and trigonometric functions can be performed by looking up numbers in a mathematical table, and interpolating between known cases. For small enough differences, this linear operation was accurate enough for use in navigation and astronomy in the Age of Exploration. The uses of interpolation have thrived in the past 500 years: by the twentieth century Leslie Comrie and W.J. Eckert systematized the use of interpolation in tables of numbers for punch card calculation.
In our time, even a student can simulate the motion of the planets, an N-body differential equation, using the concepts of numerical approximation, a feat which even Isaac Newton could admire, given his struggles with the motion of the Moon.
The numerical solution of differential equations, notably the Navier-Stokes equations was an important stimulus to computing, with Lewis Fry Richardson's numerical approach to solving differential equations. To this day, some of the most powerful computer systems on Earth are used for weather forecasts.
- Charles Babbage Institute - research center for history of computing at University of Minnesota
- Computing timelines category
- History of software
- Index of history of computing articles
- IT History Society
- List of mathematicians
- Timeline of quantum computing
- Konrad Lorenz, King Solomon's Ring
- "DIY: Enrico Fermi’s Back of the Envelope Calculations".
- Sinha, A. C. (1978). "On the status of recursive rules in transformational grammar". Lingua 44 (2–3): 169. doi:10.1016/0024-3841(78)90076-1.
- The Antikythera Mechanism Research Project, The Antikythera Mechanism Research Project. Retrieved 2007-07-01
- "Islam, Knowledge, and Science". University of Southern California. Retrieved 2008-01-22.
- Lorch, R. P. (1976), "The Astronomical Instruments of Jabir ibn Aflah and the Torquetum", Centaurus 20 (1): 11–34, Bibcode:1976Cent...20...11L, doi:10.1111/j.1600-0498.1976.tb00214.x
- Simon Singh, The Code Book, pp. 14-20
- "Al-Kindi, Cryptgraphy, Codebreaking and Ciphers". Retrieved 2007-01-12.
- Koetsier, Teun (2001), "On the prehistory of programmable machines: musical automata, looms, calculators", Mechanism and Machine Theory (Elsevier) 36 (5): 589–603, doi:10.1016/S0094-114X(01)00005-2..
- Ancient Discoveries, Episode 11: Ancient Robots, History Channel, retrieved 2008-09-06[dead link]
- Steinhaus, H. (1999). Mathematical Snapshots (3rd ed.). New York: Dover. pp. 92–95, p. 301.
- The History of Computing by J.A.N. Lee
- "Things that Count: the rise and fall of calculators"
- The History of Computing Project
- SIG on Computers, Information and Society of the Society for the History of Technology
- The Modern History of Computing
- Cringely's "Triumph of the Nerds"
- Top 25 Days in Computing History
- A Chronology of Digital Computing Machines (to 1952) by Mark Brader
- Bitsavers, an effort to capture, salvage, and archive historical computer software and manuals from minicomputers and mainframes of the 50s, 60s, 70s, and 80s
- Cyberhistory (2002) by Keith Falloon. UWA digital thesis repository.
- Arithmometre.org, The reference about Thomas de Colmar's arithmometers
- Yahoo Computers and History
- "All-Magnetic Logic Computer". Timeline of Innovations. SRI International. Developed at SRI International in 1961
- Famous Names in the History of Computing. Free source for history of computing biographies.
- Stephen White's excellent computer history site (the above article is a modified version of his work, used with Permission)
- Soviet Calculators Collection - a big collection of Soviet calculators, computers, computer mices and other devices
- Logarithmic timeline of greatest breakthroughs since start of computing era in 1623 by Jürgen Schmidhuber, from "The New AI: General & Sound & Relevant for Physics, In B. Goertzel and C. Pennachin, eds.: Artificial General Intelligence, p. 175-198, 2006."
- IEEE computer history timeline
- Konrad Zuse, inventor of first working programmable digital computer by Jürgen Schmidhuber
- The Moore School Lectures and the British Lead in Stored Program Computer Development (1946–1953), article from Virtual Travelog
- Technology— and-Society/STS-035Spring2004/CourseHome/index.htm MIT STS.035 — History of Computing from MIT OpenCourseWare for undergraduate level
- Key Resources in the History of Computing
- Italian computer database of brands
- Computer History - a collection of articles by Bob Bemer
- YouTube video comparing 1980s home computers to 2010s technology
- A visual timeline of the development of computers since COLOSSUS' inception in 1943
- History of Computing Visualisation
- Resurrection Bulletin of the Computer Conservation Society (UK) 1990–2006
- The story of the Manchester Mark I, 50th Anniversary website at the University of Manchester
- Richmond Arabian History of Computing Group Linking the Gulf and Europe
Computer History Museums