[ruby-it] Re: GOF Patterns in Ruby
gabriele renzi
surrender_it a yahoo.it
Ven 2 Feb 2007 21:51:05 CET
--- ugol <u.landini a pronetics.it> wrote:
> Chiaro Scuro wrote:
>
> > ma non trovi che molti pattern 'classici'
> evaporino in ruby? tanti di
> > quei
> > pattern ad esempio servono per aggirare i limiti
> di un linguaggio
> > statically
> > typed.
>
> Beh, alcuni pattern potrebbero pure essere obsoleti,
> ma non certo
> pensati per linguaggi statically typed: il libro
> contiene sia
> implementazioni C++ che Smalltalk!
-1, anche se lo dico dopo 5 bottiglie di vodka a
cracovia e giusto per spirito polemico..
I pattern imo non sono mai obsoleti, imho. ma va detto
che non sonoi sempre necessari.
Invito i lettori a cercare su internet "design pattern
in dynamic languages" di peter norvig (o qualcosa del
genere, google aiutera').
In praTICA IL succo e' che alcuni pattern sono
non-pattern in linguaggi di "livello superiore",
qualsiasi cosa esso significhi. if-then-else in
assembly e' un pattern, perche' non e' esprimibile con
le istruzioni della maggior parte delle cpu, ma e'
comunque uno schema che viene ripetuto spessissimo.
Ma in C o in qualsiasi linguaggio di alto livello,
non ha alcun senso parlare di "pattern per le
condizioni ternarie", perchE' esiste gia' come parte
del linguaggio.
Ruby fino ad un certo punto permette di raggiungere
livelli di astrazione che trasformano un pattern in
una libreria (i.e. forwardable o singleton), e quindi
permettono di fattorizzare anche un qualcosa di
ripetitivo in una libreria, fatto che probabilmente
dice qualcosa a proposito dell'espressivita' del
linguaggio.
Ovviamente lisp ed altri linguaggi permettono di
raggiungere livelli di astrazione anche piu' alti
(giovanni, lo so che Smalltalk permette di raggiungere
questi livelli ma non lo dico perchE' la mia
impressione e' che generalmente non si faccia).
Ad ogni modo, la mia opionione e' che i pattern non
siano mai inutili in assoluto, per la semplice ragione
che rappresentano stili di codice che sono stati visti
molte volte in azione (a differenza ad esempio del
"borg nonpattern" di alex martelli in python che
risolve gli stessi problemi del singleton ma e' stato
creato a tavolino, e non estratto da ambienti di
produzione).
Al massimo alcuni pattern sono impliciti nel
linguaggio o nella libreria.
Just my two zloti.
--
icq: #69488917
blog it: http://riffraff.blogsome.com
blog en: http://www.riffraff.info
___________________________________________________________
New Yahoo! Mail is the ultimate force in competitive emailing. Find out more at the Yahoo! Mail Championships. Plus: play games and win prizes.
http://uk.rd.yahoo.com/evt=44106/*http://mail.yahoo.net/uk
Maggiori informazioni sulla lista
Ml