1. 14

Interessante punto di vista che mi sento di condividere. Uno dei problemi è che i programmatori di ora sono nati già “viziati” da hw potenti, non hanno mai dovuto sviluppare con una manciata di Kb a disposizione come succedeva appena solo poco più di 30 anni fa.

  1.  

  2. 6

    Visto che l’autore cita i computer che hanno contributo al successo del programma Apollo, mi sovviene che nonostante siano sistemi sviluppati nel corso di un decennio, con uno scopo ben preciso, in un ambiente completamente integrato verticalmente e avendo come utenti un team ridotto di specialisti altamente addestrati, Apollo 11 si è trovata per qualche istante sull’orlo di un abort all’ultimo secondo a causa di un errore software scarsamente documentato.

    1. 4

      Articolo che avevo già letto in inglese e che ripete una lamentela già vecchia un decennio fa. L’errore dell’articolo è che non indaga minimamente le cause della situazione corrente, dando implicitamente la colpa ai programmatori pigri. Tuttavia la soluzione è davanti agli occhi: il tempo dei programmatori costa di più del tempo delle macchine. Ma questo non è colpa dei programmatori, è colpa dell’economia di mercato, in cui l’hardware costa poco (anzi, più il software è lento più ne vendi), i programmatori costano tanto e il mercato alimenta esponenzialmente questa inefficienza. Non sarà disciplinando i programmatori che si risolve la questione.

      1. 4

        Beh, a volte basta veramente poco per ottimizzare, ma alcuni programmatori neanche quel poco fanno. Il discorso che il tempo dei programmatori costa molto di più lascia il tempo che trova davanti ad ottimizzazioni così banali da richiedere veramente poco tempo e quindi costi di programmazione irrisori.

        Vi faccio un esempio banale ma reale, preso da una mia esperienza lavorativa. Tempo fa ero il CTO su un importante progetto di consolidamento di tre data center con più di 2000 server. La mia azienda forniva l’hw, il cliente le applicazioni. C’era un problema di performance di alcuni batch ed il cliente chiese ufficialmente nuovo hw per decine di migliaia di Euro. Feci una semplice domanda relativamente all’orario di schedulazione e scoprii che avevano schedulato TUTTI i job allo stesso orario, la mezzanotte. Bastò diluire i job su tutta la notte per soddisfare i requisiti di performance richiesti. Due minuti di intervento per risparmiare non so quante decine di migliaia di Euro. E non venitemi a dire che due minuti di un sistemista costano più di decine di migliaia di Euro.

        Questo è un esempio banale (ma realmente accaduto), ma sono molti i casi in cui con pochi minuti di attenzione si risolvono molti problemi. Il primo livello di ottimizzazione solitamente costa poco e produce molto in termini di benefici, poi più si va avanti e più i costi di ottimizzazione sono alti a fronte di benefici minimi che rendonno l’ottimizzazione praticamente sconveniente, su questo siamo d’accordo.

        Lo spazio sul mio cellulare è occupato prevalentemente da monnezza messa da programmatori che non si preoccupano di fare neanche un minimo di ottimizzazione. L’economia di mercato, per cui a Google non importa nulla di far sprecare storage agli utenti visto che lo vende a caro prezzo, è molto lontana dallo sviluppatore che pubblica una sua app sullo store.

        1. 3

          Beh, c’è sempre il megadirettore megagalattico che promette al cliente “in tre mesi” una cosa che richiedeva più di un anno. Poi succedono robette strane, tipo che la funzioncina in C talvolta andava in crash ed è stata sostituita* con un system(“python qualcosa.py”) seguito da una fopen, il tutto per riempire un array fetente. Tanto i gigabyte di memoria e di disco sono a carico del cliente, e lo sviluppatore è riuscito a uscire per le 19:35 che la fidanzatina già sbraitava per il ritardo.

          • realmente accaduto
      2. 4

        Mi ritrovo perfettamente in questo disagio. E visto che è difficile modificare l’economia di mercato in tempi brevi, io punterei a far sì che lo scrivere “buon codice” entri a far parte del comune senso civico. Come viene visto male un architetto/ingegnere che fa sprecare tonnellate di cemento, vorrei che fosse altrettanto visto male un programmatore che fa sprecare tempo/soldi/kWh.

        1. 4

          Ai bei tempi un amico ingegnere di Gragnano si vantava che il suo programma di calcolo strutturale, scritto in BASIC su un computer con Z80 e 64 kilobytes RAM, dava risultati più velocemente che il programma ufficiale per PC MSDOS in uso all’università, che richiedeva 640k RAM ed era in BASIC compilato.

          Mi mostrò parte del sorgente, facendomi notare come aveva saggiamente usato variabili intere ovunque possibile (limitando i calcoli floating-point ai soli casi necessari) e altri tricks coi numeri di linea e le stringhe. Per di più aveva un’interfaccia utente ben comprensibile.

          1. 1

            Manca il tag italiano.