The following is an excerpt of a rough draft of the soon-to-be-published book, A Brief History of Computing: The GNU Story.
As previously mentioned, software is the context in which a computer functions. Without it, a computer is an inert hunk of metal. At it’s most fundamental, software is just a stream of zeroes and ones called the Binary Number System. When binary digits (bits) are combined in a particular manner meant to communicate information to a computer, we call that a programming language, or more specifically a machine language. There are other, higher level, computer languages in use as well. They have different applications. Some are designed to implement operating systems, some for creating applications, some to automate system administration tasks, as well as many other uses.
The Binary System has a surprisingly long history. Very early in the development of civilization, men recognized the benefits of being able to reduce logical analysis to its most essential form. Most concluded that a binary language was that form. But few ever realized a system. Gottfried Leibniz was one of the first to attempt to codify a binary system. In 1666 he wrote a short paper, “On the Art of Combination” which, among other things, defined a general method of reducing all thinking to statements of perfect exactitude. He felt the way to do this was by relocating logic from the realm of natural language to the dominion of mathematics.
The paper also proposed the creation of “a sort of universal language.” His paper was largely ignored and Liebniz himself seemed to forget about it. In later years he would work tirelessly to perfect and formalize the endless combination of zeroes and ones that constitute the binary system, apparently unaware that this might be his previously theorized, “universal language.” He never found a practical use for his language, even though he would invent an early adding machine — it featured a decimal system.
Copyright © 2013 Russell James
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation License”.