Thursday, August 2, 2018

Speech Act Theory and It's Role in Software Engineering

John Searle was a disciple of J L Austin who has first defined what we now call Speech Act Theory. Searle's lectures for both the Philosophy of Language and Philosophy of Mind at UC Berkeley were both recorded and are available on Youtube. I want to make a few points about how I believe this linguistic theory informs software engineering and complex software systems.

A key point in speech act theory (SAT) is that some human realities are created with some utterances. When a person has the formal authority to marry or judge, a simple utterance can make a person guilty or married. I extend this concept (or perhaps am anticipating what others have already said) to surmise that language is not only a means of communication among people but is actually a tool by which we construct and maintain social reality. And I see no reason why this would not apply equally to how we use language and software artifacts as language to construct other realities. Here I am trying to work out what that can mean.

What is a computer program? What is software? I take a piece of code to be a blueprint for a machine. When combined with hardware and given agency it transforms that machine in which it is loaded into a realization of that intended machine. The message, utterance if you will, to run the program creates a kind of intentionality that has a world to mind direction of fit, we desire to have that machine be real and make it so with our utterance. This can be a command issued at a command line or the click of a button.

Programming can become arbitrarily complex and progressively more agency can be invested in the machines. Instead of pressing a button, we can invest a machine with the authority to press the button in response to some external stimulus (a mind to world direction of fit in reference to the agent) or on some schedule, which is after all a stimulus of passing time. As we progress with giving more agency to these machines I believe it makes sense to use a theory of mind to talk about the agents and not just humans.

There are two distinct threads in machines today, computation communications. Computation often steals the focus today with the dramatic advances in artificial intelligence and the prevalence of algorithms in social media. But the advances in communications are no less impressive as we progress toward a single pervasive and omnipresent communications network that is used for internet of things as well as for human communications. The growth of computer to computer communications is no less impressive than the ability of any person to be able to converse with any other person on the globe at will. But this intra-computer agent communication must become visible to us at our will as well, especially when it does not serve our needs and we need to understand or change it.

Does it not make sense to look at all network communications as utterances on par with human communications? Do we not preside over a cybernetic realm that is now an extension of our human and physical realm? Do we not have utterances by agents that change our social world as thoroughly as a chaplain or judge? When a municipal system issues a warrant for our arrest, even when done in error, it is a real warrant and will have real world consequences. I want to take this as a starting point and begin to review computer systems through this lens.

***

The origin story for this line of thinking came from a more modest question of how programmers document their code. It is rather obvious that a programmer is creating a unique language that becomes a kind of private language between them and compiler. If the intentionalities of the coder are to be preserved, care must be taken in the naming of the nouns and verbs. For they invariably have some connection, usually indirect, with things in the real world. And in the complexity of the design, this intended relationship is often lost. Even worse is the complexity of the mechanisms by which the surrogates of the real world are manipulated by the algorithms. Anyone trying to pick up the pieces behind a coder must enter into a unique world as envisioned by that coder with the private language they had constructed to communicate their intensions to the compiler.

The connection to speech act came about because of some earlier work I once did on trying to relate communications between a client and a lawyer and codify the conditions of satisfaction that would underlie commitments that were made. But once one understands this linguistic theory, it begins to open new ways of looking at computer languages beyond the standard syntax and semantics that are used.

No comments:

Post a Comment