On March 17, 2019 6:52:55 PM UTC, Andrea Glorioso <andrea@digitalpolicy.it> wrote:
>Caro Giacomo,
>
>vorrei ringraziarti per la tua risposta (anzi, le tue risposte) alla
>mia
>domanda, che a scanso di equivoci non voleva essere né sarcastica né
>sprezzante. Mi fa piacere tu l'abbia interpretata come un'onesta
>richiesta
>di capire meglio la tua posizione.
Sono un hacker.
Rispondo sempre alle domande.
Al massimo la risposta è "non lo so".
Alla peggio è sbagliata (e mi aspetto che i miei interlocutori me lo facciano notare in modo chiaro ed inequivocabile).
So di non sapere, ma sono troppo curioso per perdere tempo a sembrare più furbo di quello che sono.
Quindi, se mi fai una domanda, io rispondo meglio che posso.
Anche se la tua domanda fosse state ironica o sprezzante, avrei risposto comunque.
La vita è troppo breve e c'è davvero troppo da imparare per perdere l'occasione di essere corretti.
>Mi limito ad osservare che, come ebbe a dire un altro europeo eccellente
>(il generale Charles de Gaulle) si tratta di un "vaste programme". A
>differenza di de Gaulle non uso l'espressione per liquidare le tue idee,
>come pare il generale facesse spesso. Tuttavia, come de Gaulle (e molti
>altri) la uso per segnalare che per andare dal punto A al punto B, direi
>anzi nel nostro caso quasi al punto Z, bisogna avere coscienza dei rapporti
>di forza in campo, di ciò che è possibile nel breve, medio e lungo periodo,
>e di quali siano le opzioni "procedurali" concrete. Nel riflettere
>ulteriormente sui tuoi spunti, tengo questi aspetti ben presenti.
:-D
Sono un programmatore.
Una differenza fondamentale fra Matematica e Informatica è che per noi il tempo e lo spazio sono elementi fondamentali.
In un equazione non c'è un prima e un dopo.
L'equazione è o non è.
In un algoritmo invece c'è un prima ed un dopo.
Un programma in esecuzione esiste in uno spazio multidimensionale dinamico, fatto di heap, stack e program counter (ovvero l'istruzione corrente), ambiente di esecuzione (a sua volta multidimensionale), interrupts etc... in cui il tempo non scorre sempre nello stesso modo.
Il codice del programma poi cambia nel tempo, rendendo necessario il versioning ed una complessa gestione dello stesso durante il processo di sviluppo.
Per non parlare della organizzazione del codice, dei trade off fra incapsulamento e accoppiamento, della rapporto fra la dimensione dei pacchetti e la complessità dei rapporti di dipendenza.
Oppure dei rapporti di dipendenza rispetto al materiale prodotto da terze parti: che sia software libero, open source o proprietario, qualunque dipendeza tu introduca in un software stabilisce un rapporto di potere e conoscere l'etica, la cultura e i processi di chi produce il componente da cui accetti di dipendere potrebbe essere persino più importante di leggerne il sorgente. Ma la cultura cambia col tempo e se non segui l'evoluzione di ogni singola dipendenza finisci per trovarti legato a persone spiacevoli.
E vogliamo parlare di licenze? :-)
O di sicurezza! Perché si parla di zero DAY? Perché anche in termini di sicurezza informatica il tempo di propagazione di un'informazione è fondamentale! Per questo si cerca di tenere certe vulnerabilità segrete coordinando la loro correzione fra diversi progetti (per la verità con scarsi risultati, segno che forse il problema è a monte... ma qui il discorso diventa tecnico e filosofico insieme... un'altra volta)
Tutti aspetti che hanno interazioni ed implicazioni complesse e profonde... e dinamiche!
Ogni IF moltiplica per 2 i possibili comportamenti del software.
Ogni linea di codice aumenta la probabilità di bug.
Secondo te, come facciamo a gestire software da milioni di righe di codice?
Come manteniamo la salute mentale?
(E ti prego non dire in giro che non la manteniamo... piuttosto considerami un'eccezione! :-D)
Abbiamo un trucco.
Teniamo BEN CHIARO nella nostra mente L'OBBIETTIVO.
Un po' come Michelangelo con il David.
È questo che dobbiamo insegnare agli Europei.
A gestire la complessità senza perdere la capacità di agire concretamente su di essa.
È questo che fanno i programmatori ogni santo giorno di lavoro.
So benissimo cosa intendi e hai ragione è un programma vastissimo.
Ma fidati: sono meno "idealista" di quanto possa sembrare. Si può fare.
E per fortuna, in guerra ci si riesce ad organizzare più velocemente!
A meno, ovviamente, di non essere in grado di vedere il nemico arrivare.
>Grazie ancora per le tue riflessioni.
Dovere! ;-)
Giacomo