# Re: Presentazione e panegirico

**URL:** <https://www.ruby-forum.com/t/re-presentazione-e-panegirico/62185>\
**Category:** IT\
**Created:** [June 1, 2006, 10:06am UTC](https://www.ruby-forum.com/t/re-presentazione-e-panegirico/62185 "2006-06-01T10:06:59Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Leonardo\_F](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/a4c791/32.png) [@Leonardo\_F](https://www.ruby-forum.com/u/Leonardo_F)\
**Post date:** [June 1, 2006, 10:06am UTC](https://www.ruby-forum.com/t/re-presentazione-e-panegirico/62185/1 "2006-06-01T10:06:59Z")

</div>

> 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”?

---

<div class="post-metadata">

**Author:** ![Leonardo\_F](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/a4c791/32.png) [@Leonardo\_F](https://www.ruby-forum.com/u/Leonardo_F)\
**Post date:** [June 1, 2006, 10:46am UTC](https://www.ruby-forum.com/t/re-presentazione-e-panegirico/62185/2 "2006-06-01T10:46:31Z")

</div>

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. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> * * *
> 
> Ml mailing list  
> removed\_email\_address@domain.invalid  
> [http://lists.ruby-it.org/mailman/listinfo/ml](http://lists.ruby-it.org/mailman/listinfo/ml)

## – Chiaroscuro

Liquid Development: [http://liquiddevelopment.blogspot.com/](http://liquiddevelopment.blogspot.com/)

---

<div class="post-metadata">

**Author:** ![Leonardo\_F](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/a4c791/32.png) [@Leonardo\_F](https://www.ruby-forum.com/u/Leonardo_F)\
**Post date:** [June 1, 2006, 11:21am UTC](https://www.ruby-forum.com/t/re-presentazione-e-panegirico/62185/3 "2006-06-01T11:21:05Z")

</div>

> 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.
