(submitted to the Netfuture e-newsletter, April 8, 1996)
Dept. of Computer Science
University of S\~ao Paulo, Brazil
Computers are abstract machines. Other, concrete, machines transform, transport or store energy or matter. Computers do it with data. I will characterize here "data" as pieces of certain kinds of information which may be inserted into a computer. Data and information are not part of the natural or artificial world, they are not concrete - they cannot be weighted, spatially measured, they cannot be ingested as food or used for clothing; we can't even build a computer with them. This stems from the fact that data - and information - are in fact thoughts. We think them, and then we insert them into a computer. The same applies to programs, which are also pieces of data. Each command or instruction of a program is the outcome of some pure thinking. What the computer does when it interprets a program ("executing a program" is not a correct expression) is to simulate exactly the thoughts we had when we inserted them into the program. Given a program and input data, the result of its interpretation by the computer can be simulated mentally or with pencil and paper (I disregard here the computer controlling other machines, as in a numerically controlled power lathe; I am also not considering time constraints or mistakes done by the human). This is not so with other machines: simulating a bicycle with pencil and paper does not take me from here to there. Computers cannot be used as transportation devices, their result cannot be used as food or clothing, they do not produce anything real: they produce restricted kinds of thoughts - data. Computers are thus completely alienated from "reality" (taken in a naive sense) - they are abstract, mathematical, logical- symbolic machines. So what does a programmer do? To produce a program, s/he has to think in a very special way, using a very special language. This language is absolutely formal: it is expressed through logical-symbolic elements, it may be fully described in mathematical terms, using what is called "formal grammar" and "formal semantics" - a wrong name, because there is no meaning assigned to the "real world" behind the commands or instructions of a program. The meaning is a logical interpretation of the instructions. In fact, the computer has another characteristic which should be added to those of the previous paragraph: it is a syntax machine. Every piece of data or program has to be transformed into pure structure to be represented in the machine. (BTW, I consider Mathematical Logic as being purely syntactical, and logicians have confirmed this impression.) So the poor programmer is forced to think in a very narrow way, figuring out how to express through instructions the transformation on data that he is supposed to order the computer to perform.
I would like to mention here an example which is already quite old, from Computational Linguistics. Once upon a time, during the 60's, some linguists decided to use the computer to discover literary styles or characteristics of each author. They reduced the style to certain numeric or statistical properties, as for instance how many times words such as "war", "peace", "love" would appear in a text. They would also count the "distance" in number of words which appeared between pairs of keywords as those three, and so on. Obviously, they did not use as a criterion the attention, the tension or joy a text would produce in its readers - these feelings cannot be taken care of by computers, unless they are quantified (there is a "science" called Psychometrics which deals with quantifying feelings, desires, etc.). Here we see another characteristic of computers: they impoverish whatever they transform regarding the contents. (I am trying here to leave aside transformations of form such as justifying a text; also just storing what is already quantified, as letters of a text or photos, do not enter my notion of "impoverishing".)
I like to characterize the kind of alienated, formal thinking programmers have to exercise as "dirty thoughts". They are dead, abstract thoughts, not having anything to do with reality. I think they are probably one of the main causes for what is called the "programmers' syndrome": stress, insomnia, lack of appetite, difficulties with social relations and other miseries.
I don't think programmers should quit their profession, unless for some extreme cases: if there is a job for them, society needs them. The question is how to balance such unilateral, dirty thinking. In lectures I give to professionals on the subject (titled "The Misery of Data Processing"), some people suggest sports as a therapy. I mention this because to play physical sports, one has to act with automatic reflexes, in a subconscious way - thoughts are too slow and, if applied to the movements one has to perform and muscles one has to use, they produce paralysis (the reader may confirm this by trying to make conscious every movement he has to make to grab a pencil). The question here is not to eliminate thinking, it is to balance the dirty programming thinking with a "live-thinking."
To make it short, I consider artistic activities as the ideal antidote to the dirty machine-thinking exercised by programmers. When one actively practices some art, one does not think in an abstract, formal way (I am surely not referring here of "computer art"!!!). One does not even think in conceptual terms. Nevertheless, there is a kind of mental activity going on, one intimately connected to esthetic feelings. To produce a real work of art, one cannot plan way ahead what one is going to do - improvisation, and observation of the results, and the feelings they arise are essential to proceed. If some work of art is completely planned and foreseen in advance, it becomes science. For Goethe, both science and art had the same origin - the Platonic world of ideas -, and both revealed a kind of knowledge: the former through concepts, the latter through real objects. In a lecture given at Oslo on May 20, 1920, Rudolf Steiner, who had edited and commented the scientific works of Goethe for the Kuerschner Edition, said (see his "The Arts and their Mission", Anthroposophic Press, N.York 1964) "It is a spiritual sensing and beholding of the world, rather than cerebral thinking, which leads to art..." and "The more one surrenders to abstract thoughts, the more one becomes a stranger to art. For art desires and is centered on the living."
Readers may ask: but among all forms of active art, is there a more suitable one for the poor computer programmers? I think any actively done art would help the necessary balancing described above. Theater playing develops an acute social sensibility, because the actor has to pay attention to his peers, and do lots of improvisations - not every movement or intonation should be planned, otherwise the play loses its spontaneity; moreover, the play has to flow according to the way the actors feel the audience. It has a very important balancing effect to the social isolation that the programming activity produces. Nevertheless, the script has to be followed, so the activity is reasonably restricted. Sculpture deals with a material which is too earthly - it would do good for someone who has to develop some inner form; but our poor programmer has too much form in his/her thinking. And so on, for other arts. So here is my recommendation, based upon my own experience: I consider the ideal antidote to be watercolor painting wet-on-wet, that is, on wet paper. In this form of painting, one uses transparent, that is, not rigid, colors; the wet paper makes it easy to produce fine, unforeseen color transitions, and it is almost impossible to produce sharp contours. It is always possible to change to some extent what one has already put on paper, mixing colors on it, feeling if one has reached some satisfactory result. I use only the basic colors, yellow, red and blue, two hues of each. It is fascinating to produce with them all sorts of green hues, as well as gray and brown. One may mix them on a white wall tile, but using them one over the other directly on paper give unexpected colors, aiding to therapeutic effect. Obviously, improvising colors and forms should be preferred over trying to reproduce works by famous artists - but this is an effective method to develop some technique, mainly figurative painting.
Besides the antidote, I could give other recommendations for programmers, such as doing as little on-line programming as possible, that is, going back to developing programs using low-tech instruments such as pencil, rubber and paper, limiting the amount of consecutive on-line time, etc. But these directives were not my main reason for writing this essay.
What I expounded here applies not just to programmers. Whenever a person is using _any_ software, commands have to be given to the computer. These commands have many similar characteristics of those of programming language instructions. They are also part of a formal, logic-symbolic language, their effect is also deterministic, they have to be given in a fully conscious way, and so on. Thus, the same recipe of doing artistic activities apply to heavy computer users in general, such as Internet- addicted. I hope they also consider my recommendations as a means of balancing the deadening effects computers have upon our thoughts.
The antidote has certainly worked if a programmer or heavy computer user starts to recognize the truth of the following statement: "Nature is not a scientist, it is an artist." To understand it, one has to complement scientific, formal knowledge with the ability to artistically enter in touch with a reality that transcends our senses and current scientific explanations. That is, we need a new type of science, more humane and impregnated of living thoughts - fortunately for us, it has been in existence since Goethe established its method. Unfortunately, his approach has been ignored.