Just a few years after Pascal, the German Gottfried Wilhelm Leibniz (co-inventor with Newton of calculus) managed to build a four-function (addition, subtraction, multiplication, and division) calculator that he called the stepped reckoner because, instead of gears, it employed fluted drums having ten flutes arranged around their circumference in a stair-step fashion. Although the stepped reckoner employed the decimal number system (each drum had 10 flutes), Leibniz was the first to advocate use of the binary number system which is fundamental to the operation of modern computers. Leibniz is considered one of the greatest of the philosophers but he died poor and alone.
Leibniz's Stepped Reckoner (have you ever heard "calculating" referred to as "reckoning"?)
In 1801 the Frenchman Joseph Marie Jacquard invented a power loom that could base its weave (and hence the design on the fabric) upon a pattern automatically read from punched wooden cards, held together in a long row by rope. Descendents of these punched cards have been in use ever since (remember the "hanging chad" from the Florida presidential ballots of the year 2000?).
Jacquard's Loom showing the threads and the punched cards
By selecting particular cards for Jacquard's loom you defined the woven pattern [photo © 2002 IEEE]
A close-up of a Jacquard card
This tapestry was woven by a Jacquard loom
Jacquard's technology was a real boon to mill owners, but put many loom operators out of work. Angry mobs smashed Jacquard looms and once attacked Jacquard himself. History is full of examples of labor unrest following technological innovation yet most studies show that, overall, technology has actually increased the number of jobs.
By 1822 the English mathematician Charles Babbage was proposing a steam driven calculating machine the size of a room, which he called the Difference Engine. This machine would be able to compute tables of numbers, such as logarithm tables. He obtained government funding for this project due to the importance of numeric tables in ocean navigation. By promoting their commercial and military navies, the British government had managed to become the earth's greatest empire. But in that time frame the British government was publishing a seven volume set of navigation tables which came with a companion volume of corrections which showed that the set had over 1000 numerical errors. It was hoped that Babbage's machine could eliminate errors in these types of tables. But construction of Babbage's Difference Engine proved exceedingly difficult and the project soon became the most expensive government funded project up to that point in English history. Ten years later the device was still nowhere near complete, acrimony abounded between all involved, and funding dried up. The device was never finished.
A small section of the type of mechanism employed in Babbage's Difference Engine [photo © 2002 IEEE]
Babbage was not deterred, and by then was on to his next brainstorm, which he called the Analytic Engine. This device, large as a house and powered by 6 steam engines, would be more general purpose in nature because it would be programmable, thanks to the punched card technology of Jacquard. But it was Babbage who made an important intellectual leap regarding the punched cards. In the Jacquard loom, the presence or absence of each hole in the card physically allows a colored thread to pass or stops that thread (you can see this clearly in the earlier photo). Babbage saw that the pattern of holes could be used to represent an abstract idea such as a problem statement or the raw data required for that problem's solution. Babbage saw that there was no requirement that the problem matter itself physically pass thru the holes.
Furthermore, Babbage realized that punched paper could be employed as a storage mechanism, holding computed numbers for future reference. Because of the connection to the Jacquard loom, Babbage called the two main parts of his Analytic Engine the "Store" and the "Mill", as both terms are used in the weaving industry. The Store was where numbers were held and the Mill was where they were "woven" into new results. In a modern computer these same parts are called the memory unit and the central processing unit (CPU).
The Analytic Engine also had a key function that distinguishes computers from calculators: the conditional statement. A conditional statement allows a program to achieve different results each time it is run. Based on the conditional statement, the path of the program (that is, what statements are executed next) can be determined based upon a condition or situation that is detected at the very moment the program is running.
You have probably observed that a modern stoplight at an intersection between a busy street and a less busy street will leave the green light on the busy street until a car approaches on the less busy street. This type of street light is controlled by a computer program that can sense the approach of cars on the less busy street. That moment when the light changes from green to red is not fixed in the program but rather varies with each traffic situation. The conditional statement in the stoplight program would be something like, "if a car approaches on the less busy street and the more busy street has already enjoyed the green light for at least a minute then move the green light to the less busy street". The conditional statement also allows a program to react to the results of its own calculations. An example would be the program that the I.R.S uses to detect tax fraud. This program first computes a person's tax liability and then decides whether to alert the police based upon how that person's tax payments compare to his obligations.
Babbage befriended Ada Byron, the daughter of the famous poet Lord Byron (Ada would later become the Countess Lady Lovelace by marriage). Though she was only 19, she was fascinated by Babbage's ideas and thru letters and meetings with Babbage she learned enough about the design of the Analytic Engine to begin fashioning programs for the still unbuilt machine. While Babbage refused to publish his knowledge for another 30 years, Ada wrote a series of "Notes" wherein she detailed sequences of instructions she had prepared for the Analytic Engine. The Analytic Engine remained unbuilt (the British government refused to get involved with this one) but Ada earned her spot in history as the first computer programmer. Ada invented the subroutine and was the first to recognize the importance of looping. Babbage himself went on to invent the modern postal system, cowcatchers on trains, and the ophthalmoscope, which is still used today to treat the eye.
The next breakthrough occurred in America. The U.S. Constitution states that a census should be taken of all U.S. citizens every 10 years in order to determine the representation of the states in Congress. While the very first census of 1790 had only required 9 months, by 1880 the U.S. population had grown so much that the count for the 1880 census took 7.5 years. Automation was clearly needed for the next census. The census bureau offered a prize for an inventor to help with the 1890 census and this prize was won by Herman Hollerith, who proposed and then successfully adopted Jacquard's punched cards for the purpose of computation.
Hollerith's invention, known as the Hollerith desk, consisted of a card reader which sensed the holes in the cards, a gear driven mechanism which could count (using Pascal's mechanism which we still see in car odometers), and a large wall of dial indicators (a car speedometer is a dial indicator) to display the results of the count.
An operator working at a Hollerith Desk like the one below
Preparation of punched cards for the U.S. census
A few Hollerith desks still exist today [photo courtesy The Computer Museum]
The patterns on Jacquard's cards were determined when a tapestry was designed and then were not changed. Today, we would call this a read-only form of information storage. Hollerith had the insight to convert punched cards to what is today called a read/write technology. While riding a train, he observed that the conductor didn't merely punch each ticket, but rather punched a particular pattern of holes whose positions indicated the approximate height, weight, eye color, etc. of the ticket owner. This was done to keep anyone else from picking up a discarded ticket and claiming it was his own (a train ticket did not lose all value when it was punched because the same ticket was used for each leg of a trip). Hollerith realized how useful it would be to punch (write) new cards based upon an analysis (reading) of some other set of cards. Complicated analyses, too involved to be accomplished during a single pass thru the cards, could be accomplished via multiple passes thru the cards using newly printed cards to remember the intermediate results. Unknown to Hollerith, Babbage had proposed this long before.
Hollerith's technique was successful and the 1890 census was completed in only 3 years at a savings of 5 million dollars. Interesting aside: the reason that a person who removes inappropriate content from a book or movie is called a censor, as is a person who conducts a census, is that in Roman society the public official called the "censor" had both of these jobs.
Hollerith built a company, the Tabulating Machine Company which, after a few buyouts, eventually became International Business Machines, known today as IBM. IBM grew rapidly and punched cards became ubiquitous. Your gas bill would arrive each month with a punch card you had to return with your payment. This punch card recorded the particulars of your account: your name, address, gas usage, etc. (I imagine there were some "hackers" in these days who would alter the punch cards to change their bill). As another example, when you entered a toll way (a highway that collects a fee from each driver) you were given a punch card that recorded where you started and then when you exited from the toll way your fee was computed based upon the miles you drove. When you voted in an election the ballot you were handed was a punch card. The little pieces of paper that are punched out of the card are called "chad" and were thrown as confetti at weddings. Until recently all Social Security and other checks issued by the Federal government were actually punch cards. The check-out slip inside a library book was a punch card. Written on all these cards was a phrase as common as "close cover before striking": "do not fold, spindle, or mutilate". A spindle was an upright spike on the desk of an accounting clerk. As he completed processing each receipt he would impale it on this spike. When the spindle was full, he'd run a piece of string through the holes, tie up the bundle, and ship it off to the archives. You occasionally still see spindles at restaurant cash registers.
Two types of computer punch cards
Incidentally, the Hollerith census machine was the first machine to ever be featured on a magazine cover.