[Soci SLIP] Da grande farò il programmatore

llcfree llcfree a gmail.com
Mar 19 Mar 2013 19:37:30 CET


On Tue, 2013-03-19 at 16:30 +0100, Lucio Crusca wrote:

> 4. (conosciuta come prima regola delle ottimizzazioni). Le ottimizzazioni non 
> si fanno. Nota a margine: le ottimizzazioni sono quei processi di modifica del 
> codice già scritto e funzionante, orientati a renderlo più veloce o meno esoso 
> in termini di memoria richiesta, mantenendolo sempre funzionante. *
> 
> 5. (conosciuta come seconda regola delle ottimizzazioni, solo per 
> programmatori esperti). Le ottimizzazioni non si fanno. *

regola direi 0. (per me e forse non solo per me).

Non ci sono verita' assolute, tutto dipende dal contesto, quindi anche
il verbo ottimizzare. 

Senza sapere cosa si ottimizza, infatti, non ha significato. Potrebbe
non essere il tempo del programmatore la variabile da ottimizzare.
 
Per chi si occupa di sprechi, mi sembra ovvio che sia importante capire
dove nasca lo spreco (prima di e per decidere se ridurlo o no). Per
questo, occorre fare i conti giusti.

Per chi fa l'imprenditore, mi sembra ovvio che il successo dipenda
soprattutto dal buon progetto e il buon progetto e' quello che non
spreca nulla, per definizione (Einstein diceva semplice, ma non piu'
semplice del necessario e rende bene l'idea).

Ergo, e questa invece e' la domada:

Come pensi si possano "scegliere" i pezzi da comporre (che e' quello che
il tuo approccio giustamente suggerisce) senza sapere cosa facciano,
come comporli e quali siano i costi reali (tutti, non solo il costo del
programmatore, ma anche il costo dell'oggetto che ne risulta, rispetto a
quello che l'oggetto puo' fare)? 

Voglio dire, come si fa a far rendere tutto il possibile, senza sapere
esattamente cosa sia possibile e cosa no, che e' poi il criterio con cui
lavorare in modo sano?

> 6. qualsiasi linguaggio va bene. 

Ma ogni linguaggio ti porta piu' o meno vicino allo spazio di problemi
che puo' risolvere in modo efficiente. Imparare un nuovo linguaggio di
programmazione e' davvero banale, infinitamente piu' semplice
dell'imparare un lingaggio naturale. Il vero probelma e' imparare a
programmare, con un linguaggio qualsiasi (qualsiasi ??? alcuni sono
infinitamente peggio di altri, per questo scopo).

Senza conoscerne "almeno" due, come si fa? I problemi da risolvere e gli
strumenti per farlo spaziano dall'arduino al cray. Come giustamente dici
anche tu. Ma chi sa solo un linguaggio, a quello si affeziona. L'ho
visto succedere con il bellissimo, elegantissimo "scheme": frotte di
programmatori sfornati da scienze dell'informazione che usavano le liste
invece degli array (per chi non sa di cosa parlo, la lista permette di
accedere agli elementi in modo sequenziale, e percio' se sto cercando
l'ultimo elemento me la scorro tutta, mentre l'array permette di
accedere immediatamente, con una sola operazione, all'elemento che
voglio).

In buona sostanza, non pensate di diventare miracolosamente ottimi
progettisti/programmatori (un programmatore e' un soggetto che progetta
software) senza l'esperienza necessaria. Potete ritrovarvi ad essere
ottimi "sprecatori", al piu', e vi funzionera' solo finche' non sarete
messi alle strette dai limiti imposti dalle risorse disponibili o dalla
competizione (sacrosanta, quando non violenta) sui mercati. 

Loredana







Maggiori informazioni sulla lista Soci