Five Knowledge Storage Media(5): Software 

The fifth medium

There were early brave attempts to produce hardware-programmable devices—Charles Babbage’s Difference Engine being the most famous.  And most of the machines built during the Industrial Revolution and thereafter employed at least some calibration adjustment capability to allow their operation to be modified.  But these adjustment mechanisms were very restricted in what they could do and were limited to a narrow range of aspects of that device’s operation.  They were not “programmable” in the currently accepted sense and they certainly could not be considered to be a generalized language in which different kinds of knowledge for different kinds of machines could be stored and subsequently executed [1].

To truly store knowledge in software required the development of generalized electronic circuits that could be set up in different states, could support generalized types of knowledge representations and, most importantly, when attached to appropriate devices could execute the knowledge they were programmed to contain.  These electronic devices rapidly became smaller, more powerful, could contain larger collections of knowledge, and began to be supported by electronic data storage mechanisms.  The simple circuit-switching setup methods morphed into machine code, into low-level programming languages, and ultimately into the enormous array of programming languages [2] and systems we have today.

The 15th century's Literary Revolution saw the wholesale transfer of human knowledge from brains into books.  The 18th-19th century Industrial Revolution was largely the transfer of manufacturing knowledge from brains and books into mechanical hardware.  The current (misnamed?) "Information Revolution" is seeing the human race transfer all of its knowledge from brains, books, and hardware into the knowledge storage medium we call software.

Software is simply the most recent of the five knowledge-storage media.  But it is arguably the most powerful.  

And it is taking over the world.


FOOTNOTES


[1] That said, the Jacquard Loom demonstrated by Joseph Marie Jacquard in 1801 used punched cards to control the fabric warp of a loom.  The cards were essentially the knowledge-in-hardware necessary to make complex patterns in silk, cotton, and other materials.  In 1832 , this punched-card idea was picked up by Semen Korsakov as a means of storing information for the Russian Police Ministry and further refined by Herman Hollerith for use in the US Census of 1890.  Arguably the executable knowledge of such systems was distributed between the cards themselves and the machines that processed them to produce some output.  


[2] It is thought there are currently at least 700 to as many as around 9,000 distinct programming languages that exist or have existed of which around 50 are in substantial use today.