The idea of Linguistic Relativity has been around since at least the Eighteenth Century. Many folks may have heard of the (misnomerous) Sapir-Whorf Hypothesis.
In a nutshell, Linguistic Relativity suggests that language influences the way we humans think. ‘Whorfianism of the third kind’ proposes that language is ‘a key to culture’.
Setting aside the Rightshifting implications of this for now, I’ve been considering the implications of Linguistic Relativity from the perspective of the humble programmer (a.k.a. coder), especially in the light of Donald Knuth’s description of the job of programming:
“Let us change our traditional attitude to the construction of programs. Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do.”
~ Donald Knuth
Most programming involves the imperative style. Defining instructions to the computer to tell it what to do. If this, then that. Do this. Do that some number of times.
Actually, I’m surprised there is, as yet, no programming language called “Jackal”. (Although, for the record, there is a ‘compiler-driven distributed shared memory implementation of the Java programming language’ named Jackal).
Does daily immersion in the imperative style of communication, in imperative languages, shape the programmer’s thinking in such a way as to increase the tolerance for command-and-control behaviour? Does such implicit imperativism contribute to the preservation of the status quo in our knowledge-work organisations?
Should We, Could We?
In Rosenberg’s NonViolent Communication, he cautions against the assumptions implicit in the word “should”:
“Avoid ‘shoulding’ on others and yourself!”
~ Marshall Rosenberg
I note with irony the use of the word “should” at the heart of modern BDD, for example. This is but one example of what we might choose to call “rampant imperativism”.
The idea of modifying language to aid thinking is not without precedent. D. David Bourland, Jr. first proposed E-Prime (in my mind, a close cousin of Giraffe language) in order to help people “reduce the possibility of misunderstanding or conflict”.
New Language, New Feelings
Could we conceive of a different style, a different language of BDD, of coding in general, built upon the Four Steps of Nonviolent Communication? What would a Nonviolent Programming language look like, feel like to use? Would there be knock-on advantages to Nonviolent Programming and e.g. Nonviolent BDD?
If Gandhi had been a programmer rather than a lawyer, what might his code have looked like?
Conversely, If he had been immersed in COBOL, FORTRAN or Java for forty-plus hours a week, would he ever have come hold his views on the paramountcy of non-violence?
What implications – seen through the lens of Linguistic Relativity - would adoption of such a language and style have in our communications as individuals? Could forty hours a week of Nonviolent Programming contribute positively to the health and well-being of our human dialogues, our personal interactions and our organisations?