Re: Presentazione e panegirico

E ne sono tuttora convinto, ruby senza disciplina e testing significa farsi
del male più rapidamente che in java.

Scusate se mi intrometto, non conosco molto ruby ma mi spaventa molto
l’idea che non ci sia il compilatore ad eliminare tutti i “piccoli”
problemi, soprattutto quando si fa refactoring (cambiamento di nomi di
metodi, numero e tipo di variabili). La funzione di “check” del
compilatore in ruby viene svolta dai test? Cioè: mettiamo che abbia
bisogno di un ulteriore parametro nella chiamata ad un metodo. Come fate
a essere sicuri di riuscire a cambiare tutte le chiamate a quel metodo?
Vi fidate del “grep”?

C’è una corrente di pensiero che sostiene proprio questo. Che lo static
typing sia un modo ridondante per piazzare checks nel codice e che i
test
siano sufficienti allo scopo.

Sebbene all’inizio ne dubitassi mi sono dovuto ricredere e mi accorgo
che lo
static typing non mi manca.

Per quanto riguarda la questione del refactoring… hai ragione, è più dura.
il legame tra le ‘parole’ è più semantico che sintattico. e anche qui mi
appoggio pesantemente ai test.

Troverei comunque utile poter usare lo static typing in certe situazioni
e
mi dispiace non averlo a disposizioni. Ad esempio, quando programmo in
Vb ho
a disposizione sia static che dynamic typing e, mentre uso fortemente
dynamic typing all’interno delle mie librerie e in funzioni di utilità
generale, cerco di utilizzare static typing nelle funzioni di API di
quelle
librerie, soprattutto per poter dare il CTRL-SPACE ai miei utenti.

On 6/1/06, Leonardo F. [email protected]
wrote:


Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml


Chiaroscuro

Liquid Development: http://liquiddevelopment.blogspot.com/

Scusate se mi intrometto, non conosco molto ruby ma mi spaventa molto
l’idea che non ci sia il compilatore ad eliminare tutti i “piccoli”
problemi, soprattutto quando si fa refactoring (cambiamento di nomi di
metodi, numero e tipo di variabili). La funzione di “check” del
compilatore in ruby viene svolta dai test?

L’interprete Ruby svolge la funzione di check sintattico. Le altre
funzioni di check del compilatore (più altre funzioni di check che il
compilatore non fa) in Ruby sono svolte dai test.

Morale della favola: i test devi scriverli anche per un linguaggio
compilato con check statici, e se scritti con disciplina (specie se
sono il sottoprodotto di design test-first, quindi danno buona
copertura) hanno l’effetto di un superset dei check che farebbe il
compilatore, quindi la mancanza del compilatore si sente poco.