Riprendo qui sul blog una nota che avevo scritto ormai più di 15 anni fa.

programmatore: persona che parla ad un perfetto idiota per almeno 8 ore al giorno, per poi scoprire che ha sempre ragione lui.
leggete molto attentamente questa descrizione:
Il lavoro del programmatore.
Tutti i giorni i programmatori hanno a che fare con molti termini specifici, alcuni dei quali sono molto interessanti.
I termini più interessanti in assoluto, sono:
VARIABILE, ISTRUZIONE, CONDIZIONE, ROUTINE, PROGRAMMA, PROCEDURA, PRODOTTO, AMBIENTE.
Ciò che li rende così interessanti, è, oltre al significato che assumono nel lavoro del programmatore, anche il modo in cui sono collegati tra di loro.
Do le definizioni dei vari termini
- VARIABILE: è un dato singolo che può essere sia elaborato direttamente che essere funzionale all’elaborazione di altri dati.
- ISTRUZIONE: definisce un’operazione singola non ulteriormente scomponibile. Può essere di diversi tipi:
- istruzione di ELABORAZIONE: in questo caso tratta direttamente una o più VARIABILI
- istruzione di RICHIAMO: in questo caso l’unica funzione dell’istruzione è far sì che il PROGRAMMA, in quel punto esegua altre ISTRUZIONI. In particolare il richiamo può essere fatto a:
- UNA ROUTINE predefinita in un altro punto del PROGRAMMA
- UN ALTRO PROGRAMMA
- istruzione di CONDIZIONE (descritta a seguire)
- CONDIZIONE: è una particolare ISTRUZIONE che controlla una situazione e, sulla base del fatto che la situazione controllata sia vera o falsa, fa sì che il PROGRAMMA in cui si trova segua strade differenti ed esegua blocchi di istruzioni diversificati. Ogni CONDIZIONE, all’interno di ciascuna delle due strade che definisce, può contenere: ISTRUZIONI, CONDIZIONI e richiami a ROUTINE
- ROUTINE: insieme di ISTRUZIONI e CONDIZIONI che devono essere eseguite più volte ed in più punti del PROGRAMMA e, per tanto, vengono definite in un unico punto e poi richiamate.
- PROGRAMMA: insieme di ISTRUZIONI, CONDIZIONI e ROUTINE che vengono eseguite UNA PER VOLTA e DALL’INIZIO ALLA FINE. Ogni PROGRAMMA è una soluzione ad un problema semplice ed immediato
- PROCEDURA: insieme di PROGRAMMI che, eseguiti in sequenza preordinata, eseguono elaborazioni complesse che seguono un filo logico comune. Ogni PROCEDURA è una soluzione ad un problema complesso che richiede una soluzione strutturata in più passaggi.
- PRODOTTO: è un insieme di PROCEDURE che gestisce il quadro complessivo dei problemi a cui si vuole trovare una soluzione.
- AMBIENTE: è il sistema in cui operano i singoli PRODOTTI, che possono agire o a compartimenti stagni o in interazione tra di loro.
La prima cosa a saltare agli occhi è che: mentre i termini VARIABILE ed ISTRUZIONE si riferiscono a elementi non scomponibili, e mentre il termine AMBIENTE si riferisce a qualcosa che non può essere contenuto in un insieme più ampio
TUTTI GLI ALTRI ELEMENTI SONO CONTEMPORANEAMENTE:
- INSIEMI CHE POSSONO CONTENERE CIO’ CHE VIENE DESCRITTO PRIMA DI LORO
- SOTTOINSIEMI CHE POSSONO ESSERE CONTENUTI IN CIO’ CHE VIENE DESCRITTO DOPO DI LORO
Inoltre, come ogni programmatore sa:
- Dall’ISTRUZIONE al PRODOTTO, si può dire che UNA COSA FUNZIONA SOLO SE DA I RISULTATI VOLUTI. Ne consegue che: SE I RISULTATI NON SONO QUELLI VOLUTI, ciò che abbiamo fatto NON PUO’ FUNZIONARE.
- In assenza di cambiamento:
- TUTTO CIO’ CHE FUNZIONA CONTINUERA’ A FUNZIONARE
- TUTTO CIO’ CHE NON FUNZIONA CONTINUERA’ A NON FUNZIONARE.
- In presenza di un cambiamento:
- CIO’ CHE FUNZIONAVA PUO’ SMETTERE DI FUNZIONARE
- CIO’ CHE NON FUNZIONAVA PUO’ COMINCIARE A FUNZIONARE
L’insieme di queste affermazioni comporta che:
- NIENTE DI CIO’ CHE VIENE SOPRA DESCRITTO PUO’ ESSERE DEFINITO FUNZIONANTE, SE ANCHE SOLO UNA DELLE PARTI CHE LO COMPONE NON DA I RISULTATI VOLUTI.
- L’UNICA POSSIBILITA’ PER FAR FUNZIONARE CIO’ CHE NON FUNZIONAVA E’ FARE DEI CAMBIAMENTI
- L’UNICA POSSIBILITA’ DI MANTENERE FUNZIONANTE CIO’ CHE FUNZIONAVA E’ CONTROLLARE CHE I CAMBIAMENTI FATTI PER AGGIUSTARE CIO’ CHE NON FUNZIONAVA PRIMA NON ABBIANO INTACCATO LA STRUTTURA PRIMA FUNZIONANTE. NEL CASO SUCCEDA, DIVENTA NECESSARIO STUDIARE CAMBIAMENTI ANCHE ALLA STRUTTURA PREESISTENTE.
adesso, proviamo a fare una sostituzione di termini a partire dalle 8 descrizioni sopra fornite e trasformiamo
VARIABILE in CARATTERISTICA o SITUAZIONE
ISTRUZIONE in AZIONE
CONDIZIONE in DECISIONE o SCELTA
ROUTINE in ABITUDINE
PROCEDURA in PROGETTO
PRODOTTO in OBIETTIVO
il verbo FUNZIONARE col verbo SODDISFARSI.
A questo punto la domanda è: In che misura il discorso modificato risulta compatibile con la vita di ognuno di noi?
Corollario: le differenze tra una macchina ed un essere umano?
- La macchina esegue, l’essere umano interpreta
- L’essere umano ha una maggiore tolleranza all’errore.
E adesso potete incominciare a divertirvi sul serio. 🙂
L’immagine in evidenza è di kp yamu Jayanath da Pixabay
Categorie:Ispirazioni, Vibrazioni filosofiche
