Feed on

Programming and self de-programming

<h1><a xhref=[en]

Software programming is a meta-activity. It deals with becoming aware of a process in its details, even though it is limited to the area regarding the information flow. Recursive algorithms are a good metaphor for self-reflection.

Once reached a certain level in programming, it is almost inevitable that our attention cannot just focus on the understanding of the computer working mechanisms, but also to the inside of our own mind, investigating the way of thinking itself which allows us to deduce, discriminate, program, and associate things and events.

La programmazione software è una meta-attività. Si tratta di prendere consapevolezza di un processo nei suoi particolari, seppur limitato al piano inerente il flusso informativo. Gli algoritmi ricorsivi sono una buona metafora per l’autoriflessione.

Arrivati ad un certo livello nella programmazione, è quasi inevitabile che l’attenzione non si rivolga più solamente alla comprensione dei meccanismi di funzionamento del computer, ma anche all’interno della propria mente, indagando le modalità del pensiero stesso che consentono di inferire, discriminare, programmare e associare cose ed eventi.



Software programming is a meta-activity. It deals with becoming aware of a process in its details, even though it is limited to the area regarding the information flow. Programming is a bit like observing the processes in slow motion in order to re-create their sequence, like pulverizing a process in its informative details and analyzing them separately. It is basically a reductionist approach, even though in the object oriented programming and event-driven programming, every object is put in relation to other objects and procedures, in a more “connected” vision.

In the attempt of simulating reality in an ever more accurate and realistic way, there is the quest, only from the mind point of view, at going into the essence of reality, in the inaccessible Kant’s thing in itself. It is a never-ending research, similar to the investigation about the ultimate particles in atomic physics.

In computer graphics and in virtual worlds programming, any simulation, for example a human being movement, requires a careful observation ability, a first step towards meditation.

One of the effects of meditation is the slowing down of mental activity in order to be able to observe the spaces in between thoughts; in certain meditation techniques thoughts, emotions and states of awareness are analized and classified. An approach that could seem reductionist and rational. Even in programming, there is a slow motion analysis of procedures which will subsequently be automized, but the difference lays in the fact that in meditation, as opposed to programming, the observer and the object of observation are part of the same awareness and consequently there is a constant feedback between observer and object of observation which feed each other.

On a programming level this continuos cycle of feedback corresponds to recursive algorithms. Recursive algorithms are procedures that work with a feedback criteria, folding back on themselves and generating results through self-interaction. Recursive algorithms are a good metaphor for self-reflection. Programming a recursive algorithm is not the same as meditating but, somehow, the way of thinking involved when we arrange a recursive procedure brings in that slight vertigo sensation and that fascination we feel when we look into our own awareness.

When I read Gödel, Escher, Bach by Douglas Hofstadter I felt a mixture of amazement and unease in perceiving the Infinite in the recursive themes expressed. Even simply looking at a fractal can give a similar sensation. But doing recursion on ourselves is even more disorienting, as awareness itself is transformed by self-observation.

Another difference between programming and meditating is that the act of observing in programming is goal oriented, whilst meditation requires a careful observation without having any objective nor anything to change; this procedure is more difficult for the ego that always wants to change “what is”. The attitude of a programmer is oriented towards having the ability to foresee and control, therefore towards power, whilst in meditative observation there is letting go and accepting.

Some skilful programmers deal with meta-programming, as in they program systems which simplify or support the work of programmers themselves: programming language compilers, programming interfaces, automatic generators of programming codes and so on. It looks like there is a need to build a program that can substitute the programmer’s task, in the search for the “program of all programs” in an endless meta-programming, which at one point could turn to the programmers themselves and their thinking mechanisms.

Once reached a certain level in programming, it is almost inevitable that our attention cannot just focus on the understanding of the computer working mechanisms, but also to the inside of our own mind, investigating the way of thinking itself which allows us to deduce, discriminate, program, and associate things and events. The attention could turn towards exploring our inner motivation, behavioral schemes and psychological needs. Programmers could activate a reverse engineering process on themselves.

The introspective potentials of programming are not normally associated to programmers, mostly considered as technicians who are absorbed in their own world, detached from reality and from their bodies. And this is often true. Programmers are described by Joseph Weizenbaum as “compulsive”.

Wherever computer centers have become established, that is to say, in countless places in the United States, as well as in virtually all other industrial regions of the world, bright young men of disheveled appearance, often with sunken glowing eyes, can be seen sitting at computer consoles, their arms tensed and waiting to fire their fingers, already poised to strike, at the buttons and keys on which their attention seems to be as riveted as a gambler’s on the rolling dice. When not so transfixed, they often sit at tables strewn with computer printouts over which they pore like possessed students of a cabalistic text. They work until they nearly drop, twenty, thirty hours at a time. Their food, if they arrange it, is brought to them: coffee, Cokes, sandwiches. If possible, they sleep on cots near the computer. But only for a few hours – then back to the console or the printouts. Their rumpled clothes, their unwashed and unshaven faces, and their uncombed hair all testify that they are oblivious to their bodies and to the world in which they move. They exist, at least when so engaged, only through and for the computers. These are computer bums, compulsive programmers. They are an international phenomenon. […]

The compulsive programmer is driven; there is little spontaneity in how be behaves; and he finds no pleasure in the fulfillment of his nominal wishes. He seeks reassurance from the computer, not pleasure. The closest parallel we can find to this sort of psychopathology is in the relentless, pleasureless drive for reassurance that characterizes the life of the compulsive gambler. […] Psychoanalysts, beginning with Freud, saw megalomania and fantasies of onnipotence as principal ingredients in the psychic life of the compulsive gambler. […] The compulsive programmer is convinced that life is nothing but a program running on an enormous computer, and that therefore every aspect of life can ultimately be explained in programming terms. […]

Science can proceed only by simplifying reality. The first step in its process of simplification is abstraction. And abstraction means leaving out of account all those empirical data which do not fit the particular conceptual framework within which science at the moment happens to be working, which, in other words, are not illuminated by the light of the particular lamp under which science happens to be looking for keys. […] The extreme phenomenon of the compulsive programmer teaches us that computers have the power to sustain megalomaniac fantasies. But that power of the computer is merely an extreme version of a power that is inherent in all self-validating systems of thought. Joseph Weizenbaum. Computer power and human reason. W. H. Freeman and Company, 1976.

Weizenbaum’s description reveals without a doubt some typical characteristics of programmers and warns us against the risk of considering reality as a logic sequence of events connected by a cause-effect mechanism and by binary/informative logics, trying to make the world fit into programming procedures. But, whoever has had the chance to deal with programmers knows that most of them are also fond of matters concerning states of conscience and inner search.

The abilities that come into play when programming, have something to do with the ability to be able to detach oneself from an aspect of reality in order to see it in objective terms and observe it in its essence. This detachment is a double-edged weapon. It can lead us to a schizoid detachment from reality and particularly from the self and at the same time, if the same observation skills were turned inwards, we would witness a de-programming of our own mental patterns.

Programmers often consider themes related to inner search on an intellectual knowledge level, or in terms of reaching certain states of mind as if it were a technical or biochemical procedure. However they also have the chance to observe the limits of computational thinking. The approach to different states of conscience and psychedelic experiences have often led to that visionary attitude that has ultimately stimulated the creation of new technologies. Both Steve Jobs and Bill Gates have admitted during interviews to have taken LSD or some sort of mind altering substances.

Substances can expand states of mind that, once the effect is finished, cannot be maintained. Too, using substances carries psychological and physical risks. Nonetheless, they can give a momentary glimpse of wider states of conscience, beyond the mind. Afterwards though the mind wants to incorporate the discoveries made in the field it can control. It invents technologies and models in order to recreate them, as it is not completely aware that it can only simulate a pale reflection of them. However, even a limited reflection of the real creates an inner echo that, as the sound of a distant drum, fascinates us and hypnotizes us.

See also:

Neural reflexes and reflections on meditation

Disembodying at broadband speed

Heavenly Technology

The Tibetan watch: how a spiritual teacher learned about technology in the West

Virtual worlds and Maya 2.0

Bytes and bites of the net

Computer addiction as survival for the ego

Metabolizing information

Mental territories

Is Internet empowering us?

Wireless communication and reality mining as a reflection of pervasive consciousness

Multitasking to nothing

Biotech as an information system

Virtual worlds, mirror worlds, Second Life: backing up the messed planet

Mechanisms, mysticism and Amazon Mechanical Turk

Zen archery and computers


The heart of the binary code

Downloading our life on Internet

Google, privacy and the need to be seen

Personal consumer


La programmazione software è una meta-attività. Si tratta di prendere consapevolezza di un processo nei suoi particolari, seppur limitato al piano inerente il flusso informativo. Programmare è un po’ come osservare i processi al rallentatore per ricrearne la sequenza, polverizzando un processo nei suoi dettagli informativi e analizzandoli separatamente. Un approccio fondamentalmente riduzionista, anche se con la programmazione ad oggetti e orientata agli eventi, ogni oggetto viene messo in relazione agli altri oggetti e procedure, in una visione più “connessa”.

Nel tentativo di simulare la realtà in modo sempre più accurato e realistico c’è la ricerca, solamente sul piano della mente, di entrare nell’essenza della realtà, nella inaccessibile cosa in sé di Kant. Ricerca che sembra non potrà aver fine, analogamente alla ricerca delle particelle ultime nella fisica atomica.

Nella computer graphic e nella programmazione di mondi virtuali, qualsiasi simulazione, ad esempio il movimento di un essere umano, richiede una attenta capacità di osservazione, primo passo per la meditazione.

Uno degli effetti della meditazione è quello di rallentare l’attività mentale in modo da poter osservare gli spazi tra un pensiero e l’altro, e in alcune tecniche di meditazione vengono catalogati ed analizzati i pensieri, le emozioni, gli stati di coscienza. Un approccio che potrebbe sembrare riduzionistico e razionale. Anche nella programmazione vi è un’analisi al rallentatore delle procedure che verranno automatizzate ma nella meditazione, a differenza della programmazione, l’osservatore e l’oggetto dell’osservazione sono parte della stessa consapevolezza, quindi vi è un continuo feedback tra osservatore e osservato, che si alimentano a vicenda.

Un riflesso di questo ciclo di feedback sul piano della programmazione sono gli algoritmi ricorsivi. Gli algoritmi ricorsivi sono procedure che funzionano con un criterio di feedback, che si ripiegano verso se stesse e generano i risultati tramite l’interazione con gli stessi. Gli algoritmi ricorsivi sono una buona metafora per l’autoriflessione. Programmare un algoritmo ricorsivo non è la stessa cosa che fare meditazione ma in qualche modo la modalità di pensiero che interviene quando progettiamo una procedura ricorsiva ci porta a quella leggera vertigine e a quel fascino che avvertiamo quando ci specchiamo nella nostra coscienza.

Quando lessi Gödel, Escher, Bach di Douglas Hofstadter provai quel misto di stupore e inquietudine nell’avvertire l’infinito nei temi ricorsivi illustrati. Anche la semplice visione di un frattale può dare una simile sensazione. Ma fare ricorsione su se stessi è ancora più disorientante in quanto la coscienza stessa viene trasformata dall’auto-osservazione.

Un’altra differenza tra la programmazione e la meditazione è che l’atto di osservazione nella programmazione è orientata verso uno scopo mentre la meditazione richiede l’osservazione attenta senza obiettivi nè alcunchè da cambiare, procedura più difficoltosa per l’ego che vuole sempre cambiare “ciò che è”. L’atteggiamento del programmatore è orientato verso la capacità di previsione e il controllo, quindi di potere, mentre nell’osservazione meditativa c’è il lasciare andare e l’accettare. Alcuni programmatori esperti si occupano della meta-programmazione, la programmazione di sistemi che semplificano o sono di supporto al lavoro stesso del programmatore: compilatori per i linguaggi di programmazione, interfacce di programmazione, generatori automatici di codice di programmazione. Sembra che ci sia la necessità di costruire un programma che sostituisce il compito del programmatore, alla ricerca del “programma dei programmi” in una meta-programmazione senza fine, che a un certo punto si potrebbe rivolgere al programmatore stesso e ai suoi meccanismi di pensiero.

Arrivati ad un certo livello nella programmazione, è quasi inevitabile che l’attenzione non si rivolga più solamente alla comprensione dei meccanismi di funzionamento del computer, ma anche all’interno della propria mente, indagando le modalità del pensiero stesso che consentono di inferire, discriminare, programmare e associare cose ed eventi. L’attenzione potrebbe andare verso l’indagine delle motivazioni interiori, gli schemi comportamentali e i bisogni psicologici. Il programmatore potrebbe attivare un processo di ingegneria inversa (reverse engineering) di se stesso.

Queste potenzialità introspettive della programmazione normalmente non vengono associate ai programmatori, considerati perlopiù come tecnici immersi nel loro mondo, distaccati dalla realtà e dal corpo. E spesso corrisponde al vero. La figura del programmatore è stata descritta da Joseph Weizenbaum come “coatto”:

Dovunque sono stati creati centri di calcolo, vale a dire in innumerevoli località degli Stati Uniti, così come virtualmente in tutte le altre regioni industriali del mondo, è possibile vedere giovani brillanti dall’aspetto slavato, spesso con gli occhi infossati e luccicanti, seduti alle tastiere del computer, le braccia in tensione nell’attesa di scatenare le dita, già pronte a colpire, sui pulsanti e sui tasti su cui la loro attenzione sembra essere concentrata come quella del giocatore d’azzardo sul rotolare del dado. Quando non sono in questa trance, seggono spesso a tavoli inondati di stampati del computer, su cui stanno chini come studiosi posseduti dal demonio su un testo cabalistico. Lavorano fin quasi a crollare, venti, trenta ore per volta. Il cibo, se se ne ricordano, se lo fanno portare: caffè, coca-cola, panini. Se possibile, dormono su brande vicino al computer. Ma soltanto poche ore, poi di nuovo al terminale o agli stampati. I vestiti rattoppati, le facce non lavate e non rasate, i capelli spettinati dimostrano quanto si disinteressino del loro corpo e del mondo che li circonda. Esistono, almeno nei periodi in cui lavorano così, soltanto attraverso e per il computer. Questi sono i pazzi del computer, i programmatori coatti. Sono un fenomeno internazionale. […]

Il programmatore coatto è inibito; c’è poca spontaneità nel suo modo di comportarsi; e non prova piacere nella realizzazione di quelli che sono, ufficialmente, i suoi desideri. Dal computer cerca rassicurazioni, non piacere. Il parallelo più vicino che si può trovare a questo tipo di psicopatologia è l’incessante spinta alla rassicurazione che caratterizza la vita del giocatore coatto. […] Gli psicoanalisti, a cominciare da Freud, hanno visto megalomania e deliri di onnipotenza come ingredienti principali della vita psichica del giocatore coatto. […] Il programmatore coatto è convinto che la vita non sia che un programma che va su un enorme computer, e che perciò ogni aspetto della vita possa, in ultima analisi, essere spiegato in termini programmabili. […]

La scienza può procedere soltanto semplificando la realtà. Il primo passo in questo processo di semplificazione è l’astrazione. E astrazione significa trascurare tutti quei dati empirici che non si adattano al particolare sistema concettuale all’interno del quale la scienza in quel momento si trova a lavorare; quei dati che, in altre parole, non sono illuminati dalla luce della particolare lampada sotto cui la scienza si trova a cercare le sue chiavi. […] Il fenomeno estremo del programmatore coatto ci insegna che i computer hanno il potere di sostenere visioni megalomaniache. Ma quel potere del computer è soltanto una versione estrema di un potere che è intrinseco a tutti i sistemi di pensiero che si autoconvalidano. Joseph Weizenbaum. Il potere del computer e la ragione umana. Edizioni Gruppo Abele. Torino. 1987

La descrizione di Weizenbaum coglie senza dubbio alcune caratteristiche dei programmatori e mette in guardia rispetto al rischio di considerare la realtà come una logica successione di eventi connessi da causa-effetto e da logiche binarie/informative, cercando di racchiudere il mondo all’interno di procedure di programmazione. Ma chiunque abbia avuto a che fare con i programmatori sa che molti di questi hanno una predilizione per i temi legati agli stati di coscienza della mente e alla ricerca interiore.

Le capacità che vengono messe in gioco nella programmazione hanno a che fare con la capacità di distacco da un aspetto delle realtà per poterlo vedere in termini obiettivi e osservarlo nella sua essenza. Questo distacco è un’arma a doppio taglio. Può portare ad un distacco schizoide dalla realtà e soprattutto da se stessi, ma allo stesso tempo se le stesse capacità di osservazione venissero rivolte all’interno, assisteremmo a una de-programmazione dei propri schemi mentali.

L’attenzione alle tematiche relative alla ricerca interiore spesso viene affrontata dal programmatore sul piano della conoscenza intellettuale, oppure in termini di raggiungimento di certi stati mentali come se si trattasse di una procedura tecnica o biochimica. Tuttavia egli ha anche l’opportunità di osservare i limiti del pensiero computante. L’approccio verso gli stati di coscienza e l’esperienza psichedelica ha portato spesso a quell’atteggiamento visionario che ha poi stimolato la creazione di nuove tecnologie. Sia Steve Jobs che Bill Gates hanno ammesso durante alcune interviste di aver usato LSD o qualche altro tipo di sostanze che alternano le mente.

L’utilizzo di sostanze espande alcuni alcuni stati della mente che non vengono mantenuti, una volta terminata l’azione, e inoltre si porta appresso rischi psicologici e fisici. Tuttavia le sostanze possono dare un momentaneo barlume di stati più ampi di coscienza, al di là della mente. Però la mente vuole appropriarsi delle scoperte effettuate, portarle su un terreno a lei congenale che può controllare e si inventa tecnologie e modelli per ricrearle, non essendo pienamente consapevole che può simularle solo tramite un pallido riflesso. Tuttavia, anche un limitato riflesso del reale crea una eco interiore che come il suono di un lontano tamburo ci affascina e ci ipnotizza.

Vedi anche:

Riflessi neurali e riflessioni sulla meditazione

Rendendoci incorporei a velocità di banda larga

Tecnologie divine

L’orologio tibetano: come un insegnante spirituale venne a conoscenza della tecnologia in Occidente

Mondi virtuali e Maya 2.0

La morsa e i morsi della rete

La dipendenza da computer per la sopravvivenza dell’ego

Metabolizzare le informazioni

Territori mentali

Internet aumenta davvero il nostro potere?

La comunicazione senza fili e il reality mining come riflesso della consapevolezza globale

Il multitasking: strafare per niente

Le biotecnologie come sistema informativo

Mondi virtuali, mondi specchio, Second Life: fare il backup di un pianeta nel caos

Meccanismi, misticismi e Mechanical Turk di Amazon

Il tiro con l’arco Zen e i computer


Il cuore del codice binario

Download della vita su Internet

Google, la privacy e il mettersi in mostra

Personal consumatore


Attribution-NonCommercial-NoDerivs 3.0
This work is licensed under a Attribution-NonCommercial-NoDerivs 3.0.