Spero davvero che non annoiamo nessuno, ma... :-D On April 29, 2021 6:31:08 PM UTC, Andrea Trentini <andrea.trentini@unimi.it> wrote:
On 29/04/2021 15:56, Giacomo Tesio wrote:
... Se un software non può essere completamente letto, studiato e compreso in meno di un mese da un singolo essere umano, è "broken beyond repair".
mi pare un po' draconiano come criterio
Così (ap)pare a molti, in effetti. D'altronde quanto software conosci che lo rispetta? Confrontato con il software mainstream cui siamo abituati, appare impossibile. Immagina di stampare Linux (oltre 20 milioni di righe di codice C): carattere 11, circa 30 righe a pagina: fa circa 666 (!!! :-D) risme A4 fronte-retro. Quante opere filosofiche o ricerche scientifiche conosci con tale complessità? Naturalmente per studiarlo non usiamo una lettura lineare e disponiamo di strumenti e tecniche di navigazione del codice che possono tranquillamente dimezzare il tempo necessario. Ci vuole comunque troppo tempo. Chi se lo può permettere? È accettabile? È sostenibile? Secondo me, no. Un mese è già moltissimo. Ma è sufficiente per molti software non-mainstream. Di quelli che fanno una sola cosa molto bene, per intenderci.
diciamo che accetterei l'affermazione se per "software" si intendesse una "funzione/classe"
Uhm... no. Se ci vuole un mese a studiare una funzione, quel software va bruciato e vanno sparse le ceneri ai quattro angoli del pianeta. E a chi la scritto va vietato il contatto diretto con qualsiasi apparecchiatura informatica.
dato che ogni sistema (in senso lato, anche non software) è tipicamente un insieme di sottosistemi tra loro interagenti
A questo proposito per "software" in questo thread non intendo un singolo eseguibile, ma un singolo progetto di sviluppo. Una libreria o un framework sviluppata da una comunità a sé stante, dovrebbe essere studiabile completamente in meno di un mese, così come il codice di una applicazione indipendente che utilizza 12 librerie diverse. Un po' come un teorema può usarne un altro nella propria dimostrazione: sta a te decidere se vuoi andare a rileggere il teorema menzionato, o fidarti. Ma se so che, nel caso, mi basta al mqx un mese per comprenderne la codebase sono più propenso a fidarmi: tu no?
voler applicare quel principio a qualunque livello è impossibile, pensa se, metaforicamente parlando, lo applicassimo alla medicina .. o all'astronomia
Il software è un artefatto umano, non una creazione divina. Come tale è lecito pretendere che abbia alcune caratteristiche fondamentali per garantire la sicurezza e la libertà di una società cibernetica come la nostra. Come pretendiamo che le bottiglie di latte al supermercato non contengano diossina possiamo pretendere che un software richieda un certo tempo massimo per essere studiato, nell'interesse della salute cibernetica di tutti. Giacomo