Partire da un codice che "funziona" è il primo passo verso un programma. Certo, una volta ottenuto l'effetto, andrebbe rivisto anche un po' il codice e farlo diventare un codice che "funziona bene". E' questo passaggio che spesso evitiamo di fare, però non dipende dall'essere italiani o meno. Esistono gare in tutto il mondo e per tutti i linguaggi in cui vince chi scrive il codice più ottimizzato. Certo, potremmo discutere ore sul significato di questo termine:
- ottimizzato per la dimensione?
- ottimizzato per la velocità?
- ottimizzato per l'uso massimo delle funzioni native del linguaggio?
Però l'importante è ottimizzarlo, evitando gli sprechi.
Da qualche mese, come saprete, "spippolo" con l'Arduino. E dopo i primi LED, sono arrivato a programmare i chip stand-alone. La scorsa settimana mi sono arrivati 2 Atmega Attiny85 in formato DIP8 (8 piedini e basta!) con _ben_ 8 kB di memoria! Immaginatevi come devo ottimizzare il codice per farci stare dentro qualcosa di concreto!
Addirittura sono arrivato a scoprire che usare un ciclo do..while rispetto al comando delay per far passare un certo numero di millisecondi mi permette di risparmiare 10/20 byte!! Ci pensate voi? 10/20 byte!
E poi guardo i computer di oggi sul catalogo Mediaworld e vedo che hanno 2/4 GB di RAM interna! 4 GB di RAM???
Ma allora chi usava i VIC-20 con 3,5 KB di RAM come faceva??? Era un mago???
E' ormai un discorso trito e ritrito: nessuno ottimizza più il codice, a cominciare dai GROSSI sviluppatori software. Domani esce un supermega gioco 3D per PC e ti dicono che serve l'ultima superscheda grafica da 500 € altrimenti il gioco va a scatti/lo usi a 800x600, le texture fanno pena. E' indietro il mio computer oppure è chi ha scritto il software che se n'è sbattuto di ottimizzarlo per l'hardware in circolazione? Invece di scrivere codice migliore mi fanno comprare un nuovo processore altrimenti quello che ho non ce la fa a fare tutti i calcoli.
Da questo punti di vista le console sono migliori, tipo i computer anni '80: l'hardware è quello e quello resta per diversi anni, per cui gli sviluppatori si devono "impegnare" a scrivere giochi sempre migliori usando sempre lo stesso hardware.