Computing memory in the 18th century – Jacquard’s Loom and its punched cards
I’d be willing to bet that most of you haven’t worked with a computer that accepted punched cards. I only did so once in my life – toward the end of high school I was taking a Fortran class. I can’t remember why I dropped the class, but I do remember that all of our Fortran programs had to be entered via punched cards. Even by the late 1970s, punched cards were on the way out. By that time the IBM punched card had enjoyed a long history.
In 1928, IBM introduced a new version of the punched card with rectangular holes and 80 columns. This newly designed “IBM Computer Card” was the end result of a competition between the company’s top two research teams, working in secrecy from one another. It turned out to be one of IBM’s most important technological innovations, propelling the company to the forefront of data processing. For almost four decades, it was the major medium for storing, sorting and reporting data processed first through punched card equipment and later computers. As late as the mid-1950s, punched card sales made up 20 percent of IBM’s revenues and an astonishing 30 percent of its bottom line.
But punched cards were not invented by IBM in 1928. Nor were they invented by Herman Hollerith in the late 19th century. Nor were they invented by Charles Babbage. The true origin of punched cards lies in the 18th century’s version of 3-D printing – the weaving industry. Joseph-Marie Jacquard was responsible for this advance:
In consequence of the Industrial Revolution, the late 18th century had witnessed a considerable expansion in the automation of processes that had once been the preserve of small groups of highly skilled workers employed in so-called `cottage industries’. The textile industry was one sphere were industrialisation had rendered obsolete such skills. Whereas, prior to the development of mechanical looms and weaving machines, lengths of fabric had to be woven slowly by hand, the advent of powered tools for carrying out this task meant that quantities of fabric could be mass-produced at a far quicker rate than previously, thereby reducing its expense. There was one area, however, where the new machines could not compete with skilled manual workers: in the generation of cloth containing anything other than a plain (or at best extremely simple) woven pattern. The Jacquard Loom provided a solution to this problem so that, with it in use, extremely intricate patterns and pictures could be automatically woven into cloth at much the same rate as a plain length of fabric could be generated. The key idea behind Jacquard’s loom was to control the action of the weaving process by interfacing the behaviour of the loom to an encoding of the pattern to be reproduced. In order to do this Jacquard arranged for the pattern to be depicted as a groups of holes `punched’ into a sequence of pasteboard card. Each card contained the same number of rows and columns, the presence or absence of a hole was detected mechanically and used to determine the actions of the loom. By combining a `tape’ of cards together the Jacquard loom was able to weave (and reproduce) patterns of great complexity, e.g. a surviving example is a black and white silk portrait of Jacquard woven under the control of a 10,000 card `program’.
Additional information on Jacquard and other punched card pioneers can be found here.
Wikipedia article here, http://en.wikipedia.org/wiki/Punched_card , has a nice image of an IBM punched card and the Jacquard loom at the top of the page.
Each line of a program was entered on one card. You would turn in your ‘card deck’ to the computer room. Later that day, or the next, you would pick up a printout of your program run. Invariably there would be a typing error, logic error or infinite loop that killed your program. So you changed one card, resubmitted, and picked up the run the next day.
Each run of your program would take up a fraction of a second of CPU time. Your student account would be credited a minute or two at the start of the semester. Your account would be charged for each run. That limited how much processing time you could use during a course.
Glad we don’t have to do that anymore. So much better having several dedicated machines in my home. No better time to be alive than today!