2012-03-24

The tyranny of the punched-card

In the early eighteenth century, perforated paper rolls were used to control looms in France. Basile Bouchon and Jean-Baptiste Falcon introduced punched-cards as a more robust and reliable method of controlling the looms. At the start of the nineteenth century, Joseph Marie Jacquard adopted and adapted their ideas for his looms. In 1832, a Russian homeopath, Semen Korsakov, use punched-cards to store information. His primary interest was to store information and then to search for simi­larities. Korsakov also invented a number of devices for comparing the data in his punched-cards. Herman Hollerith developed a punched-card technology for the 1890 US Census. His company, the Tabulating Machine Company, started in 1896, later became IBM. James Powers, a former Census Bu­reau maintenance man for the Hollerith machines, introduced new devices that included a number of significant improvements. These new devices were marketed by Powers-Samas in Britain and France.

These first punched-cards were used primarily for storing data. Tabulators and sorters were used for accounting and conducting surveys. For IBM, punched-cards were to their equipment, what razor blades were to Gillette or Schick. In Endicott, NY, IBM printed, cut and stacked more than 5 million cards every day (generating a not-insignificant revenue—and their 'razors' were not inexpensive).

There are a fixed number of columns in a punched-card. Adjacent columns are assigned to fields; each field is assigned to different data in the database. A code, representing a letter, a number or a control, is punched into each column. The primary concept is that each card contain one record and that all the cards in a database have an identical layout. This was the first IT straight jacket. Every­thing needed to represent a single entity had to be contained in a single card (and later, in multiple cards)! Numerous clever schemes were invented to squeeze more data onto the cards. The first cards had quite a limited capacity, but over time the cards got bigger and bigger and the phrase 'Do not fold, spindle or mutilate,' became part of the modern psyche. When magnetic tape was introduced the size of the record went ballistic!

Instead of rethinking the way in which data was stored, magnetic tape simply became a collection of very big punched-cards; a larger straight jacket. More stuff could be squeezed into each record but it was simply a mindless extension of the punched-card. The programming language COBOL, that perpetuated this mistake, was developed. It was compatibility with the punched-card milieu that drove the effort. COBOL records were simply punched-card layouts that could become very complex. There were two major problems: the length of each field was fixed, and subordinate fields or groups of fields had to have a fixed number of occurrences. This resulted in some people’s long surnames being truncated, and employees who could have no more than, say eight, dependents. This also meant that a large number of columns in an individual record would go unused.

One of the major shortcomings of COBOL was that the external representation of the records was determined by the individual computer manufacturer. For example, IBM introduced slack bytes, a mechanism that ensured that the data would align itself correctly into their System 360 machine ar­chitecture. This meant that unused data would be inserted into records to avoid having to align the data with their word (32-bit) and double-word (64-bit) boundaries after reading it into memory. It also meant that another manufacturer could not read data written on an IBM computer without being cognizant of these slack bytes. Had the CODASYL committee explicitly controlled these external representations, it would have made it much easier to transfer data from one computer site to another.

No comments:

Post a Comment