(This is a guest post)
When we run an application on a computer, the computer “knows” what to do by stepping through a sequence of instructions. These instructions are very low level, and are stored internally in a binary “machine code”, represented by ones and zeros.
A programmer would have a hard time keeping millions of these ones and zeros (known as binary digits, or “bits”) in order. Fortunately, we have programming languages to bridge the gap between human language and machine code. When a programmer develops an application, he or she defines it using a programming language, rather than writing directly in machine code.
Decades ago a program was written which would translate from the human-readable abstractions of the programming language into machine code. Writing with human-sounding commands like “add”, “subtract”, “move”, “jump” made writing programs easier and more graspable. Now the programmer no longer had to bend their mind dealing with the masses of ones and zeros, and they could concentrate on the application they were writing.
Those old programming languages
were still quite clumsy and awkward, but they could be used as a tool to develop newer and better languages. And then again and again. This iterative process has brought us programming languages so abstract that they do not resemble the workings of the machine's brain. Today's programming languages resemble more and more the language that we speak.
We rely on computers to power our society. We use immensely useful programs written in increasingly flexible and accessible programming languages. A programmer “writes” these “source codes” which are then taken and translated by a “compiler” into “machine code” which the computer can understand. The millions of machine instructions, in their raw form, would be too bewildering for a human to comprehend.
Access to this source code is access to the technology, and is power. Companies that control the source code control the software running our society and are able to meter this resource. When a fault is found in the software that we rely on for our defense, medical care or communications, we are defenseless and are at the mercy of the companies that control the source code.
Open source software (where the source code is publicly available to anyone who wants to inspect it or modify it) alleviates the risks associated with closed source (proprietary) software, and allows software developers and distributors to profit from that software without holding society hostage by keeping the source code secret.
Need research? Quezi's researchers can answer your questions at uclue.com