The Birth of Modern Computing
and Programming Ideas


1200: The Abacus

While the first abacus appeared around 300BC, the first sign of the abacus as we know it was in China during the 1200's AD. This simple, yet effective device used to aid in calculations, revolutionized the trade industry and is still used to this day in many countries. The programming language of the abacus was a set of rules the operator would use while making calculations. Even though it is a rudamentary form of RAM, the beads would hold the values of the calculations the operator had performed in his or her mind.


The Modern Abacus


1642: The Pascaline Automatic Calculator

Thanks in part to the period in history known as the Dark Ages, it wasn't till almost 450 years later that the first major advancement in computing was made. Blaise Pascal, a French philosopher who lived from 1623-1662, invented the first workable automatic calculator.


Blaise Pascal

The "Pascaline" as it was called, was very advanced for its time and thus went largely unused due to it being too complicated to operate. It used a series of dials that would be turned to represent the numerical values the user wished to add together, automatically carrying over numbers from one position to the next.


The Pascaline Automatic Calculator


1673 - 1694: The Leibniz Calculator

Eleven years after the death of Blaise Pascal, a young and energetic German lawyer by the name of Gottfried Wilhelm von Leibniz, who lived from 1646-1716, began to develop an improved version of the Pascaline automatic calculator.


Gottfried Wilhelm von Leibniz

Unlike Pascal, von Leibniz was able to successfully introduce an automatic calculator into the business marketplace of his day. Originally designed in 1673 and first built in 1694, the Leibniz Calculator had the ability to add, subtract, multiply, and divide. By using wheels placed at right angles which could be displaced by a special stepping mechanism, it could perform rapid multiplication or division. Just as with the Pascaline, the Leibniz Calculator required that the operator using the device had to understand how to turn the wheels and thus, know the "programming language" of the calculator.


Leibniz Calculator


1820: The Arithmometer

Charles Xavior Thomas of Colmar, France, is the first to manufacture mechanical calculating machines as an independent industry. Based on Pascal and Leibniz, the Arithometer was the first truely successful desktop calculator commercially sold and distributed.


The Arithmometer


1823: The Difference Engine

Charles Babbage, a mathematics professor at Cambridge University from 1827-1839, had realized in 1812 that long calculations needed to make mathematical tables were really a series of predictable, repeatable actions. Based on this, Babbage, who lived from 1792-1871, developed what he called the Difference Engine.


Charles Babbage

Powered by steam, the Difference Engine was designed to aid the calculation of mathematical, celestial, and navigational tables in hopes to reduce the number of lost ships at sea. It unfortunately had many downfalls, including the fact that it was a very specialized machine which could only be practically used to perform one calculation. In order to perform a different calculation, the gears would have to be changed, making it very impractical.


Babbage's Difference Engine


1833: The Analytical Engine

After giving up on the Difference Engine, Babbage develops the Analytical Engine. This mechanical device, which would have included the essentials of any modern computer such as a central processing unit, software instructions, memory storage, and printed output, was never actually produced due to the lack of technological advancements of the time.

The plans for this engine required an identical decimal computer operating on numbers of 50 decimal digits (or words) and having a storage capacity (memory) of 1,000 such digits. The built-in operations were supposed to include everything that a modern general - purpose computer would need, even the all important Conditional Control Transfer Capability that would allow commands to be executed in any order, not just the order in which they were programmed.

Babbage's Analytical Engine was soon to use punched cards (similar to those used in a Jacquard loom), which would be read into the machine from several different reading stations. The machine was supposed to operate automatically, by steam power, and require only one person there. These punch cards were the first true version of a program, as they could be loaded and unloaded from the machine to quickly change from one calculation to another.

The theory of the Analytical Engine would however lead some to refer to Babbage as the "Father of Computing". Unfortunately, Babbage, like most programmers, suffered from a lack of documentation of his ideas and because of which the Analytical Engine wouldn't gain popularity until the 20th century.


1842: Ada, the First Computer Programmer

Ada Augusta King, Countess of Lovelace, who lived from 1815-1852, translates Menabrea's pamphlet on the Analytical Engine (a collection of notes from various lectures given by Babbage throughout the Continent).


Ada Augusta King, Countess of Lovelace

She added to the pamphlet, her own notes which included such innovations as the subroutine (a set of reusable instructions), looping (running a useful set of instructions over and over), and the conditional jump (branching to specified instructions if a particular condition is satisfied).

Like Babbage who had developed the idea of the Analytical Engine, Ada realized that machines someday might be built with capabilities far beyond the technology of her day. Because of her insight and new innovations she is considered to be the world's first programmer.


1937: The Universal Machine

Alan Turing, who lived from 1912-1954, is credited for describing the essential characteristics of the first practical computer when in 1936 he published his paper "On Computable Numbers, with an application to the Entscheidungs problem".


Alan Turing

While not using the practical technology of the era, Alan Turing developed the idea of a "Universal Machine" capable of executing any describable algorithm, and forming the basis for the concept of "computability". Perhaps more importantly Turing's ideas differed from those of others who were solving arithmetic problems by introducing the concept of "symbol processing".


History Index Next: 1941-1950