On Mon, 03 May 2021 11:57:45 +0200 Andrea Trentini wrote:
ma ridurre tutto al "mese per comprendere" quando esistono le "leggi di composizione" (dei sistemi) è impossibile, se un "atomo programmativo" richiede un TOT per essere compreso, una composizione di "atomi programmativi" richiede...?
un mese, assumendo che i vari componenti (ciascuno dei quali richiede un mese per essere compreso) rappresenti l'elaborazione documentata. Nota però che io ho parlato di software come processo creativo, come artefatto intellettuale collettivo, caratterizzato da una propria evoluzione indipendente, non come specifico eseguibile. Chromium è composto di centinaia di moduli, tutti controllati da Google. Idem Android. Alcuni di questi moduli (ma non tutti) sono effettivamente comprensibili in un mese, ma il software, inteso appunto come processo di sviluppo, non come prodotto (anche perché il prodotto è sempre solo un'istantanea sul processo di sviluppo), è UNO ed è controllato complessivamente da una singola entità. Dunque Chromium non garantisce le 4 libertà se non formalmente. Idem Android. O Linux. O GCC. O Libre Office. O Firefox. O... Mi potresti obiettare che, ad esempio, non si può scrivere un browser che rispetti gli standard moderni in modo che sia comprensibile in un mese. Ed è vero. Infatti quegli standard sono essi stessi "broken beyond repair". Ed è ovvio: quegli standard sono creati da coloro che beneficiano di questa enorme ed ingestibile complessità. Per contro, nel mese per comprendere un software io non includo il tempo necessario a comprendere tutte le sue dipendenze INDIPENDENTI, purché ciascuna di esse, rispetti lo stesso principio. Se sto studiando uno script shell, non andrò necessariamente a studiare il sorgente di ciascuno dei programmi che invoca, delle librerie da cui dipendono etc: è sufficiente che io possa farlo, che siano facilmente "sgamabili" se cercando di minare bitcoin o inviare i miei dati a Google e che siano facilmente sostituibili una volta sgamati. In un mondo in cui ogni software (o ogni azienda, ogni partito, ogni associazione etc) può essere utile, ma DEVE essere trasparente e sostituibile, ogni produttore avrebbe un assoluto interesse a NON provare nemmeno a tradire la fiducia di coloro che lo adottano.
a naso propenderei per 3) salvo casi "banali" (tipo le /pipe/ di Unix, ma non sono nemmeno sicuro di quelle)
Le pipe in Unix non sono banali, sono semplici. Determinano un meccanismo semplice per comporre elaborazioni complesse attraverso software semplici. Da questo punto di vista, file e filesystem in Plan 9 hanno una funzione analoga: grazie al protocollo 9P2000 (estremamente semplice) è possibile comporre elaborazioni molto complesse integrando programmi molto semplici. Confronta X o Wayland con rio, o Emacs/Vim con Acme, e capirai cosa intendo. Entrambi i programmi (rio e acme) richiedono molto meno di un mese per essere letti e compresi (direi circa una settimana). Giacomo