Ciao a tutti,
dopo l’uscita di Ruby 2.0 mi sono finalmente riuscito ad avvicinare ai
refinements.
Dopo essermi letto gli articoli di Katz e il rebuttal di Nutter,
confermo i miei dubbi iniziali.
Faccio una domanda un po’ naive e poi ci lavoro sopra: a cosa servono i
refinements? I moduli non erano simpatici abbastanza?
Il problema principale (che coinvolge per una minima parte della
community) che i refinement sono inutili in situazione di concorrenza,
se non addirittura deleteri. La possibilit, di fatto, di cambiare un
blocco a runtime che rendono disponibile l’esatto contrario di una
architettura concorrente sensata.
La gestione del loro scoping inoltre oltremodo confusa, piuttosto
facile creare situazioni in cui il metodo refined non funziona o altera
funzionalit core.
A me sembra che si sia semplicemente cercato di codificare il
monkey-patching, che comunque una pratica pessima da adottare a meno
che non si sia costretti.
Che ne dite?
PS. non un post da “old geezer”, non sono il tipo, che proprio non
capisco.
–
Luca P.
[email protected]