Who Programmed Who?

Let us observe the difference between a computer protocol and a computer language.

According to the Free Online Dictionary of Computing, a protocol is a “set of formal rules describing how to transmit data, especially across a network. Low level protocols define the electrical and physical standards to be observed, bit- and byte-ordering and the transmission and error detection and correction of the bit stream. High level protocols deal with the data formatting, including the syntax of messages, the terminal to computer dialogue, character sets, sequencing of messages etc.”

By contrast, a computer language or programming language is a “formal language in which computer programs are written. The definition of a particular language consists of both syntax (how the various symbols of the language may be combined) and semantics (the meaning of the language constructs).”

Computers communicate with one another using protocols. Humans communicate with computers using programming languages.

The web browser that you are using to read this article combines at least two distinct functions. First, it is an HTTP client with the function of exchanging data with an HTTP server. It speaks a common protocol with a remote machine, enabling them to communicate. Second, it is an HTML interpreter (actually it interprets several different programming languages). The data that it downloads from the server is actually a short computer program that I, a human, have written, instructing your computer to draw this article on your terminal. Like anything written by a human, a computer language is intrinsically meant to be read by someone and not simply processed by a machine.

A person can use the web without ever knowing about protocols or programming languages. However, this is peculiar. The user is concerned with the output of the computer program but not the definition of its function. A property of computer programs is “black box functionality,” which abstracts the internal structure of a subroutine. Its user need only know its name, input, and output. At first glance it would seem that the reader is the user of the black box function that is the browser. The input would then be the address of this web page, and the output would be its contents. However, the reader is usually a non-programmer. In such a case, the only programmer is the the author of the web page, who remotely defines the output of the web browser. This output is then processed by the reader. In a very rudimentary way, then, the reader functions as a component of a cybernetic system that is operated by the programmer or author of the web site. By allowing the reader to feed back into that system with new inputs, as in the so-called social media, the author can in fact begin to program the users of his web site.

Such cybernetic conditioning is now occurring on a very large scale. Google, Twitter, and Facebook all openly admit to conducting it on their respective platforms as a means of bringing about social change. As a purely technical consideration, such an operation requires three conditions:

  1. Computer networking.

  2. Interactivity. That is, the clients and server mutually change in response to the information they receive. Ideally the server has as much information as possible about all clients, but the clients themselves have very limited information. The server defines the limits of the information available to its clients.

  3. Non-programmer users. That is, the users remain concerned with the output of the cybernetic system but unaware of its programmatic function and therefore unable to alter it. N.B., an admission of the fact that conditioning is taking place and a statement of its purpose do not constitute a definition of a function.

In short, insofar as large numbers of people continue to provide these social media platforms with detailed information about their lives, while at the same time they remain ignorant of precisely how that information is being processed by the computer or used by its programmers, to that extent it can be said that the users are governed by the platforms. The social media companies are therefore de facto government entities.

How is the distinction between a protocol and a language relevant to this matter? That is simple. The non-programmer doesn’t appreciate this distinction in the first place. If he did, then he would understand that the computer code passed from server to client is not merely to be processed by the system but also to be comprehended by the system’s operator. Any component of the system that does not have some comprehension of that system’s definition (that is, the meaning of its programming) is a mere component, not an operator, and is subject to the determinations of the operator. You are not the operator. You are the robot.